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

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

little bottle
little bottlenach vorne
2019-04-17 14:29:382640Durchsuche

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. ~_~


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

-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: 208700f394e4cf40a7aa505373e0130b (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));

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen