Maison > développement back-end > tutoriel php > Envoyer des e-mails dans PHP à l'aide de Symfony Mailer

Envoyer des e-mails dans PHP à l'aide de Symfony Mailer

Joseph Gordon-Levitt
Libérer: 2025-03-05 09:55:09
original
884 Les gens l'ont consulté

Send Emails in PHP Using 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.

Qu'est-ce 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.

  1. Initialiser l'objet transfert (SMTP ou Sendmail)
  2. Initialiser l'objet Mailer en utilisant ce transfert
  3. Initialiser l'objet e-mail
  4. Format et envoyez un e-mail

Dans la section suivante, nous démontrerons chacune des étapes ci-dessus avec un vrai exemple.

  1. Installation et configuration

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
Copier après la connexion
Copier après la connexion

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"
    }
}
Copier après la connexion
Copier après la connexion

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...
?>
Copier après la connexion
Copier après la connexion
  1. Créer un script e-mail

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/imghw/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);
Copier après la connexion
Copier après la connexion

Voyons comment fonctionne ce code.

Étape 1: Initialiser Symfony Mailer

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();
Copier après la connexion
Copier après la connexion

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
Copier après la connexion
Copier après la connexion

Maintenant, nous allons définir l'adresse "de" de l'e-mail à l'aide de la méthode From.

{
    "require": {
        "symfony/mailer": "^5.4"
    }
}
Copier après la connexion
Copier après la connexion

Ensuite, définissons l'adresse "sur" de l'e-mail.

<?php
require_once './vendor/autoload.php';

// your application code...
?>
Copier après la connexion
Copier après la connexion

Étape 3: joignez le fichier

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/imghw/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);
Copier après la connexion
Copier après la connexion

Si vous souhaitez définir la version HTML du message, vous pouvez utiliser l'objet Mailer pour envoyer le message.

$transport = new SendmailTransport();
Copier après la connexion
Copier après la connexion

Essayez d'exécuter le script et vous devriez recevoir un e-mail!

Conclusion

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!

Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal