Heim > Backend-Entwicklung > PHP-Tutorial > Zwei Möglichkeiten, E-Mails in PHP zu senden. PHP verwendet SMTP zum Senden von E-Mails.

Zwei Möglichkeiten, E-Mails in PHP zu senden. PHP verwendet SMTP zum Senden von E-Mails.

WBOY
Freigeben: 2016-07-30 13:31:51
Original
1236 Leute haben es durchsucht

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.


Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage