Heim > Artikel > Backend-Entwicklung > So senden Sie E-Mails mit einer PHP-HTTP-Anfrage
PHP ist eine weit verbreitete Programmiersprache und eine ihrer häufigsten Anwendungen ist das Versenden von E-Mails. In diesem Artikel besprechen wir, wie Sie E-Mails mithilfe von HTTP-Anfragen senden. Wir werden dieses Thema unter folgenden Gesichtspunkten einführen:
HTTP Eine Anfrage bezieht sich auf eine an einen Webserver gesendete Anfrage zum Abrufen von Webressourcen. HTTP ist ein Protokoll zur Übertragung von Informationen zwischen Webbrowsern und Webservern. Eine HTTP-Anfrage besteht aus einer HTTP-Methode, einem Anfrageheader und einem Anfragetext.
HTTP-Methode bezieht sich auf den Vorgang, den der Client ausführen möchte. Zum Beispiel die gängigen GET- und POST-Methoden. Anforderungsheader enthalten Informationen zur Anforderung, beispielsweise die angeforderte URL und die angeforderte HTTP-Version. Der Anfragetext enthält die an den Server gesendeten Daten.
Bevor wir verstehen, wie E-Mails mithilfe von HTTP-Anfragen gesendet werden, müssen wir die Grundprinzipien des E-Mail-Versands verstehen. Wenn wir eine E-Mail senden, wird eine Nachricht an den SMTP-Server gesendet. Der SMTP-Server ist für die Zustellung der E-Mail an den Mailserver des Empfängers verantwortlich.
Der Vorgang zum Versenden einer E-Mail ist wie folgt:
PHP bietet einige integrierte Funktionen, um die Arbeit mit HTTP-Anfragen zu vereinfachen. Zu diesen Funktionen gehören file_get_contents() und curl(). Die Funktion file_get_contents() kann Inhalte von der angegebenen URL über die GET- oder POST-Methode abrufen. Die Funktion „curl()“ kann verschiedene HTTP-Methoden wie GET, POST, PUT und DELETE verwenden.
Unten finden Sie einen Beispielcode, der zeigt, wie Sie mit PHP eine HTTP-Anfrage zum Senden einer E-Mail senden.
Verwenden Sie die Funktion file_get_contents():
$url = 'http://smtp.gmail.com:587'; $data = array( 'username' => 'your_username', 'password' => 'your_password', 'from' => 'your_email', 'to' => 'receiver_email', 'subject' => 'This is the email subject', 'body' => 'This is the email body' ); $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded ", 'method' => 'POST', 'content' => http_build_query($data), ), ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); if ($result === false) { die("Sending email failed."); } else { echo "Email sent successfully."; }
Verwenden Sie die Funktion curl():
$url = 'http://smtp.gmail.com:587'; $data = array( 'username' => 'your_username', 'password' => 'your_password', 'from' => 'your_email', 'to' => 'receiver_email', 'subject' => 'This is the email subject', 'body' => 'This is the email body' ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded')); $result = curl_exec($curl); if ($result === false) { die("Sending email failed."); } else { echo "Email sent successfully."; } curl_close($curl);
Im obigen Code legen wir zunächst die verschiedenen Parameter der E-Mail fest, einschließlich Absender, Empfänger, Betreff und Text usw. Verwenden Sie dann die Funktion file_get_contents() oder die Funktion curl(), um eine HTTP-Anfrage an den SMTP-Server zu senden, um die E-Mail zu senden. Bestimmen Sie abschließend anhand des Rückgabeergebnisses, ob der Versand erfolgreich war.
Zusammenfassung
Bisher haben wir die Methode zum Senden einer HTTP-Anfrage mit PHP zum Senden von E-Mails besprochen. Wir lernten zunächst die Grundlagen von HTTP-Anfragen und führten dann die Grundprinzipien des E-Mail-Versands ein. Als nächstes besprachen wir, wie man die in PHP integrierten Funktionen zum Versenden von E-Mails verwendet. Abschließend geben wir einen Beispielcode, um zu demonstrieren, wie die Funktionen file_get_contents() und curl() zum Senden von E-Mails verwendet werden.
Das obige ist der detaillierte Inhalt vonSo senden Sie E-Mails mit einer PHP-HTTP-Anfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!