Maison > Article > développement back-end > Envoyer un e-mail dans ThinkPHP5 en utilisant PHPMailer
ThinkPHP5 utilise PHPMailer pour envoyer des e-mails
phpMailer est une classe de messagerie php très puissante qui peut définir l'adresse e-mail d'envoi et l'adresse de réponse, l'e-mail sujet, page Web HTML, téléchargement de pièces jointes, et il est très pratique à utiliser.
Caractéristiques de phpMailer :
1 Contient plusieurs TO, CC, BCC et REPLY-TO dans l'e-mail.
2. La plate-forme est largement utilisée et les serveurs SMTP pris en charge incluent Sendmail, qmail, Postfix, Gmail, Imail, Exchange, etc.
3. Prend en charge les images intégrées, les pièces jointes et les e-mails HTML.
4. Fonction de débogage fiable et puissante.
5. Prise en charge de l'authentification SMTP.
6. Personnalisez l'en-tête de l'e-mail.
7. Prend en charge l'encodage 8 bits, base64, binaire et imprimable entre guillemets.
Comment installer ou télécharger phpMailer :
1. Télécharger depuis github : https://github.com/PHPMailer/PHPMailer/
2. Utilisez composer pour installer :
composer require phpmailer/phpmailer
ou
Ajoutez
"phpmailer/phpmailer": "~6.0"
à votre fichier composer.json. avant d'envoyer. , lors des tests, il est en fait plus pratique d'utiliser la boîte aux lettres gratuite pour laquelle vous avez demandé. Vous n'avez pas besoin de créer un serveur vous-même. Vous devrez peut-être configurer le service SMTP de la boîte aux lettres publique (163, qq). , etc.) sont fermés par défaut pour des raisons de sécurité.
La configuration de la boîte aux lettres NetEase est la suivante :
La configuration liée à la boîte aux lettres QQ est la suivante ci-dessous :
|
Serveur POP3 (port 995) | serveur smtp (port 465 ou 587) | ||||||
qq.com | pop.qq.com | smtp.qq.com |
Bien sûr, en plus des boîtes aux lettres NetEase et QQ, d'autres boîtes aux lettres sont également possibles
Après avoir exécuté la commande composer ci-dessus, il y aura un répertoire supplémentaire dans le répertoire /vendor sous le répertoire racine dossier phpmailer
exemple de code php :
<?php namespace app\api\controller; use think\Controller; use think\Cache; use think\Db; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; class Test extends Controller { public function email(){ $mail = new PHPMailer(true); // Passing `true` enables exceptions try { //服务器配置 $mail->CharSet ="UTF-8"; //设定邮件编码 $mail->SMTPDebug = 0; // 调试模式输出 $mail->isSMTP(); // 使用SMTP $mail->Host = 'smtp.163.com'; // SMTP服务器 $mail->SMTPAuth = true; // 允许 SMTP 认证 $mail->Username = 'liqingbo27@163.com'; // SMTP 用户名 即邮箱的用户名 $mail->Password = ''; // SMTP 密码 部分邮箱是授权码(例如163邮箱,不明白看下面有说明) $mail->SMTPSecure = 'ssl'; // 允许 TLS 或者ssl协议 $mail->Port = 465; // 服务器端口 25 或者465 具体要看邮箱服务器支持 $mail->setFrom('liqingbo27@163.com', 'Mailer'); //发件人 $mail->addAddress('252588119@qq.com', 'Joe'); // 收件人 //$mail->addAddress('ellen@example.com'); // 可添加多个收件人 $mail->addReplyTo('liqingbo27@163.com', 'info'); //回复的时候回复给哪个邮箱 建议和发件人一致 //$mail->addCC('cc@example.com'); //抄送 //$mail->addBCC('bcc@example.com'); //密送 //发送附件 // $mail->addAttachment('../xy.zip'); // 添加附件 // $mail->addAttachment('../thumb-1.jpg', 'new.jpg'); // 发送附件并且重命名 //Content $mail->isHTML(true); // 是否以HTML文档格式发送 发送后客户端可直接显示对应HTML内容 $mail->Subject = '这里是邮件标题' . time(); $mail->Body = '<h1>这里是邮件内容</h1>' . date('Y-m-d H:i:s'); $mail->AltBody = '如果邮件客户端不支持HTML则显示此内容'; $mail->send(); echo '邮件发送成功'; } catch (Exception $e) { echo '邮件发送失败: ', $mail->ErrorInfo; } } }
Lien d'accès direct : https://www.liqingbo.cn/api/test/email
Dans des circonstances normales, le résultat sera : L'e-mail est envoyé avec succèsL'effet du destinataire est comme indiqué ci-dessous
163 Définir le code d'autorisation
Paramètres->Mot de passe d'autorisation client->Code d'autorisation
Tutoriel recommandé : "Tutoriel vidéo 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!