Heim  >  Artikel  >  Backend-Entwicklung  >  Wie versende ich E-Mails in PHP? Implementiert mit PHPMailer

Wie versende ich E-Mails in PHP? Implementiert mit PHPMailer

青灯夜游
青灯夜游Original
2018-11-02 18:11:075166Durchsuche

Wie versende ich E-Mails in PHP? In diesem Artikel erfahren Sie, wie Sie PHPMailer + SMTP zum Senden von E-Mails verwenden, damit Sie verstehen, wie Sie PHPMailer konfigurieren und verwenden. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

PHPMailer ist eine beliebte PHP-Bibliothek zum E-Mail-Versand. Es unterstützt das Senden von E-Mails über die Funktion mail() oder SMTP. Kurz gesagt, PHPMailer ist eine effiziente Möglichkeit, E-Mails in einer PHP-basierten Umgebung zu versenden.

Schauen wir uns unten an

Schritt 1 – PHPMailer-Details sammeln

Um PHPMailer mit Hostinger SMTP zu verwenden, müssen Sie zuerst erstellen ein E-Mail-Konto. Sie können dies im Abschnitt „E-Mail-Konten“ Ihres Webhost-Panels tun.

Wie versende ich E-Mails in PHP? Implementiert mit PHPMailer

Wenn Sie fertig sind, greifen Sie auf die SMTP-Details zu, die sich im selben Abschnitt befinden:

Wie versende ich E-Mails in PHP? Implementiert mit PHPMailer

Sie sollten jetzt vier Abschnitte haben. Dies sind:

1. E-Mail-Konto-Benutzername

3. SMTP-Host

Schritt 2 – PHPMailer installieren

Da wir alle erforderlichen Details haben, können wir mit der PHPMailer-Einrichtung beginnen. Eine einfache Möglichkeit ist die Verwendung von Composer. Bei unseren Shared-Hosting-Plänen ist es vorinstalliert. Sie müssen sich also nur über SSH verbinden und den folgenden Befehl ausführen:

cd public_html

Dann ausführen:

composer require phpmailer/phpmailer

Einen Moment warten, die Installation ist abgeschlossen und PHPMailer wird im neu erstellten Verzeichnis angezeigt.

Schritt 3 – PHPMailer verstehen

Um PHPMailer und seine Funktionsweise zu verstehen, schauen wir uns ein Beispiel für die Zustellung über SMTP an.

