PHP mail(): was das Ergebnis bedeutet und wann Sie SMTP verwenden sollten
Die PHP-Funktion mail()
PHP kann eine Nachricht mit mail() an den lokalen Mail-Transport übergeben. Legen Sie immer einen gültigen Absender fest, den die Anwendung kontrolliert:
$headers = ['From' => 'web@tudominio.com']; $accepted = mail('email@destino.com', 'Título email', 'Mensaje', $headers);
Ein Ergebnis true bestätigt nur, dass das lokale System die Nachricht zur Verarbeitung angenommen hat; es beweist weder, dass der Empfängerserver sie angenommen hat, noch, dass sie im Posteingang angekommen ist.
Probleme bei der Verwendung von mail()
Die Schwachstelle eines schwer zu diagnostizierenden Versands ist, dass Informationen darüber fehlen, was nach der Übergabe an den Transport geschieht. Bevor Sie Code ersetzen, prüfen Sie, ob die Nachricht angenommen, abgelehnt oder zurückgestellt wurde.
Die Funktion erlaubt es, den Absender-Header zu setzen, ohne selbst zu belegen, dass die Anwendung diese Domain kontrolliert. Übernehmen Sie nie einen frei vom Besucher angegebenen From-Wert; verwenden Sie eine feste Adresse Ihrer Domain und setzen Sie die Adresse des Benutzers erst nach ihrer Prüfung in Reply-To.
Die Anbieter prüfen Verfahren wie SPF, DKIM und DMARC sowie Reputation und Format der Nachricht. mail() richtet diese Verfahren nicht von selbst ein und meldet nicht das endgültige Ergebnis der Zustellung.
Eine unvollständige Konfiguration kann zu Ablehnungen oder Spam-Einstufungen führen, das Ergebnis muss aber in der Zustellverfolgung und in den Headern eines echten Versands geprüft werden.
Ob mail() geeignet ist, hängt nicht davon ab, ob der Empfänger intern oder extern ist, sondern davon, wie der lokale Transport konfiguriert ist, welche Authentifizierung sich daraus ergibt und ob Fehler und Bounces sichtbar sind. Für wichtige Nachrichten verwenden Sie einen Transport, der Authentifizierung, Protokollierung des Ergebnisses und Kontrolle über den Absender erlaubt.
E-Mails mit SMTP-Authentifizierung senden
Eine Alternative ist der Versand über authentifiziertes SMTP mit einem echten, in cPanel angelegten Konto. Verwenden Sie den Hostnamen mit gültigem Zertifikat, der unter Geräte verbinden angegeben ist, verpflichtendes TLS und den empfohlenen sicheren Port. Der From muss eine kontrollierte Adresse sein, die zum authentifizierten Konto oder zur Domain passt. SMTP verbessert Kontrolle und Nachvollziehbarkeit, garantiert aber ebenfalls nicht, dass der Empfänger die Nachricht annimmt.
Ändern Sie den Absender nicht pauschal auf ein Gmail-Konto. Gmail kann über seine SMTP-Konfiguration oder OAuth genutzt werden, wenn die Anwendung das unterstützt, aber ein Fehler 401 betrifft diese Autorisierung und muss separat gelöst werden; er sagt nichts über den lokalen Transport von mail() oder die Zustellung beim Empfänger aus.
Viele Anwendungen bieten eine Option zur Einrichtung von SMTP. In Joomla können Sie diesen Transport wählen und Server, Verschlüsselung und Zugangsdaten des Kontos eingeben. Prüfen Sie das Ergebnis mit einem echten Versand aus der Anwendung.
In WordPress können Sie ein kompatibles SMTP-Plugin verwenden, etwa Easy WP SMTP.
Für eigene Entwicklungen können Sie eine gepflegte Bibliothek wie PHPMailer einbinden.
Den Wechsel zu SMTP vorbereiten
Speichern Sie die Zugangsdaten in der privaten Konfiguration der Anwendung, außerhalb des Repositorys und des öffentlichen Verzeichnisses. Verwenden Sie eine gepflegte Bibliothek, Zertifikatsprüfung sowie den vom Anbieter angegebenen Port und TLS-Modus. Deaktivieren Sie die Zertifikatsprüfung nicht, um einen Verbindungsfehler zu verbergen.
Senden Sie eine repräsentative Testnachricht und protokollieren Sie Datum, Empfänger und Kennung der Nachricht, ohne Passwörter zu speichern. Prüfen Sie die Zustellverfolgung und das Ergebnis beim Empfänger. Wenn Ihre Anwendung erneut versucht, vermeiden Sie Duplikate, falls der erste Versand bereits angenommen wurde, die Antwort aber verloren ging.
Übernehmen Sie keine ungeprüften Formulardaten in Empfänger oder Header. Um dem Besucher zu antworten, prüfen Sie seine Adresse und verwenden Sie sie als Reply-To, während der From eine Adresse bleibt, die Ihre Anwendung kontrolliert.
Das könnte Ihnen auch helfen
- BoxTrapper: Absenderprüfung und Prüfung der Warteschlange Beschreibt, wie BoxTrapper unbekannte Absender bis zu ihrer Bestätigung zurückhält und wie Sie Liste...
- DMARC einrichten und die Richtlinie Ihrer Domain prüfen Veröffentlichen Sie einen einzigen DMARC-TXT-Eintrag, beobachten Sie zuerst die Absender und prüfen...
- Die Einstufung des Spamfilters SpamAssassin verbessern Zeigt, wie Sie SpamAssassin verbessern, indem Sie Treffer und Fehler im Webmail markieren, und wie S...
- Eine Domain von Hostsuar bei Brevo authentifizieren Beschreibt, wie Sie die von Brevo bereitgestellten Einträge in die autoritative DNS-Zone übernehmen,...
Stimmt etwas nicht oder hat sich etwas geändert? Erzählen Sie es uns, und wir prüfen es.