Envoyer des e-mails dans PHP à l'aide de Symfony Mailer
Mar 05, 2025 am 09:55 AM
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.
- Initialiser l'objet transfert (SMTP ou Sendmail)
- Initialiser l'objet Mailer en utilisant ce transfert
- Initialiser l'objet e-mail
- Format et envoyez un e-mail
Dans la section suivante, nous démontrerons chacune des étapes ci-dessus avec un vrai exemple.
-
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
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... ?>
-
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; // 創(chuàng)建一個(gè)傳輸對(duì)象 $transport = Transport::fromDsn('smtp://username:password@hostname:port'); // 創(chuàng)建一個(gè)郵件器對(duì)象 $mailer = new Mailer($transport); // 創(chuàng)建一個(gè)電子郵件對(duì)象 $email = (new Email()); // 設(shè)置“發(fā)件人地址” $email->from('sender@example.test'); // 設(shè)置“收件人地址” $email->to('recepient@example.test'); // 設(shè)置“主題” $email->subject('使用Symfony Mailer庫(kù)的演示郵件。'); // 設(shè)置純文本“正文” $email->text('這是郵件的純文本正文。\n感謝,\n管理員'); // 設(shè)置HTML“正文” $email->html('這是郵件的HTML版本。<br><br>內(nèi)聯(lián)圖像示例:<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'); // 發(fā)送郵件 $mailer->send($email);
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();
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... ?>
é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; // 創(chuàng)建一個(gè)傳輸對(duì)象 $transport = Transport::fromDsn('smtp://username:password@hostname:port'); // 創(chuàng)建一個(gè)郵件器對(duì)象 $mailer = new Mailer($transport); // 創(chuàng)建一個(gè)電子郵件對(duì)象 $email = (new Email()); // 設(shè)置“發(fā)件人地址” $email->from('sender@example.test'); // 設(shè)置“收件人地址” $email->to('recepient@example.test'); // 設(shè)置“主題” $email->subject('使用Symfony Mailer庫(kù)的演示郵件。'); // 設(shè)置純文本“正文” $email->text('這是郵件的純文本正文。\n感謝,\n管理員'); // 設(shè)置HTML“正文” $email->html('這是郵件的HTML版本。<br><br>內(nèi)聯(lián)圖像示例:<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'); // 發(fā)送郵件 $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!
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les problèmes et les solutions courants pour la portée de la variable PHP incluent: 1. La variable globale ne peut pas être accessible dans la fonction, et elle doit être transmise en utilisant le mot-clé ou le paramètre global; 2. La variable statique est déclarée avec statique, et elle n'est initialisée qu'une seule fois et la valeur est maintenue entre plusieurs appels; 3. Des variables hyperglobales telles que $ _get et $ _post peuvent être utilisées directement dans n'importe quelle portée, mais vous devez faire attention au filtrage s?r; 4. Les fonctions anonymes doivent introduire des variables de portée parents via le mot clé Utiliser, et lorsque vous modifiez les variables externes, vous devez passer une référence. La ma?trise de ces règles peut aider à éviter les erreurs et à améliorer la stabilité du code.

Pour gérer en toute sécurité les téléchargements de fichiers PHP, vous devez vérifier la source et taper, contr?ler le nom et le chemin du fichier, définir les restrictions du serveur et traiter les fichiers multimédias deux fois. 1. Vérifiez la source de téléchargement pour empêcher le CSRF via le jeton et détecter le type de mime réel via FINFO_FILE en utilisant le contr?le de liste blanche; 2. Renommez le fichier à une cha?ne aléatoire et déterminez l'extension pour la stocker dans un répertoire non Web en fonction du type de détection; 3. La configuration PHP limite la taille de téléchargement et le répertoire temporaire Nginx / Apache interdit l'accès au répertoire de téléchargement; 4. La bibliothèque GD résait les images pour effacer des données malveillantes potentielles.

Il existe trois méthodes courantes pour le code de commentaire PHP: 1. Utiliser // ou # pour bloquer une ligne de code, et il est recommandé d'utiliser //; 2. Utiliser /.../ pour envelopper des blocs de code avec plusieurs lignes, qui ne peuvent pas être imbriquées mais peuvent être croisées; 3. Compétences combinées Commentaires tels que l'utilisation / if () {} / pour contr?ler les blocs logiques, ou pour améliorer l'efficacité avec les touches de raccourci de l'éditeur, vous devez prêter attention aux symboles de fermeture et éviter les nidification lorsque vous les utilisez.

La clé pour rédiger des commentaires PHP est de clarifier l'objectif et les spécifications. Les commentaires devraient expliquer "pourquoi" plut?t que "ce qui a été fait", en évitant la redondance ou trop de simplicité. 1. Utilisez un format unifié, tel que DocBlock (/ * /) pour les descriptions de classe et de méthode afin d'améliorer la lisibilité et la compatibilité des outils; 2. Soulignez les raisons de la logique, telles que pourquoi les sauts JS doivent être sortis manuellement; 3. Ajoutez une description d'une vue d'ensemble avant le code complexe, décrivez le processus dans les étapes et aidez à comprendre l'idée globale; 4. Utilisez TODO et FIXME Rationalement pour marquer des éléments et des problèmes de taches pour faciliter le suivi et la collaboration ultérieurs. De bonnes annotations peuvent réduire les co?ts de communication et améliorer l'efficacité de la maintenance du code.

AgeneratorInphpisamemory-EfficientwaytoterateOrgedatasetsByyieldingValuesonEatatimeIntedofreturningThemallAtonce.1.GeneratorsUsEtheieldKeywordToproduceValuesondemand, ReducingMemoryUsage.2.TheyAreusefulForHandlingBigloops, ReadingLargeFiles, OR OR.

Toléarnphpeffective, startBySettingUpAlocalServerERironmentUsingToolsLILYXAMPPANDACODEDITERLIGHILLEVSCODE.1) INSTRUSITIONXAMPFORAPACHE, MYSQL, ANDPHP.2) USACODEDEDITORFORSYNTAXSUPPORT.3)

Toinstallphpquickly, usexAmpPonWindowsorHomebrewonMacos.1.onwindows, downloadAndInstallxAmppp, selectComponents, startapache et placefilesInhtdocs.2.

En PHP, vous pouvez utiliser des crochets ou des accolades bouclées pour obtenir des caractères d'index spécifiques à la cha?ne, mais les crochets sont recommandés; L'index commence à partir de 0 et l'accès à l'extérieur de la plage renvoie une valeur nulle et ne peut pas se voir attribuer une valeur; MB_substr est nécessaire pour gérer les caractères multi-octets. Par exemple: $ str = "Hello"; echo $ str [0]; sortie h; et les caractères chinois tels que MB_substr ($ str, 1,1) doivent obtenir le résultat correct; Dans les applications réelles, la longueur de la cha?ne doit être vérifiée avant le boucle, les cha?nes dynamiques doivent être vérifiées pour la validité et les projets multilingues recommandent d'utiliser des fonctions de sécurité multi-octets uniformément.
