Heim > Artikel > Backend-Entwicklung > Zwei Möglichkeiten, E-Mails in PHP zu senden. PHP verwendet SMTP zum Senden von E-Mails.
Originaltext: http://www.jbxue.com/php/25502.html
In diesem Artikel werden zwei Methoden zum Senden von E-Mails in PHP vorgestellt, nämlich die Verwendung der in PHP integrierten Funktion mail() zum Senden von E-Mails und die Verwendung von gekapseltes SMTP Um E-Mails über die E-Mail-Klasse des Protokolls zu versenden, wird empfohlen, zum Senden von E-Mails die vom SMTP-Protokoll gekapselte E-Mail-Klasse zu verwenden.
Wie versende ich E-Mails in PHP? Es gibt viele Methoden, aber die am häufigsten verwendete ist die Verwendung des SMTP-Protokolls zum Versenden von E-Mails. Lassen Sie uns gemeinsam lernen.
Besondere Empfehlung: Sammlung von PHP-E-Mail-Codes
1. Verwenden Sie die in PHP integrierte mail()-Funktion
Kopieren Code Codebeispiel:
$to = "test@163.com"; //Recipient
$subject = "Test";
$message = „Dies ist eine Testmail!“; //Text
mail($to,$subject,$message);
Direkte Fehlermeldung:
Warnung: mail( ) [function.mail]: Verbindung zum Mailserver am „localhost“-Port 25 fehlgeschlagen, überprüfen Sie Ihre „SMTP“- und „smtp_port“-Einstellung in php.ini oder verwenden Sie ini_set() inD:/www/Zend/email/email.php in Zeile 10
Sie benötigen einen lokalen SMTP-Server, der Code wird wie folgt geändert:
Code kopierenCodebeispiel:
$to = "test@163.com";//recipient
$subject = "Test";//E-Mail-Betreff
$message = "Dies ist ein Test mail !";//E-Mail-Text
ini_set('SMTP','smtp.163.com');//Ausgehender SMTP-Server
ini_set('smtp_port',25);//Ausgehender SMTP-Server-Port
ini_set('sendmail_from',"admin@163.com");//E-Mail-Adresse des Absenders
mail($to,$subject,$message);
Anhaltender Fehler:
Warnung: mail() [function.mail]: SMTP-Server-Antwort: 553 Authentifizierung ist
erforderlich,smtp2,DNGowKD7v5BTDo9NnplVBA--.1171S2 1301220947 inD:/www/Zend/email/email.php in Zeile 9
Verifizierungsinformationen sind erforderlich. Wo kann man es konfigurieren?
Um die Funktion mail() zum Senden von E-Mails zu verwenden, müssen Sie über einen Mailserver verfügen, der E-Mails ohne SMTP-Authentifizierung senden kann. Heutige SMTP-Mailserver erfordern jedoch grundsätzlich eine Authentifizierung. Wenn Sie sie also zum Versenden von E-Mails verwenden möchten, können Sie nur einen lokalen SMTP-Server einrichten, der keine Authentifizierung erfordert.
Fazit: Um die Funktion mail() zum Versenden von E-Mails verwenden zu können, benötigen Sie einen SMTP-Server, der keine Authentifizierung erfordert.
2. Verwenden Sie eine E-Mail-Klasse, die das SMTP-Protokoll kapselt.
Es wird empfohlen, das SMTP-Protokoll zum Senden von E-Mails zu verwenden.
Es wird empfohlen, die Mail-Klasse in der PEAR-Erweiterung zu verwenden. Sie verfügt über leistungsstarke Funktionen: Sie kann E-Mails im Nur-Text-Format unterstützen und die HTML-Codierung kann für jedes Feld festgelegt werden, und die korrekte Konfiguration verursacht kein Chinesisch verstümmelte Zeichen; es kann Anhänge usw. unterstützen.
Sie können den Pear-Install-Mail-Befehl auf dem Server verwenden, um ihn schnell zu installieren. Schüler, die nicht über ausreichende Serverberechtigungen verfügen, können den PHP-Quellcode der Klasse auch direkt herunterladen und einbinden.
Hinweis: Die Mail-Klasse hängt von Net/SMTP.php und Mail/mime.php ab, die zusammen heruntergeladen und bei der Verwendung zusammen einbezogen werden müssen.
Detaillierte Installationsmethoden können auf der offiziellen Website http://pear.php.net/package/Mail eingesehen werden.
Beispiel: Methode der Mail-Klasse zum Senden von E-Mails.
Code kopierenCodebeispiel:
// Pear Mail-Erweiterung
require_once('Mail.php');
require_once('Mail/mime.php'); .php');
$smtpinfo = array();
$smtpinfo["host"] = "smtp.163.com";//SMTP server
$smtpinfo["port" ] = "25"; //SMTP-Server-Port
$smtpinfo["username"] = "username@163.com"; //E-Mail-Adresse des Absenders
$smtpinfo["password"] = "password" ; //E-Mail-Passwort des Absenders
$smtpinfo["timeout"] = 10;//Netzwerk-Timeout, Sekunden
$smtpinfo["auth"] = true;//Anmeldebestätigung
// $smtpinfo[" debug"] = true;//Debug-Modus
// Empfängerliste
$mailAddr = array('receiver@163.com');
/ /Absender-Anzeigeinformationen
$from = "Name
// Empfängeranzeigeinformationen
$to = implode(',',$ mailAddr); / E-Mail-Titel
$subject = „Dies ist eine Test-E-Mail“;
// E-Mail-Texttyp, -Format und -Kodierung
$contentType = "text/html; charset=utf-8"; / /Newline-Symbol Linux: n Windows: rn
$ crlf = "n";
$mime = new Mail_mime($crlf);
$mime->setHTMLBody(
$param['text_charset'] = 'utf- 8';
$param['html_charset'] = 'utf-8';
$param['head_charset'] = 'utf-8'; $param);
$headers = array();
$headers["From"] = $from;
$headers[ "To"] = $to; ["Subject"] = $subject;
$headers["Content-Type"] = $contentType; =& Mail::factory("smtp", $smtpinfo);
$mail = $smtp->send($mailAddr, $headers, $body); >disconnect();
if (PEAR::isError($mail)) {
//Senden fehlgeschlagen
echo 'E-Mail-Versand fehlgeschlagen: ' $mail->getMessage() ."n";
}
else{
//Erfolgreich gesendet
echo "success!n";
Das Obige stellt die beiden Methoden zum Senden von E-Mails in PHP vor. Ich hoffe, dass es für Freunde, die sich für PHP-Tutorials interessieren, hilfreich sein wird.