Maison  >  Article  >  développement back-end  >  Explication sur comment introduire PHPMailer en php pour envoyer des emails (avec code)

Explication sur comment introduire PHPMailer en php pour envoyer des emails (avec code)

不言
不言avant
2018-10-16 16:28:413810parcourir

Le contenu de cet article est d'expliquer les étapes à suivre pour introduire PHPMailer pour envoyer des e-mails en PHP (avec du code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. .

J'ai créé hier une fonction pour envoyer des e-mails. Si vous utilisez directement la fonction mail(), vous devez avoir votre propre serveur de messagerie. Il est pratique et rapide d'introduire la classe PHPMailer. étapes :

1 , avoir votre propre compte de messagerie (comme l'email de l'expéditeur)

Il y a deux situations :

1. S'il s'agit d'un email d'entreprise, les paramètres requis sont le numéro d'e-mail et le mot de passe

 2. S'il s'agit d'une boîte aux lettres personnelle, les paramètres nécessaires sont le numéro de boîte aux lettres et le code d'autorisation (ce n'est qu'après son activation que l'envoi automatique d'e-mails peut être contrôlé via le code PHP)

2. Téléchargement de PHPMailer

Adresse de téléchargement : https://github.com/PHPMailer/PHPMailer

J'utilise thinkphp 5 ici, téléchargez-le Ensuite, mettez-le dans le répertoire du fournisseur

3. Encapsulez et envoyez la méthode par e-mail, définissez les paramètres pertinents

Le code spécifique est comme suit. Ici, j'utilise un email d'entreprise. S'il s'agit d'un email personnel, vous devez modifier les valeurs de plusieurs paramètres suivants :

$mail->Host,$mail->Port,发件人邮箱密码(授权码)

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/10/15 0015
 * Time: 13:33
 */
namespace app\common\model;
require VENDOR_PATH . &#39;PHPMailer/src/Exception.php&#39;;
require VENDOR_PATH . &#39;PHPMailer/src/PHPMailer.php&#39;;
require VENDOR_PATH . &#39;PHPMailer/src/SMTP.php&#39;;

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception ;
class Mail
{
    //发件人邮箱
    private static $_fromAddress = &#39;***@medpeer.cn&#39;;
    //发件人邮箱登录密码(非企业邮箱为授权码)
    private static $_pwd = &#39;***&#39;;
    //收件人邮箱
    private static $_toAddress = &#39;***@medpeer.cn&#39;;

    /**
     * 发送邮件
     * @author ZZ
     * @param string $fromAddress 发件人
     * @param string $pwd 发件人登录密码
     * @param string $toAddress 收件人
     * @param string $title 邮件题目
     * @param string $content 邮件内容
     * @return array
     */
    public function sendMail($title,$content,$toAddress = &#39;&#39;,$fromAddress = &#39;&#39;,$pwd = &#39;&#39;){
        if (empty($title) || empty($content)) {
            return [&#39;result&#39; => false, &#39;msg&#39; => &#39;参数错误&#39;];
        }
        if (empty($fromAddress)) {
            $fromAddress = self::$_fromAddress;
            $pwd = self::$_pwd;
        }
        if (empty($toAddress)) {
            $toAddress = self::$_toAddress;
        }
        $mail = new PHPMailer();
        //告诉PHPMailer使用SMTP
        $mail->isSMTP();
        //启用SMTP调试
        // 0 =关闭(供生产使用)
        // 1 =客户端消息
        // 2 =客户端和服务器消息
        $mail->SMTPDebug = 2 ;
        //设置邮件服务器的主机名
        $mail->Host = &#39;smtp.exmail.qq.com&#39;;
        //使用
        // $ mail-> Host = gethostbyname(&#39;smtp.gmail.com&#39;);
        //如果您的网络不支持SMTP over IPv6
        //设置SMTP端口号 -  587用于经过身份验证的TLS,即RFC4409 SMTP提交
        $mail->Port = 465;
        //设置加密系统使用 -  ssl(不建议使用)或tls
        $mail->SMTPSecure = &#39;ssl&#39;;
        //是否使用SMTP身份验证
        $mail->SMTPAuth = true ;
        //用于SMTP身份验证的用户名 - 使用gmail的完整电子邮件地址
        $mail->Username = $fromAddress;
        //用于SMTP身份验证的密码(企业邮箱的话为登录密码)
        $mail->Password = $pwd;
        //设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码
        $mail->CharSet = &#39;UTF-8&#39;;
        //设置要从中发送消息的人员
        $mail->setFrom($fromAddress,&#39;***&#39;);
        //设置备用回复地址
        //$mail->addReplyTo(&#39;***@qq.com&#39;,&#39;腾讯&#39;);
        //设置要将消息发送给谁
        $mail->addAddress($toAddress,&#39;***&#39;);
        //设置主题行
        $mail->Subject = $title;
        //从外部文件中读取HTML邮件正文,将引用的图像转换为嵌入式图像
        //将HTML转换为基本的纯文本替代正文
        //$mail->msgHTML(file_get_contents(&#39; contents.html &#39;),__DIR__);
        //用手动创建的纯文本正文替换
        $mail->AltBody  = &#39;This is the body in plain text for non-HTML mail clients&#39;;
        $mail->Body  = $content;
        $result = $mail->send();
        if (!$result) {
            return [&#39;result&#39; => false, &#39;msg&#39; => $mail->ErrorInfo];
        } else {
            return [&#39;result&#39; => true, &#39;msg&#39; => &#39;成功发送邮件消息&#39;] ;
        }
    }
}
.

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