Maison  >  Article  >  développement back-end  >  Envoyer un e-mail dans ThinkPHP5 en utilisant PHPMailer

Envoyer un e-mail dans ThinkPHP5 en utilisant PHPMailer

coldplay.xixi
coldplay.xixiavant
2020-06-08 11:19:573842parcourir

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 :

Envoyer un e-mail dans ThinkPHP5 en utilisant PHPMailer

La configuration liée à la boîte aux lettres QQ est la suivante ci-dessous :

邮箱 POP3服务器(端口995) smtp服务器(端口465或587)
qq.com
pop.qq.com smtp.qq.com
Boîte aux lettres

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 = &#39;smtp.163.com&#39;;                // SMTP服务器 
            $mail->SMTPAuth = true;                      // 允许 SMTP 认证 
            $mail->Username = &#39;liqingbo27@163.com&#39;;      // SMTP 用户名  即邮箱的用户名 
            $mail->Password = &#39;&#39;;                        // SMTP 密码  部分邮箱是授权码(例如163邮箱,不明白看下面有说明) 
            $mail->SMTPSecure = &#39;ssl&#39;;                   // 允许 TLS 或者ssl协议 
            $mail->Port = 465;                           // 服务器端口 25 或者465 具体要看邮箱服务器支持 
 
            $mail->setFrom(&#39;liqingbo27@163.com&#39;, &#39;Mailer&#39;);  //发件人 
            $mail->addAddress(&#39;252588119@qq.com&#39;, &#39;Joe&#39;);  // 收件人 
            //$mail->addAddress(&#39;ellen@example.com&#39;);  // 可添加多个收件人 
            $mail->addReplyTo(&#39;liqingbo27@163.com&#39;, &#39;info&#39;); //回复的时候回复给哪个邮箱 建议和发件人一致 
            //$mail->addCC(&#39;cc@example.com&#39;);                    //抄送 
            //$mail->addBCC(&#39;bcc@example.com&#39;);                    //密送 
 
            //发送附件 
            // $mail->addAttachment(&#39;../xy.zip&#39;);         // 添加附件 
            // $mail->addAttachment(&#39;../thumb-1.jpg&#39;, &#39;new.jpg&#39;);    // 发送附件并且重命名 
 
            //Content 
            $mail->isHTML(true);                                  // 是否以HTML文档格式发送  发送后客户端可直接显示对应HTML内容 
            $mail->Subject = &#39;这里是邮件标题&#39; . time(); 
            $mail->Body    = &#39;<h1>这里是邮件内容</h1>&#39; . date(&#39;Y-m-d H:i:s&#39;); 
            $mail->AltBody = &#39;如果邮件客户端不支持HTML则显示此内容&#39;; 
 
            $mail->send(); 
            echo &#39;邮件发送成功&#39;; 
        } catch (Exception $e) { 
            echo &#39;邮件发送失败: &#39;, $mail->ErrorInfo; 
        }
    }
}

Lien d'accès direct : https://www.liqingbo.cn/api/test/email Envoyer un e-mail dans ThinkPHP5 en utilisant PHPMailer

Dans des circonstances normales, le résultat sera : L'e-mail est envoyé avec succès

Envoyer un e-mail dans ThinkPHP5 en utilisant PHPMailerL'effet du destinataire est comme indiqué ci-dessous


Envoyer un e-mail dans ThinkPHP5 en utilisant PHPMailer163 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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer