Heim >Backend-Entwicklung >PHP-Tutorial >Analyse und Lösungen zu den Gründen, warum PHP die Mail-Funktion nicht nutzen kann

Analyse und Lösungen zu den Gründen, warum PHP die Mail-Funktion nicht nutzen kann

伊谢尔伦
伊谢尔伦Original
2017-06-27 10:53:192950Durchsuche

PHP erfordert ein installiertes und laufendes Mailsystem, damit die Mail-Funktion mail() verfügbar ist. Das verwendete Mailsystemprogramm wird in der Datei php.ini eingestellt.

Verwenden Sie den folgenden Code, um E-Mails zu senden, aber die Zustellung schlägt immer fehl.

[PHP] view plaincopyprint?

<?php  
$to = "xxxxxxxx@qq.com";  
$subject = "Test mail";  
$message = "Hello! This is a simple email message.";  
mail($to,$subject,$message);  
?>

Nach der Untersuchung erfordert PHP ein installiertes und laufendes Mailsystem, um die Mailfunktion mail() verfügbar zu machen. Das verwendete Mailsystemprogramm wird in der Datei php.ini eingestellt. Die spezifischen Lösungen sind wie folgt:
1. Sendmail installieren
sudo apt-get install sendmail
sudo apt-get install sendmail-cf
sudo apt-get install mailutils
2
Öffnen Sie /etc/mail/sendmail.mc und suchen Sie die folgende Zeile:
DAEMON_OPTIONS('Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
Ändern 127.0.0.1 Wechsel zu 0.0.0.0
Führen Sie den folgenden Befehl aus, um die alte Konfigurationsdatei zu sichern und eine neue Konfigurationsdatei zu generieren:
cd /etc/mail
mv sendmail.cf sendmail.cf~
m4 sendmail.cf
3 : Diese E-Mail wird als Spam-Empfang behandelt. Wenn Sie außerdem das Postfach 163 verwenden, wird sie möglicherweise direkt gefiltert und kann nicht empfangen werden.
4. Konfigurieren Sie die Datei php.ini
Öffnen Sie /etc/php5/apache2/php.ini und suchen Sie die folgende Zeile:
; sbin /sendmail -t

Was hier besonders beachtet werden muss, ist, dass der Parameter „-t“ unerlässlich ist. Wenn er fehlt, kann die Funktion mail() nicht ausgeführt werden, wenn die ursprüngliche PHP-Datei über ausgeführt wird Browser, aber wenn Es wird kein Problem geben, wenn Sie die PHP-Befehlszeile direkt auf dem Server verwenden, um die ursprüngliche PHP-Datei auszuführen.

5. Starten Sie Apache neu

sudo /etc/init.d/apache2 restart


Führen Sie zu diesem Zeitpunkt den ursprünglichen

PHP-Code erneut aus

,
Mail erfolgreich gesendet .

Das obige ist der detaillierte Inhalt vonAnalyse und Lösungen zu den Gründen, warum PHP die Mail-Funktion nicht nutzen kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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