[PHP] Die Funktion mail() schlägt beim Senden von E-Mails fehl (Befehl sendmail und Postfix)

little bottle
Freigeben: 2023-04-05 22:00:01
nach vorne
2703 Leute haben es durchsucht

1. Die mail()-Funktion von PHP kann E-Mails versenden, wurde aber noch nie erfolgreich getestet:

Die Mail-Funktion von PHP basiert auf dem sendmail-Befehl, der installiert werden muss. Postfix-Software

2. Überprüfen Sie das PHP-Konfigurationselement sendmail_path, den zugrunde liegenden Befehl, der von der Mail-Funktion aufgerufen wird, php -i|grep sendmail

3 . Nur Postfix-Software installieren kann den sendmail-Befehl apt-get install postfix verwenden

Testen Sie nach Abschluss der Softwareinstallation, ob sie erfolgreich über die Befehlszeile gesendet werden kann

Erstellen Sie einen EML-Text Datei mit den meisten Haupt-E-Mail-Protokoll-Headern


Subject: title-testing
From: shihan2@sopans.com
To: 630892807@qq.com
Sorry, I'm testing. ~_~
Nach dem Login kopieren


 /usr/sbin/sendmail -t -i -f shihan2@sopans.com < 2.eml
Nach dem Login kopieren

-f-Parameter entspricht dem from-Wert. Wenn er nicht übereinstimmt, Wenn ein Fehler gemeldet wird, können Sie die Protokolldatei /var/log/mail.log überprüfen, um die Fehlerursache zu ermitteln und festzustellen, ob der Fehler erfolgreich war.

Wenn Der Von-Wert stimmt nicht überein, die im Protokoll abgefragten Informationen

Die entsprechenden Informationen nach erfolgreichem Senden, 250ok

4. Ändern Sie die PHP-Konfigurationsdatei und verwenden Sie die PHP-Funktion, um den Brief zu senden

Ich habe diese Konfigurationsdatei /etc/php/7.0/cli/php.ini geändert und der from-Parameter wurde zu Tode geschrieben. Wenn ich dies beim Testen nicht von der E-Mail-Adresse schreibe, schlägt der Versand immer wieder fehl und es kommt die Meldung 501 Syntax: MAIL FROM:

(als Antwort auf den Befehl MAIL FROM)), die E-Mail von und der Brief von stimmen nicht überein 🎜>

Überprüfen Sie die Konfiguration

Erstellen Sie eine PHP-Datei


<?php
$to=&#39;630892807@qq.com&#39;;
$subject = &#39;测试一下&#39;;
$message = &#39;我来测试&#39;;
$headers[] = &#39;From: shihan2@sopans.com&#39;;
mail($to, $subject, $message, implode("\r\n", $headers));
Nach dem Login kopieren
Test erfolgreich

Verwandte Tutorials:

Ein kompletter Satz Video-Tutorials zur PHP-Programmierung vom Einstieg bis zum Master

Das obige ist der detaillierte Inhalt von[PHP] Die Funktion mail() schlägt beim Senden von E-Mails fehl (Befehl sendmail und Postfix). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage