Heim  >  Artikel  >  Backend-Entwicklung  >  Umfassende Anleitung zum Senden von E-Mails über SMTP mit PHP

Umfassende Anleitung zum Senden von E-Mails über SMTP mit PHP

WBOY
WBOYOriginal
2023-05-27 10:10:352772Durchsuche

Mit der Entwicklung des Internets ist E-Mail als wichtige Kommunikationsmethode zu einem unverzichtbaren Bestandteil des täglichen Lebens der Menschen geworden. Das Versenden von E-Mails aus Code ist eine häufige Aufgabe für Webentwickler. PHP bietet die Funktion, E-Mails über SMTP (Simple Mail Transfer Protocol) zu versenden. Dieser Artikel bietet Ihnen eine umfassende Anleitung.

1. Einführung in SMTP

SMTP ist ein Standardprotokoll zum Senden und Empfangen von E-Mails an Server oder Clients. Für den E-Mail-Versand werden üblicherweise SMTP-Server verwendet, für den Empfang von E-Mails hingegen POP- (Post Office Protocol) oder IMAP-Server (Internet Message Access Protocol).

Die Hauptfunktion von SMTP besteht darin, zu versuchen, E-Mails von einem Server zum nächsten zuzustellen, bis die E-Mail ihr Ziel erreicht. Wenn ein SMTP-Client eine E-Mail senden möchte, stellt er eine Verbindung zum Server her, sendet die E-Mail-Daten an den Server und der Server versucht dann, die E-Mail an den nächsten Server zuzustellen, bis die E-Mail den SMTP-Server des Empfängers erreicht. Der SMTP-Server verwendet für die Kommunikation Portnummer 25.

2. PHP-E-Mail-Versandfunktion

Um SMTP zum Versenden von E-Mails in PHP zu verwenden, müssen wir die integrierte E-Mail-Versandfunktion von PHP verwenden. Diese Funktionen sind:

  1. mail()-Funktion

Der einfachste Weg, E-Mails in PHP zu versenden, ist die Verwendung der mail()-Funktion. Diese Funktion sendet E-Mails über das Programm „sendmail“ in der PHP-Konfiguration. Diese Funktion hat die folgenden Parameter:

  • $to – die E-Mail-Adresse des Empfängers
  • $subject – der E-Mail-Betreff
  • $message – der E-Mail-Text
  • $headers – die E-Mail-Header

Beispielcode:

$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a test email.";
$headers = "From: sender@example.com";

mail($to, $subject, $message, $headers);
  1. smtp_mail()-Funktion

smtp_mail()-Funktion ist eine benutzerdefinierte PHP-Funktion, die E-Mails über das SMTP-Protokoll senden kann. Diese Funktion hat die folgenden Parameter:

  • $to – die E-Mail-Adresse des Empfängers
  • $subject – der E-Mail-Betreff
  • $message – der E-Mail-Text
  • $headers – die E-Mail-Header
  • $smtp_username – der SMTP-Server-Benutzername
  • $ SMTP_PASSWORD - SMTP -Serverkennwort
  • $ SMTP_HOST - SMTP -Server -Hostname
  • $ SMTP_PORT - SMTP -Server -Portnummer

Sample -Code:

$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a test email.";
$headers = "From: sender@example.com";
$smtp_username = "smtp_username";
$smtp_password = "smtp_password";
$smtp_host = "smtp.example.com";
$smtp_port = 587;

smtp_mail($to, $subject, $message, $headers, $smtp_username, $smtp_password, $smtp_host, $smtp_port);

3. Konfigurieren von SMTP -Server

, bevor Sie SMTP verwenden, um E -Mails zu senden, Sie senden Sie, Sie Sie müssen die SMTP-Serverparameter konfigurieren. Wir müssen den Hostnamen des SMTP-Servers, die Portnummer, den Benutzernamen und das Passwort sowie andere Informationen kennen.

Der Hostname des SMTP-Servers ist ein Domänenname oder eine IP-Adresse, die vom E-Mail-Dienstanbieter bereitgestellt wird. Die Portnummer des SMTP-Servers ist normalerweise 25, es können jedoch auch andere Portnummern sein. Wenn Ihr SMTP-Server eine Authentifizierung erfordert, müssen Sie sich mit einem Benutzernamen und einem Passwort authentifizieren. Wenn keine Authentifizierung erforderlich ist, kann es leer gelassen werden.

4. Verwenden Sie die PHPMailer-Bibliothek zum Versenden von E-Mails.

PHPMailer ist eine beliebte PHP-Bibliothek zum Versenden von E-Mails. Es verfügt über viele erweiterte Funktionen wie Unterstützung für SMTP-Authentifizierung, Anhänge, HTML-Formatierung, CC und BCC, Wichtigkeit und Priorität usw. Hier ist ein Beispielcode mit PHPMailer:

//引入PHPMailer库
require_once('PHPMailer/class.phpmailer.php');

//实例化PHPMailer类
$mail = new PHPMailer();

//设置SMTP服务器
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = 'smtp.example.com';
$mail->Port = 465;
$mail->Username = 'smtp_username';
$mail->Password = 'smtp_password';

//设置邮件头信息
$mail->From = 'sender@example.com';
$mail->AddAddress('recipient@example.com');
$mail->Subject = 'Test email';
$mail->Body = 'This is a test email message.';

//发送邮件
if(!$mail->Send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent.';
}

In diesem Code instanziieren wir die PHPMailer-Klasse und legen die Parameter des SMTP-Servers fest. Legen Sie dann die E-Mail-Header-Informationen fest und senden Sie die E-Mail durch Aufrufen der Send()-Methode.

5. Zusammenfassung

Dieser Artikel bietet Ihnen eine Anleitung zum Versenden von E-Mails über SMTP mit PHP. Sie können E-Mails mit der in PHP integrierten Funktion mail() oder einer benutzerdefinierten Funktion smtp_mail() senden. Wenn Sie erweiterte Funktionen wie Anhänge, HTML-Formatierung, SMTP-Authentifizierung, CC und BCC usw. benötigen, verwenden Sie die PHPMailer-Bibliothek. Unabhängig davon, welche Methode Sie verwenden, müssen Sie die Einrichtung und Authentifizierung des SMTP-Servers verstehen.

Das obige ist der detaillierte Inhalt vonUmfassende Anleitung zum Senden von E-Mails über SMTP mit PHP. 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