Heim >Backend-Entwicklung >PHP-Tutorial >Mail-Bibliothek in PHP8.0
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!