Maison >développement back-end >tutoriel php >Envoyer des e-mails dans PHP à l'aide de Symfony Mailer
Cet article plongera dans la bibliothèque Symfony Mailer, qui vous permet d'envoyer des e-mails à partir des applications PHP. En commençant par l'installation et la configuration, nous allons étape par étape expliquant un exemple réel qui démontre tous les aspects de l'envoi d'e-mails à l'aide de la bibliothèque Symfony Mailer.
Vous avez une variété de façons de choisir lors de l'envoi d'e-mails dans une application PHP. Vous pouvez même finir par créer votre propre wrapper pour configurer rapidement vos fonctionnalités de messagerie. Cependant, si vous utilisez une bibliothèque bien entretenue et riche en fonctionnalités, vous avez toujours de la chance.
Symfony Mailer est une bibliothèque populaire pour envoyer des e-mails à partir des applications PHP et est largement accepté par la communauté PHP. Il s'agit d'une bibliothèque riche en fonctionnalités car elle couvre presque tous les aspects de l'envoi d'e-mails, de la configuration de différentes façons de transférer pour personnaliser les messages envoyés. De plus, si vous avez entendu parler de la bibliothèque Swift Mailer, c'est le prédécesseur de la bibliothèque Symfony Mailer - Symfony Mailer est une version nouvelle et améliorée.
En fait, l'envoi de courriels à l'aide de la bibliothèque Symfony Mailer est un processus très simple.
Dans la section suivante, nous démontrerons chacune des étapes ci-dessus avec un vrai exemple.
Dans cette section, je vais vous montrer comment installer et configurer la bibliothèque Symfony Mailer. L'installation est très simple car elle est déjà disponible en tant que package compositeur. Avant de continuer, assurez-vous que le compositeur soit installé car nous en avons besoin pour installer la bibliothèque Symfony Mailer.
Après avoir installé Composer, utilisez la commande suivante pour obtenir la bibliothèque Symfony Mailer.
$ composer require symfony/mailer
De cette manière, la bibliothèque Symfony Mailer doit être installée, ainsi que les dépendances nécessaires dans le répertoire Vendor . Le contenu du nouveau composer.json doit être le suivant:
{ "require": { "symfony/mailer": "^5.4" } }
C'est la partie d'installation, mais comment devriez-vous l'utiliser? Ceci est juste un problème avec l'inclusion du fichier autoload.php créé par compositeur dans votre application, comme indiqué dans l'extrait de code ci-dessous.
<?php require_once './vendor/autoload.php'; // your application code... ?>
Nous avons exploré comment installer la bibliothèque Symfony Mailer à l'aide du compositeur. Commençons maintenant à implémenter un vrai exemple.
Continuez à créer le fichier email.php contenant le contenu suivant.
<?php require_once './vendor/autoload.php'; use Symfony\Component\Mailer\Transport; use Symfony\Component\Mailer\Mailer; use Symfony\Component\Mime\Email; // 创建一个传输对象 $transport = Transport::fromDsn('smtp://username:password@hostname:port'); // 创建一个邮件器对象 $mailer = new Mailer($transport); // 创建一个电子邮件对象 $email = (new Email()); // 设置“发件人地址” $email->from('sender@example.test'); // 设置“收件人地址” $email->to('recepient@example.test'); // 设置“主题” $email->subject('使用Symfony Mailer库的演示邮件。'); // 设置纯文本“正文” $email->text('这是邮件的纯文本正文。\n感谢,\n管理员'); // 设置HTML“正文” $email->html('这是邮件的HTML版本。<br><br>内联图像示例:<br><img src="/static/imghwm/default1.png" data-src="http://publicdata.comcid:nature" class="lazy" alt="Send Emails in PHP Using Symfony Mailer "><br><br>感谢,<br>管理员'); // 添加“附件” $email->attachFromPath('/path/to/example.txt'); // 添加“图像” $email->embed(fopen('/path/to/mailor.jpg', 'r'), 'nature'); // 发送邮件 $mailer->send($email);
Voyons comment fonctionne ce code.
La bibliothèque Symfony Mailer prend en charge différentes méthodes de transmission telles que SMTP et Sendmail lors de l'envoi de courriels. Ainsi, la première chose que vous devez faire est d'initialiser l'objet SendmailTransport.
$transport = new SendmailTransport();
Après avoir créé le transfert, nous devons initialiser un objet e-mail et le décorer avec les propriétés nécessaires.
$ composer require symfony/mailer
Maintenant, nous allons définir l'adresse "de" de l'e-mail à l'aide de la méthode From.
{ "require": { "symfony/mailer": "^5.4" } }
Ensuite, définissons l'adresse "sur" de l'e-mail.
<?php require_once './vendor/autoload.php'; // your application code... ?>
Ensuite, voyons comment joindre des fichiers aux e-mails.
Vous pouvez utiliser la méthode du texte.
<?php require_once './vendor/autoload.php'; use Symfony\Component\Mailer\Transport; use Symfony\Component\Mailer\Mailer; use Symfony\Component\Mime\Email; // 创建一个传输对象 $transport = Transport::fromDsn('smtp://username:password@hostname:port'); // 创建一个邮件器对象 $mailer = new Mailer($transport); // 创建一个电子邮件对象 $email = (new Email()); // 设置“发件人地址” $email->from('sender@example.test'); // 设置“收件人地址” $email->to('recepient@example.test'); // 设置“主题” $email->subject('使用Symfony Mailer库的演示邮件。'); // 设置纯文本“正文” $email->text('这是邮件的纯文本正文。\n感谢,\n管理员'); // 设置HTML“正文” $email->html('这是邮件的HTML版本。<br><br>内联图像示例:<br><img src="/static/imghwm/default1.png" data-src="http://publicdata.comcid:nature" class="lazy" alt="Send Emails in PHP Using Symfony Mailer "><br><br>感谢,<br>管理员'); // 添加“附件” $email->attachFromPath('/path/to/example.txt'); // 添加“图像” $email->embed(fopen('/path/to/mailor.jpg', 'r'), 'nature'); // 发送邮件 $mailer->send($email);
Si vous souhaitez définir la version HTML du message, vous pouvez utiliser l'objet Mailer pour envoyer le message.
$transport = new SendmailTransport();
Essayez d'exécuter le script et vous devriez recevoir un e-mail!
Aujourd'hui, nous avons examiné l'une des bibliothèques d'e-mails PHP les plus populaires: Symfony Mailer. Avec cette bibliothèque, vous pouvez facilement envoyer des e-mails à partir de scripts PHP.
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!