mailwolt/app/Livewire/Ui/Webmail/Login.php

49 lines
1.3 KiB
PHP

<?php
namespace App\Livewire\Ui\Webmail;
use App\Services\ImapService;
use Livewire\Attributes\Layout;
use Livewire\Attributes\Title;
use Livewire\Component;
#[Layout('layouts.webmail-login')]
#[Title('Webmail · Mailwolt')]
class Login extends Component
{
public string $email = '';
public string $password = '';
public function login(): void
{
$this->validate([
'email' => 'required|email',
'password' => 'required|string',
]);
try {
$imap = app(ImapService::class);
$client = $imap->client($this->email, $this->password);
$client->disconnect();
session([
'webmail_email' => $this->email,
'webmail_password' => $this->password,
]);
$this->redirect(route('ui.webmail.inbox'));
} catch (\Throwable $e) {
\Illuminate\Support\Facades\Log::warning('Webmail login failed', [
'email' => $this->email,
'error' => $e->getMessage(),
]);
$this->addError('email', 'Anmeldung fehlgeschlagen: Bitte E-Mail und Passwort prüfen.');
}
}
public function render()
{
return view('livewire.ui.webmail.login');
}
}