我以前一直使用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请输受权码,发个短信就能生成
至此已经能够发送邮件了,附上两个邮箱互相发送成功的截图编码