Heim  >  Artikel  >  Backend-Entwicklung  >  So senden Sie E-Mails mit einer PHP-HTTP-Anfrage

So senden Sie E-Mails mit einer PHP-HTTP-Anfrage

PHPz
PHPzOriginal
2023-05-21 19:10:521370Durchsuche

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:

  1. Was ist eine HTTP-Anfrage?
  2. Grundprinzipien des E-Mail-Versands.
  3. Verwendung von PHP zum Senden von HTTP-Anfragen.
  4. Beispielcode zum Senden von E-Mails.
  5. Was ist eine HTTP-Anfrage.

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.

  1. Grundprinzipien des E-Mail-Versands

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:

  1. Erstellen Sie eine E-Mail und geben Sie relevante Informationen wie Absender, Empfänger, Betreff usw. ein.
  2. Mail wird an den SMTP-Server gesendet.
  3. Der SMTP-Server überprüft die Identität des Absenders und sendet die Nachricht an den Mailserver des Empfängers.
  4. Der Mailserver des Empfängers überprüft die E-Mail und benachrichtigt dann den Benutzer über die E-Mail.
  5. HTTP-Anfragen mit PHP senden

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.

  1. Beispielcode

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!

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