Heim  >  Artikel  >  Backend-Entwicklung  >  Mail-Bibliothek in PHP8.0

Mail-Bibliothek in PHP8.0

WBOY
WBOYOriginal
2023-05-14 08:49:501164Durchsuche

Kürzlich hat PHP8.0 eine neue Mail-Bibliothek veröffentlicht, die das Senden und Empfangen von E-Mails in PHP erleichtert. Diese Bibliothek verfügt über leistungsstarke Funktionen, darunter das Erstellen von E-Mails, das Senden von E-Mails, das Parsen von E-Mails, das Abrufen von Anhängen und das Lösen von Problemen, bei denen E-Mails hängen bleiben.

In vielen Projekten müssen wir E-Mail für die Kommunikation und einige notwendige Geschäftsvorgänge nutzen. Mit der Mail-Bibliothek in PHP8.0 können wir dies ganz einfach erreichen. Als Nächstes erkunden wir diese neue E-Mail-Bibliothek und sehen, wie wir sie in unserer Anwendung verwenden.

Installieren Sie die Mail-Bibliothek
Zuerst müssen wir Composer verwenden, um die PHP8.0-Mail-Bibliothek zu installieren. In unserem Projektverzeichnis können wir den folgenden Befehl ausführen:

composer require phpmailer/phpmailer

Dieser Befehl installiert die PHPMailer-Bibliothek, die Standard-Mailbibliothek für PHP8.0.

Verbindung herstellen
Bevor wir die Mailbibliothek nutzen können, müssen wir eine Verbindung mit dem SMTP-Server herstellen. Wir können das SMTP-Protokoll zum Senden von E-Mails verwenden. Der SMTP-Server benötigt eine SMTP-Adresse und einen SMTP-Port. Mithilfe der Mail-Bibliothek in PHP8.0 können wir den folgenden Code verwenden, um eine Verbindung mit dem SMTP-Server herzustellen:

use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;

require 'vendor/autoload.php';
$mail = new PHPMailer (true);

try {

//Server settings
$mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
$mail->isSMTP();                                            //Send using SMTP
$mail->Host       = 'smtp.gmail.com';                       //Set the SMTP server to send through
$mail->SMTPAuth   = true;                                   //Enable SMTP authentication
$mail->Username   = 'yourname@gmail.com';                  //SMTP username
$mail->Password   = 'yourpassword';                         //SMTP password
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            //Enable implicit TLS encryption
$mail->Port       = 465;                                    //TCP port to connect to; use 587 if you have no SSL/TLS support

//Recipients
$mail->setFrom('yourname@gmail.com', 'Your Name');
$mail->addAddress('recipient@example.com', 'Recipient Name');     //Add a recipient

//Content
$mail->isHTML(true);                                          //Set email format to HTML
$mail->Subject = 'Test Email';
$mail->Body    = 'This is a test email.';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$mail->send();
echo 'Message has been sent';

} Catch (Exception $e) {

echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";

}

Im obigen Code haben wir zuerst die PHPMailer-Bibliothek eingeführt und eine PHPMailer-Instanz erstellt. Anschließend richten wir die Adresse, die Portnummer, den Benutzernamen und das Passwort des SMTP-Servers ein und aktivieren die SMTP-Authentifizierung. Außerdem formatieren und inhaltlich wir die E-Mail und geben die Absender- und Empfängeradressen an.

Verwenden der Mail-Bibliothek
Nachdem wir die Verbindung mit dem SMTP-Server eingerichtet haben, können wir die Mail-Bibliothek von PHP8.0 zum Versenden von E-Mails verwenden. Wir können den folgenden Code verwenden, um eine E-Mail zu senden:

//Content
$mail->isHTML(true); //Setze das E-Mail-Format auf HTML
$mail->Subject = 'Test Email';
$ mail ->Body = 'Dies ist eine Test-E-Mail.';
$mail->AltBody = 'Dies ist der Textkörper im Klartext für Nicht-HTML-Mail-Clients';

$mail->send();

Die Methode isHTML() im obigen Code wird verwendet, um anzugeben, dass der gesendete E-Mail-Inhalt im HTML-Format vorliegt. Das Subject-Attribut gibt den Betreff der E-Mail an, das Body-Attribut gibt den Inhalt der E-Mail an und das AltBody-Attribut gibt den Klartextinhalt der E-Mail an, sodass diese nicht mit einem HTML-formatierten E-Mail-Client angezeigt werden kann.

E-Mails analysieren
Die Mail-Bibliothek von PHP8.0 bietet auch die Funktion zum Parsen von E-Mails. Wir können den folgenden Code verwenden, um eine E-Mail zu analysieren:

// E-Mail-Nachricht laden
$mail = new PHPMailer();
$mail->setServer('smtp.gmail.com', 'username', ' Passwort ');
$mail->setPort('587');
$mail->addAddress('recipient@example.com', 'John Doe');

// Den gesamten E-Mail-Inhalt abrufen
$ mail ->retrieve();

// Konvertieren Sie den E-Mail-Text in eine UTF-8-Zeichenfolge
$emailBody = $mail->utf8ize($mail->Body);

// Analysieren Sie die E-Mail mit PHP-Builds -in imap-Funktionen
$imapStream = imap_open('{imap.gmail.com:993/imap/ssl}INBOX', 'username', 'password');
$message = imap_fetchbody($imapStream, 1, "" ) ;

// Analysieren Sie den E-Mail-Text mithilfe der in PHP integrierten DOM-Funktionen
$dom = new DOMDocument();
@$dom->loadHTML($emailBody);
$data = array();
$header = $dom->getElementsByTagName('header')->item(0);
foreach($header->childNodes as $node) {

if ($node->nodeName == 'from') {
    list($name, $email) = explode(' <', $node->nodeValue);
    $data['from_name'] = $name;
    $data['from_email'] = str_replace('>', '', $email);
} elseif ($node->nodeName == 'date') {
    $data['date'] = date('Y-m-d H:i:s', strtotime($node->nodeValue));
} elseif ($node->nodeName == 'subject') {
    $data['subject'] = $node->nodeValue;
}

}

Die Methode „retrie()“ im obigen Code wird verwendet Rufen Sie den gesamten E-Mail-Inhalt ab. Nachdem wir den E-Mail-Inhalt in das UTF-8-Format konvertiert haben, können wir die in PHP integrierte IMAP-Funktion verwenden, um die E-Mail zu analysieren. Wir können auch die DOM-Funktionen von PHP verwenden, um E-Mail-Header-Informationen zu analysieren.

Zusammenfassung
Die Mail-Bibliothek von PHP8.0 erleichtert die Verwendung von E-Mails in PHP-Anwendungen erheblich. Die Bibliothek bietet leistungsstarke Funktionen, darunter das Erstellen von E-Mails, das Senden von E-Mails, das Parsen von E-Mails und das Abrufen von E-Mail-Anhängen. Durch die Verwendung der PHPMailer-Bibliothek können wir die Mail-Funktionalität einfach implementieren und in unserer Anwendung verwenden.

Das obige ist der detaillierte Inhalt vonMail-Bibliothek in PHP8.0. 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