tp3.2使用QQ邮箱或163邮箱经过PHPMailer发送邮件

我以前一直使用163邮箱发送须要处理的文件,可是若是操做过于频繁【或者有别的问题】,会致使发送失败,相反如今用QQ的貌似还没出现过相似状况,不过QQ邮箱配置和163有一丢丢不同,我仍是贴一下,怕朋友们踩到坑(建议你们用qq邮箱,建议你们用qq邮箱,建议你们用qq邮箱)重要的事情说三遍!!!php


1.下载PHPMailer,我这里推荐你们使用composer安装html

"require": {
    "phpmailer/phpmailer":"*"
  },

2.使用PHPMailer,我这里先建立一个类去使用,直接上代码:composer

use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\PHPMailer;

class SendEmail
{
    public function __construct($options)
    {
        try {
            $mail = new PHPMailer(); //New instance, with exceptions enabled
            $mail->CharSet='UTF-8'; //这是设置中文的编码
            $body = $options['body'];  //发送的消息内容

            $mail->IsSMTP();                           // tell the class to use SMTP
            $mail->SMTPAuth = true;                  // enable SMTP authentication
            $mail->Port = $options['Port'];                    // set the SMTP server port
            $mail->Host = $options['Host']; // SMTP server 网易是smtp.163.com这个,QQ邮箱是smtp.qq.com
            $mail->Username = $options['Username'];     // SMTP server username
            $mail->Password = $options['Password'];            // SMTP server password


            $mail->AddReplyTo($options['ReplyEmail'], $options['ReplyEmailName']); //回复地址

            $mail->From = $options['From'];  //发送方的邮箱地址
            $mail->FromName = $options['FromName'];    //发送方的邮箱名

            $to = $options['to'];  //接收方的邮件地址

            $mail->AddAddress($to);

            $mail->Subject = $options['Subject'];

            $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
            $mail->WordWrap = 80; // set word wrap
            $mail->AddAttachment($options['AddAttachment']); //能够添加附件

            $mail->MsgHTML($body);
            $mail->Send();
        } catch (Exception $e) {
            echo $e->errorMessage();
        }
    }
}

而后就在一个控制器上调用这个类就能够了,继续上代码:ui

$options = [
            'Port' => 25,  //网易是25端口,其实也不重要,qq照样能用
            'Host' => 'smtp.qq.com',//网易是这个,QQ邮箱是smtp.qq.com
            'Username' => '********@qq.com', //发送邮件的账号
            'Password' => '********',   //发送邮件账号的客户端受权码
            'ReplyEmail' => '********@163.com',  //回复邮件的邮箱地址
            'ReplyEmailName' => '********',  //回复邮件的邮箱账号
            'From' => '********@qq.com',  //发送邮件的邮箱账号地址
            'FromName' => '********',  //发送邮件的邮箱账号名称
            'to' => '********@qq.com',  //发送邮件的邮箱账号名称
            'Subject' => '********',//标题
            'body' => '********',
            'AddAttachment' => dirname($_SERVER["DOCUMENT_ROOT"]) . "/html/test.png" //这是添加附件的东西
        ];
        $sendmial = new SendEmail($options);

最后说几个问题,Username的话,网易直接使用邮箱名便可,QQ邮箱请输入邮箱前缀【用户名】『eg.1214982635@qq.com
请输入1214982635』 Password网易直接输入邮箱密码便可【有受权码输受权码】,QQ请输受权码,发个短信就能生成
至此已经能够发送邮件了,附上两个邮箱互相发送成功的截图编码

相关文章
相关标签/搜索