Tutorial · PHP & Laravel

E-Mail-Adressen in PHP validieren

PHP bringt eine E-Mail-Validierung mit, die aber beim Format aufhört. So kommen Sie bis zur Postfachprüfung.

Aktualisiert am 1. Oktober 2026 · 1 Min. Lesezeit

1. Formatprüfung mit filter_var

$email = trim($_POST['email'] ?? '');

if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
    exit('Bitte geben Sie eine gültige E-Mail-Adresse ein.');
}

2. Nimmt die Domain E-Mails an?

$domain = substr(strrchr($email, '@'), 1);
if (!checkdnsrr($domain, 'MX') && !checkdnsrr($domain, 'A')) {
    exit('Diese E-Mail-Domain existiert nicht.');
}

3. Das Postfach mit der API prüfen

function validate_email_api(string $email): array {
    $ch = curl_init('https://api.emailvalidation.io/v1/info?email=' . urlencode($email));
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTPHEADER => ['apikey: ' . getenv('EMAILVALIDATION_API_KEY')],
    ]);
    $body = curl_exec($ch);
    curl_close($ch);
    return json_decode($body, true) ?? [];
}

$result = validate_email_api($email);
if (($result['state'] ?? '') === 'undeliverable' || !empty($result['disposable'])) {
    exit('Bitte verwenden Sie eine gültige, dauerhafte E-Mail-Adresse.');
}

Laravel

$request->validate([
    'email' => ['required', 'email:rfc,dns', function ($attribute, $value, $fail) {
        $r = Http::withHeaders(['apikey' => config('services.emailvalidation.key')])
            ->timeout(10)
            ->get('https://api.emailvalidation.io/v1/info', ['email' => $value])
            ->json();
        if (($r['state'] ?? null) === 'undeliverable' || ($r['disposable'] ?? false)) {
            $fail('Bitte verwenden Sie eine gültige, dauerhafte E-Mail-Adresse.');
        }
    }],
]);

Läuft der API-Aufruf in einen Timeout, lassen Sie die Adresse durch, statt die Anmeldung zu blockieren.

Häufig gestellte Fragen

Reicht filter_var mit FILTER_VALIDATE_EMAIL?

Es ist eine solide Formatprüfung, akzeptiert aber Adressen auf Domains, die nicht existieren, und Postfächer, die nie angelegt wurden. Kombinieren Sie es mit einer MX-Prüfung und bei Anmeldungen und Importen mit einer API-Prüfung.

Wie prüfe ich das DNS einer E-Mail in Laravel?

Nutzen Sie die Regel 'email:rfc,dns'. Sie prüft das Format und ob die Domain DNS-Einträge hat, aber nicht, ob das Postfach existiert.

E-Mail-Validierung API

E-Mails in Ihrer Anwendung prüfen

emailvalidation.io prüft Syntax, MX-Einträge und das Postfach per SMTP, markiert Wegwerf-, Rollen- und Freemail-Adressen und liefert einen Qualitätswert, alles in einer Anfrage.

/v1/info E-Mail-Validierung API Zur Dokumentation

100 kostenlose Prüfungen pro Monat. Keine Kreditkarte nötig.

GET https://api.emailvalidation.io/v1/info?email=support@emailvalidation.io

{
  "email": "support@emailvalidation.io",
  "domain": "emailvalidation.io",
  "format_valid": true,
  "mx_found": true,
  "smtp_check": true,
  "disposable": false,
  "role": true,
  "free": false,
  "score": 0.64,
  "state": "deliverable",
  "reason": "valid_mailbox"
}

Weiterlesen

Starten Sie noch heute mit unserer E-Mail-Validierung!

100 Prüfungen pro Monat kostenlos