Maison >développement back-end >tutoriel php >Comment envoyer un e-mail en utilisant SwiftMailer en php ?

Comment envoyer un e-mail en utilisant SwiftMailer en php ?

PHPz
PHPzoriginal
2023-06-01 09:21:051219parcourir

PHP est un langage de programmation de haut niveau largement utilisé dans le développement de réseaux, et ses fonctions puissantes ont été largement utilisées dans les communications réseau et les notifications par courrier électronique. SwiftMailer est un expéditeur d'e-mails PHP populaire. Il est simple et facile à utiliser, peut envoyer des e-mails rapidement et peut également personnaliser de superbes modèles d'e-mails pour améliorer l'effet visuel des e-mails. Cet article explique comment utiliser SwiftMailer pour envoyer des e-mails, vous permettant de compléter facilement la fonction d'envoi d'e-mails.

1. Installation de SwiftMailer

Avant d'utiliser SwiftMailer, vous devez d'abord l'installer. SwiftMailer peut être installé via Composer ou téléchargé et importé manuellement.

1. Installez via Composer

Dans le répertoire du projet, exécutez la commande suivante :

composer require swiftmailer/swiftmailer

2. Téléchargez et installez manuellement

Téléchargez la dernière version sur le site officiel de SwiftMailer et extrayez le fichier téléchargé dans le projet. Dans le fichier PHP, utilisez require_once pour importer le fichier autoload.php de SwiftMailer.

require_once '/path/to/swift_required.php';

2. Envoi d'e-mails

SwiftMailer propose plusieurs façons d'envoyer des e-mails : en utilisant le protocole SMTP pour envoyer des e-mails, en utilisant la fonction php mail() pour envoyer des e-mails et en utilisant la commande sendmail pour envoyer des e-mails. Cet article explique comment envoyer des e-mails à l'aide du protocole SMTP, qui est une méthode relativement stable et fiable.

1. Préparer les informations SMTP et e-mail

Avant d'envoyer des e-mails à l'aide du protocole SMTP, vous devez préparer les informations SMTP et e-mail. SMTP est l'adresse du serveur de messagerie et le numéro de port fournis par le fournisseur de services d'envoi de courrier électronique. Les informations sur les e-mails incluent l'adresse de l'expéditeur, l'adresse du destinataire, l'objet de l'e-mail, le contenu de l'e-mail, etc.

// SMTP信息
$smtp_server = 'smtp.example.com';
$smtp_port = 465;
$smtp_username = 'user@example.com';
$smtp_password = 'password';

// 邮件信息
$from_email = 'from@example.com';
$to_email = 'to@example.com';
$subject = '邮件主题';
$body = '邮件内容';

2. Créez une instance SwiftMailer

Après avoir préparé les informations SMTP et de courrier électronique, vous devez créer une instance SwiftMailer et appeler la méthode d'envoi d'e-mails via l'instance.

// 创建SMTP实例
$transport = (new Swift_SmtpTransport($smtp_server,$smtp_port))
  ->setUsername($smtp_username)
  ->setPassword($smtp_password);

// 创建邮件实例
$message = (new Swift_Message($subject))
  ->setFrom($from_email)
  ->setTo($to_email)
  ->setBody($body);

3. Envoyer un e-mail

Utilisez l'instance SMTP et l'instance de messagerie créées, appelez la méthode d'envoi d'e-mail, puis l'e-mail peut être envoyé.

// 创建Mailer实例
$mailer = new Swift_Mailer($transport);

// 发送邮件
$result = $mailer->send($message);

if($result){
  echo '发送成功';
}else{
  echo '发送失败';
}

Le code complet est le suivant :

// SMTP信息
$smtp_server = 'smtp.example.com';
$smtp_port = 465;
$smtp_username = 'user@example.com';
$smtp_password = 'password';

// 邮件信息
$from_email = 'from@example.com';
$to_email = 'to@example.com';
$subject = '邮件主题';
$body = '邮件内容';

// 创建SMTP实例
$transport = (new Swift_SmtpTransport($smtp_server,$smtp_port))
  ->setUsername($smtp_username)
  ->setPassword($smtp_password);

// 创建邮件实例
$message = (new Swift_Message($subject))
  ->setFrom($from_email)
  ->setTo($to_email)
  ->setBody($body);

// 创建Mailer实例
$mailer = new Swift_Mailer($transport);

// 发送邮件
$result = $mailer->send($message);