<?php
use PHPMailer\PHPMailer\PHPMailer;
require &#39;../vendor/autoload.php&#39;;
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = &#39;mx1.hostinger.com&#39;;
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = &#39;test@hostinger-tutorials.com&#39;;
$mail->Password = &#39;EMAIL_ACCOUNT_PASSWORD&#39;;
$mail->setFrom(&#39;test@hostinger-tutorials.com&#39;, &#39;Your Name&#39;);
$mail->addReplyTo(&#39;reply-box@hostinger-tutorials.com&#39;, &#39;Your Name&#39;);
$mail->addAddress(&#39;example@gmail.com&#39;, &#39;Receiver Name&#39;);
$mail->Subject = &#39;PHPMailer SMTP message&#39;;
$mail->msgHTML(file_get_contents(&#39;message.html&#39;), __DIR__);
$mail->AltBody = &#39;This is a plain text message body&#39;;
$mail->addAttachment(&#39;test.txt&#39;);
if (!$mail->send()) {
    echo &#39;Mailer 错误: &#39; . $mail->ErrorInfo;
} else {
    echo &#39;发送消息!&#39;;
}
?>

Schauen wir uns an, was jede Komponente tut:

Wie versende ich E-Mails in PHP? Implementiert mit PHPMailerProfi-Tipp:

SMTPDebug = 2 ; wenn Sie ein Skript testen und sehen, wie es funktioniert.

Legen Sie dies im endgültigen Build auf SMTPDebug = 0 fest, um zu verhindern, dass Endbenutzer SMTP-Zustellungsberichte sehen.

Wenn Sie sich den gesamten Code ansehen, werden Sie feststellen, dass wir etwas anders machen als im ersten Beispiel. Wir versenden HTML-Nachrichten. Der Inhalt wird der Datei message.html entnommen, die sich im selben Verzeichnis befindet. Dies ermöglicht Ihnen die Formatierung von Text und bietet mehr Funktionalität als reine Textnachrichten.

Schritt 4 – Führen Sie das PHPMailer-Skript aus

Erstellen wir eine testphpmailer.php-Datei und füllen Sie alle Felder mit den SMTP-Details aus, die wir zuvor abgerufen haben. Führen Sie das Skript aus, indem Sie YourDomain.com/testphpmailer.php in Ihren Browser eingeben. Sie sehen eine Meldung ähnlich der folgenden:

Wie versende ich E-Mails in PHP? Implementiert mit PHPMailer Schritt 5 – Beispiel für ein PHPMailer-Kontaktformular

Sie können PHPMailer für mehr als nur das Versenden einfacher Nachrichten verwenden. Eine Möglichkeit, dies zu nutzen, besteht darin, ein Kontaktformular zu erstellen, über das Ihre Besucher oder Benutzer mit Ihnen Kontakt aufnehmen können. Hier ist ein einfaches Beispiel für ein solches Skript:

<?php
use PHPMailer\PHPMailer\PHPMailer;
require &#39;../vendor/autoload.php&#39;;
    $mail = new PHPMailer;
    $mail->isSMTP();
    $mail->Host = &#39;mx1.hostinger.com&#39;;
    $mail->Port = 587;
    $mail->SMTPAuth = true;
    $mail->Username = &#39;test@hostinger-tutorials.com&#39;;
    $mail->Password = &#39;EMAIL_ACCOUNT_PASSWORD&#39;;
    $mail->setFrom(&#39;test@hostinger-tutorials.com&#39;, &#39;Mr. Drago&#39;);
    $mail->addAddress(&#39;example@gmail.com&#39;, &#39;Receiver Name&#39;);
if ($mail->addReplyTo($_POST[&#39;email&#39;], $_POST[&#39;name&#39;])) {
        $mail->Subject = &#39;PHPMailer contact form&#39;;
        $mail->isHTML(false);
        $mail->Body = <<<EOT
Email: {$_POST[&#39;email&#39;]}
Name: {$_POST[&#39;name&#39;]}
Message: {$_POST[&#39;message&#39;]}
EOT;
if (!$mail->send()) {
            $msg = &#39;对不起,出了点问题。请稍后再试。&#39;;
} else {
            $msg = &#39;发送消息成功!谢谢您联络我们。&#39;;
}
} else {
        $msg = &#39;电子邮件地址无效,邮件被忽略。&#39;;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>邮件表单</title>
</head>
<body>
<h1>Let&#39;s get in touch!</h1>
<?php if (!empty($msg)) {
    echo "<h2>$msg</h2>";
} ?>
<form method="POST">
    <label for="name">名称: <input type="text" name="name" id="name"></label><br><br>

    <label for="email">电子邮件: <input type="email" name="email" id="email"></label><br><br>

    <label for="message">消息:<textarea name="message" id="message" rows="8" cols="20"></textarea></label><br><br>
    <input type="submit" value="发送">
</form>
</body>
</html>

Das Endergebnis ist:

Sobald der Benutzer seine Nachricht übermittelt, erhält er eine Bestätigung und die Der Inhalt erreicht die im Feld „addAddress“ eingegebene E-Mail-Adresse. Wie versende ich E-Mails in PHP? Implementiert mit PHPMailer

Profi-Tipp: Wenn das PHPMailer-Kontaktformular nicht funktioniert, fügen Sie die folgende Zeile hinzu, um zu sehen, was das Problem verursacht: $mail-> Vergessen Sie nicht, hinzuzufügen. Entfernen Sie es oder setzen Sie es auf Null!

Das obige ist der detaillierte Inhalt vonWie versende ich E-Mails in PHP? Implementiert mit PHPMailer. 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