Maison  >  Article  >  développement back-end  >  Bibliothèque de messagerie en PHP8.0

Bibliothèque de messagerie en PHP8.0

WBOY
WBOYoriginal
2023-05-14 08:49:501162parcourir

Récemment, PHP8.0 a publié une nouvelle bibliothèque de messagerie, facilitant l'envoi et la réception d'e-mails en PHP. Cette bibliothèque possède des fonctionnalités puissantes, notamment la création d'e-mails, l'envoi d'e-mails, l'analyse des e-mails, l'obtention de pièces jointes et la résolution des problèmes de blocage des e-mails.

Dans de nombreux projets, nous devons utiliser le courrier électronique pour la communication et certaines opérations commerciales nécessaires. La bibliothèque de courrier en PHP8.0 nous permet d'y parvenir facilement. Ensuite, nous explorerons cette nouvelle bibliothèque de messagerie et verrons comment l'utiliser dans notre application.

Installer la bibliothèque de messagerie
Tout d'abord, nous devons utiliser Composer pour installer la bibliothèque de messagerie PHP8.0. Dans notre répertoire de projet, nous pouvons exécuter la commande suivante :

composer require phpmailer/phpmailer

Cette commande installera la bibliothèque PHPMailer, qui est la bibliothèque de messagerie standard pour PHP8. 0 .

Établir une connexion
Avant d'utiliser la bibliothèque de messagerie, nous devons établir une connexion avec le serveur SMTP. Nous pouvons utiliser le protocole SMTP pour envoyer des e-mails. Le serveur SMTP nécessite une adresse et un port SMTP. En utilisant la bibliothèque de messagerie de PHP8.0, nous pouvons utiliser le code suivant pour établir une connexion avec le serveur SMTP :

use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;

require 'vendeur/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}";

}

Dans le code ci-dessus, nous avons d'abord présenté la bibliothèque PHPMailer et créé une instance PHPMailer. Nous avons ensuite configuré l'adresse du serveur SMTP, le numéro de port, le nom d'utilisateur, le mot de passe et activé l'authentification SMTP. Nous formatons et contenons également l'e-mail et spécifions les adresses de l'expéditeur et du destinataire.

Utiliser la bibliothèque de messagerie

Après avoir établi la connexion avec le serveur SMTP, nous pouvons utiliser la bibliothèque de messagerie de PHP8.0 pour envoyer des emails. Nous pouvons utiliser le code suivant pour envoyer un e-mail :

//Content

$mail->isHTML(true); //Définir le format de l'e-mail sur HTML
$mail - >Subject = 'E-mail de test';
$mail->Body = 'Ceci est un e-mail de test.';
$mail->AltBody = 'Ceci est le corps en texte brut pour les non-utilisateurs. -Clients de messagerie HTML';

$mail->send();

La méthode isHTML() dans le code ci-dessus est utilisée pour spécifier que le contenu de l'e-mail envoyé est au format HTML. L'attribut Subject spécifie l'objet de l'e-mail, l'attribut Body spécifie le contenu de l'e-mail et l'attribut AltBody spécifie le contenu en texte brut de l'e-mail afin qu'il ne puisse pas être affiché à l'aide d'un client de messagerie au format HTML.

Parse Email

La bibliothèque de messagerie de PHP8.0 fournit également la fonction d'analyse des e-mails. Nous pouvons utiliser le code suivant pour analyser un email :

// Charger l'e-mail

$mail = new PHPMailer();
$mail->setServer(' smtp .gmail.com', 'nom d'utilisateur', 'mot de passe');
$mail->setPort('587');
$mail->addAddress('recipient@example.com' , 'John Doe');

// Récupérer l'intégralité du contenu de l'e-mail

$mail->retrieve();

// Convertir le corps de l'e-mail en un Chaîne UTF-8

$emailBody = $mail->utf8ize($mail->Body);

// Analyser l'e-mail à l'aide des fonctions imap intégrées de PHP#🎜🎜 # $imapStream = imap_open('{imap.gmail.com:993/imap/ssl}INBOX', 'username', 'password');

$message = imap_fetchbody($imapStream, 1, ""); 🎜🎜#
// Analyser le corps de l'e-mail à l'aide des fonctions DOM intégrées de PHP
$dom = new DOMDocument();

@$dom->loadHTML($emailBody);# 🎜 🎜#$data = array();

$header = $dom->getElementsByTagName('header')->item(0);
foreach($header->childNodes en tant que $ 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;
}

}

La méthode retrieve() dans le code ci-dessus est utilisée pour récupérer le contenu de l'intégralité de l'e-mail. Après avoir converti le contenu de l'e-mail au format UTF-8, nous pouvons utiliser la fonction imap intégrée de PHP pour analyser l'e-mail. Nous pouvons également utiliser les fonctions DOM de PHP pour analyser les informations d'en-tête des e-mails.

Summary

La bibliothèque de messagerie de PHP8.0 facilite l'utilisation du courrier électronique dans les applications PHP. La bibliothèque fournit des fonctionnalités puissantes, notamment la création d'e-mails, l'envoi d'e-mails, l'analyse d'e-mails et l'obtention de pièces jointes d'e-mails. En utilisant la bibliothèque PHPMailer, nous pouvons facilement implémenter la fonctionnalité de messagerie et l'utiliser dans notre application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn