当前位置: 首页 > 后端技术 > PHP

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

时间:2023-03-29 14:33:06 PHP

之前一直用163邮箱发送需要处理的文件,但是如果操作过于频繁【或者有其他问题】,就会发送失败。反倒是现在QQ好像已经没有类似情况了,但是QQ邮箱配置和163是一样的。diudiu不一样,我还是发一下吧,免得小伙伴们踩坑(建议大家使用qq邮箱,建议你使用qq邮箱,建议你使用qq邮箱)重要的事情说三遍!!!1.下载PHPMailer,推荐使用composer安装"require":{"phpmailer/phpmailer":"*"},2.使用PHPMailer,我这里创建一个类来使用,直接上传代码:使用PHPMailer\PHPMailer\Exception;使用PHPMailer\PHPMailer\PHPMailer;classSendEmail{publicfunction__construct($options){try{$mail=newPHPMailer();//新实例,启用异常$mail->CharSet='UTF-8';//这是设置中文的代码$body=$options['body'];//发送邮件内容$mail->IsSMTP();//告诉类使用SMTP$mail->SMTPAuth=true;//启用SMTP身份验证$mail->Port=$options['Port'];//设置SMTP服务器端口$mail->Host=$options['Host'];//网易的SMTP服务器是smtp.163。com这个,QQ邮箱是smtp.qq.com$mail->Username=$options['用户名'];//SMTP服务器用户名$mail->Password=$options['Password'];//SMTP服务器密码$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="要查看消息,请使用HTML兼容的电子邮件查看器!";//可选,注释掉并测试$mail->WordWrap=80;//设置自动换行$mail->AddAttachment($options['AddAttachment']);//可以添加附件$mail->MsgHTML($body);$邮件->发送();}catch(Exception$e){echo$e->errorMessage();}}}然后在控制器上调用这个类,继续代码:$options=['Port'=>25,//网易是25端口,没关系,qq还是可以用'Host'=>'smtp.qq.com',//网易是这个,QQ邮箱是smtp.qq。com'Username'=>'********@qq.com',//发送邮件的帐号'Password'=>'*********',//发送邮件的客户端授权accountCode'ReplyEmail'=>'********@163.com',//回复邮箱地址'ReplyEmailName'=>'*********',//回复邮箱地址replyemailAccount'From'=>'********@qq.com',//发送邮件的Email帐号地址'FromName'=>'*********',//Email发送邮件的账户地址Emailaccountname'to'=>'********@qq.com',//Emailaccountname'Subject'=>'*********',//title'body'=>'********','AddAttachment'=>dirname($_SERVER["DOCUMENT_ROOT"])。"/html/test.png"//这是添加附件的内容];$sendmial=newSendEmail($options);最后,几个问题。对于Username,网易可以直接使用邮箱名。QQ邮箱请输入邮箱前缀【用户名】『eg.1214982635@qq.com,请输入1214982635』密码网易可直接输入邮箱密码【有授权码请输入授权码】,授权请输入QQ验证码,发送短信生成。现在可以发邮件了,附上两封邮件互发成功的截图