Maison >développement back-end >tutoriel php >PHP Master | Envoi d'e-mails avec Swift Mailer
pear channel-discover pear.swiftmailer.org pear install swift/swiftLa deuxième méthode est probablement la plus simple si vous êtes sur un hébergement partagé et que vous n'avez pas accès au shell de commande. Téléchargez simplement la bibliothèque sur le site officiel et téléchargez le dossier Lib.
pear channel-discover pear.swiftmailer.org pear install swift/swiftComme vous pouvez le voir, Swift_MailTransport est utilisé pour créer une instance d'une couche de transport qui utilisera la fonction PHP Mail () native. Puis j'ai créé un swift_message Instance que vous pouvez considérer comme l'objet e-mail. Dans les lignes suivantes, je définis les destinataires à l'aide de la méthode setTo (), le sujet e-mail à l'aide de setSubject (), le corps de messagerie à l'aide de setBody () et l'expéditeur à l'aide de la méthode setFrom (). Avec la couche définie et l'e-mail créé, il est temps d'envoyer réellement l'e-mail, ce qui est fait en utilisant la méthode Send () de la classe Swift_Mailer.
pear channel-discover pear.swiftmailer.org pear install swift/swiftJ'ai utilisé une couche de transport différente, une SMTP qui est définie en utilisant la classe SWIFT_SMTPTRANSPORT. Il accepte deux paramètres: le serveur SMTP et le port de connexion. Vous utilisez l'instance pour définir un nom d'utilisateur et un mot de passe appropriés pour accéder au serveur à l'aide des méthodes SetUserName () et SetPassword (). Ensuite, tout comme le premier exemple, j'ai créé un objet Swift_Message et défini les destinataires, le sujet, etc. Cependant, cette fois, j'ai également profité du setcc () et du setBCC () Des méthodes qui, comme vous pouvez le deviner, vous permettent de définir des bénéficiaires de copie carbone et aveugle. La méthode clé de cet exemple est attach () qui joigne un fichier tiré du disque dur à l'aide de la méthode statique de FromPath () qui emmène le chemin vers le fichier que vous souhaitez attacher comme paramètre. Notez que cette fois, j'imprime également le nombre de destinataires défaillants récupérés à l'aide du deuxième paramètre de la méthode Send ().
<span><span><?php </span></span><span><span>require_once 'lib/swift_required.php'; </span></span><span> </span><span><span>// Create the mail transport configuration </span></span><span><span>$transport = Swift_MailTransport<span>::</span>newInstance(); </span></span><span> </span><span><span>// Create the message </span></span><span><span>$message = Swift_Message<span>::</span>newInstance(); </span></span><span><span>$message->setTo(array( </span></span><span> <span>"hello@gmail.com" => "Aurelio De Rosa", </span></span><span> <span>"test@fake.com" => "Audero" </span></span><span><span>)); </span></span><span><span>$message->setSubject("This email is sent using Swift Mailer"); </span></span><span><span>$message->setBody("You're our best client ever."); </span></span><span><span>$message->setFrom("account@bank.com", "Your bank"); </span></span><span> </span><span><span>// Send the email </span></span><span><span>$mailer = Swift_Mailer<span>::</span>newInstance($transport); </span></span><span><span>$mailer->send($message);</span></span>Le constructeur du plugin décorateur accepte un paramètre: un tableau de valeurs pour remplacer les espaces réservés. Chaque valeur de ce tableau utilise l'e-mail de l'utilisateur pour sa clé et un sous-tableau qui contient des paires de remplacement d'espace réservé. C'est exactement l'objectif du tableau de remplacement $. Dans l'exemple ci-dessus, en tant qu'ensembles d'espaces d'espaces, j'ai utilisé une chaîne à l'intérieur de deux supports (c'est-à-dire {FullName}) Mais vous pouvez utiliser ce que vous voulez. Cette fois, je n'ai pas défini tous les destinataires dans la même déclaration qu'avant et j'ai utilisé un pour Loop. Cela se fait parce que le plugin intercepte le processus d'envoi, lit l'e-mail du destinataire et remplace les espaces réservés en utilisant les valeurs du tableau de remplacement.
Swift Mailer peut être facilement installé à l'aide de Composer, un outil pour la gestion de la dépendance dans PHP. Pour installer Swift Mailer, vous devez faire installer le compositeur sur votre système. Une fois que le compositeur est installé, vous pouvez installer Swift Mailer en exécutant la commande suivante dans votre répertoire de projet: le compositeur nécessite "SwiftMailer / SwiftMailer: ^ 6.0". Cette commande indique au compositeur de télécharger le package Swift Mailer et ses dépendances dans votre projet.
L'envoi d'un e-mail avec Swift Mailer implique la création d'un message, Configuration du mailer et envoi du message. Voici un exemple de base de la façon d'envoyer un e-mail avec Swift Mailer:
require_once '/path/to/vendor/autoload.php' ;
$Message = (new swift_message ()))
-> setSubject ('Hello')
-> setFrom (['John@doe.com' => 'John Doe'])
-> setTo (['receiver@domain.org', 'autre@domain.org' => 'un nom'])
-> setBody ('voici le message lui-même');
$ Transport = (new Swift_SmtpTransport ('Smtp.example.org', 25))
-> SetUsername ('votre nom d'utilisateur')
-> setPassword ('votre mot de passe');
$ Mailer = new Swift_Mailer ($ Transport);
$ result = $ Mailer-> Send ($ message);
Swift Mailer vous permet d'ajouter des pièces jointes à vos e-mails. Vous pouvez joindre des fichiers à partir d'un chemin, d'une chaîne ou d'une instance de pièce jointe Swift existante. Voici un exemple de comment joindre un fichier à partir d'un chemin:
$ message = (new swift_message ())
-> setSubject ('Bonjour')
-> setFrom (['John @ doe.com '=>' John Doe '])
-> setTo ([' receiver@domain.org '])
-> setBody (' Voici le message lui-même ')
-> attacher (swift_attachment :: frompath (' path / to / image.jpg '));
Swift Mailer vous permet d'envoyer des e-mails HTML en définissant le corps du message à une chaîne HTML et en définissant le type de contenu à «SMS / HTML». Voici un exemple:
$ message = (new Swift_Message ())
-> setSubject ('Hello')
-> setFrom (['John@doe.com' => 'John Doe '])
-> setTo ([' receiver@domain.org '])
-> setbody ('
voici le html Message lui-même
',' text / html '); Swift Mailer lance des exceptions lorsqu'une erreur se produit. Vous pouvez assister à ces exceptions pour gérer les erreurs. Voici un exemple:
essayez {
$ result = $ Mailer-> send ($ message);
} catch (swift_transportException $ e) {
echo 'Il y a eu une erreur pendant que Envoi de l'e-mail: '. $ e-> getMessage ();
}
Vous pouvez utiliser Swift Mailer avec Gmail en configurant le transport SMTP avec le serveur SMTP Gmail paramètres. Voici un exemple:
$ Transport = (new Swift_SmtpTransport ('smtp.gmail.com', 465, 'ssl'))
-> setUsername ('Votre nom d'utilisateur Gmail')
- - > setPassword ('Votre mot de passe gmail');
Vous pouvez envoyer plusieurs e-mails avec Swift Mailer en créant plusieurs instances de message et en les envoyant avec la même instance de Mailer. Voici un exemple:
$ message1 = (new Swift_Message ())
-> setSubject ('Hello')
-> setFrom (['John@doe.com' => 'John Doe '])
-> setTo ([' receiver1@domain.org '])
-> setBody (' Voici le message lui-même ');
$ message2 = (new Swift_Message ())
-> setSubject (' Hello ')
-> setFrom ([' John@doe.com '=>' John Doe '])
-> setTo ([' receiver2@domain.org '])
-> setBody (' Voici le message lui-même ');
$ result1 = $ Mailer-> Send ($ message1);
$ result2 = $ Mailer-> send ($ message2);
Swift Mailer est intégré à Symfony et peut être utilisé comme service. Vous pouvez envoyer des e-mails avec Swift Mailer dans Symfony en obtenant le service Mailer et en l'utilisant pour envoyer un message. Voici un exemple:
$ message = (new Swift_Message ())
-> setSubject ('Hello')
-> setFrom (['John@doe.com' => 'John Doe '])
-> setTo ([' receiver@domain.org '])
-> setBody (' Voici le message lui-même ');
$ this-> get (' Mailer ') -> Envoyer ($ message);
Vous pouvez définir la priorité d'un e-mail avec Swift Mailer en appelant la méthode SetPriority sur l'instance de message. La priorité est un entier entre 1 (le plus élevé) et 5 (le plus bas). Voici un exemple:
$ message = (new Swift_Message ())
-> setSubject ('Hello')
-> setFrom (['John@doe.com' => 'John Doe '])
-> setTo ([' receiver@domain.org '])
-> setBody (' Voici le message lui-même ')
-> setPriority (1);
Swift Mailer ne prend pas en charge les e-mails asynchrones envoyés de la boîte. Cependant, vous pouvez y parvenir en utilisant une file d'attente de messages. Vous pouvez mettre en place des messages, puis les envoyer dans un processus distinct. Cela permet à votre application de continuer à traiter d'autres tâches sans attendre que les e-mails soient envoyés.
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!