if($result){
  echo '发送成功';
}else{
  echo '发送失败';
}

3. Modèle d'e-mail personnalisé

Lorsque vous utilisez SwiftMailer pour envoyer des e-mails, en plus de définir les attributs de base de l'e-mail, vous pouvez également personnaliser le modèle d'e-mail pour améliorer l'effet visuel. du courrier électronique. Dans le modèle d'e-mail, vous pouvez ajouter des images, des styles, des tableaux et d'autres éléments pour rendre l'e-mail plus beau. Cet article prendra le modèle d'e-mail HTML comme exemple pour présenter comment personnaliser les modèles d'e-mail.

1. Préparer le modèle HTML

Lors de la création d'une instance d'e-mail, vous pouvez définir le type de contenu de l'instance d'e-mail via le deuxième paramètre. Pour envoyer un e-mail HTML, il doit être défini sur « texte/html ». En fait, le contenu de l'e-mail peut être n'importe quelle chaîne au format HTML, vous pouvez donc d'abord préparer le modèle HTML, puis générer dynamiquement le contenu de l'e-mail en insérant des variables dans le contenu de l'e-mail.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>邮件模板</title>
  <style>
    * {margin: 0;padding: 0;}
    body {font-family: Arial, Helvetica, sans-serif;}
    h1 {text-align: center;margin-top: 50px;}
    p {line-height: 1.5;font-size: 16px;margin-top: 30px;text-indent: 2em;}
  </style>
</head>
<body>
  <h1>邮件标题</h1>
  <p>尊敬的<span style="color: red;">{{name}}</span>,您好!这是一封测试邮件。</p>
</body>
</html>

2. Définir le contenu de l'e-mail

Après avoir préparé le modèle HTML, vous devez remplacer le contenu qui doit être généré dynamiquement dans le modèle par l'espace réservé {{name}} et le remplacer par la valeur réelle via le méthode remplacer(). Le contenu final de l'e-mail généré est une chaîne HTML complète.

// 邮件内容中需要动态生成的部分
$name = '张三';

// 读取HTML模板
$html_template = file_get_contents('/path/to/template.html');

// 替换占位符为实际的值
$html_body = str_replace("{{name}}", $name, $html_template);

// 创建邮件实例,设置邮件内容
$message = (new Swift_Message($subject))
  ->setFrom($from_email)
  ->setTo($to_email)
  ->setBody($html_body,'text/html');

Le code complet est le suivant :

// SMTP信息
$smtp_server = 'smtp.example.com';
$smtp_port = 465;
$smtp_username = 'user@example.com';
$smtp_password = 'password';

// 邮件信息
$from_email = 'from@example.com';
$to_email = 'to@example.com';
$subject = '邮件主题';

// 邮件内容中需要动态生成的部分
$name = '张三';

// 读取HTML模板
$html_template = file_get_contents('/path/to/template.html');

// 替换占位符为实际的值
$html_body = str_replace("{{name}}", $name, $html_template);

// 创建SMTP实例
$transport = (new Swift_SmtpTransport($smtp_server,$smtp_port))
  ->setUsername($smtp_username)
  ->setPassword($smtp_password);

// 创建邮件实例,设置邮件内容
$message = (new Swift_Message($subject))
  ->setFrom($from_email)
  ->setTo($to_email)
  ->setBody($html_body,'text/html');

// 创建Mailer实例
$mailer = new Swift_Mailer($transport);

// 发送邮件
$result = $mailer->send($message);

if($result){
  echo '发送成功';
}else{
  echo '发送失败';
}

Résumé

SwiftMailer, en tant qu'expéditeur d'e-mails PHP puissant et facile à utiliser, peut facilement implémenter la fonction d'envoi d'e-mails en PHP. Lorsque vous utilisez SwiftMailer pour envoyer des e-mails, vous devez d'abord installer et importer le fichier à chargement automatique. Avant d'envoyer des e-mails, vous devez préparer les informations SMTP et relatives aux e-mails. Vous pouvez choisir d'envoyer des e-mails au format HTML et personnaliser les modèles d'e-mails pour les améliorer. l'effet visuel de l'e-mail. SwiftMailer dispose de fonctions très riches pour l'envoi d'e-mails. Vous pouvez définir la priorité des e-mails, les pièces jointes, les fonctions CC et BCC, etc. Ces fonctions peuvent être utilisées de manière flexible en fonction des besoins réels.

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