今天开发的功能中,需要实现发送邮件通知提醒,而PHP端使用的是PHPMailer这个第三方库来实现的,发送者邮件使用的是网易的163邮箱,但是在调试的时候遇到了问题,那就是一直报没有权限。最后才明白原因,原来是这个163邮箱并没有开启有授权码,如果没有开启,则不能在第三方邮件客户端使用。
开启POP3服务如下图所示,登录到163邮箱,然后看到设置选项,点击它,就会弹出如下的页面,然后点击圈出来的菜单项:
然后进入到此页面,这里的截图是已经开启完成了的,开启完成前,是灰色的选项,点击的时候会弹出设置授权码,只有设置了授权码,才能开启。
设置授权码完成后,就真正地开启了POP3服务了,到此,邮件端处理完毕了。
实现PHPMailer发邮件functionsend_mail($to='',$name='',$subject='',$body='',$attachment=null)
{
$config=config('mail');
//dump($config);exit;
$url=vendor("phpmailer.phpmailer.PHPMailerAutoload");
$mail=newPHPMailer();
$mail->CharSet='UTF-8';
$mail->IsSMTP();
$mail->SMTPDebug=0;
$mail->SMTPAuth=true;
$mail->SMTPSecure='ssl';
//163邮箱是
$mail->Host=$config['smtp_host'];
//465端口
$mail->Port=$config['smtp_port'];
//上面所开通POP3服务的163邮箱账号
$mail->Username=$config['smtp_user'];
//上面所设置的授权码
$mail->Password=$config['smtp_password'];
$mail->SetFrom($config['from'],$config['from_name']);
$replyEmail=$config['from'];
$replyName=$config['from_name'];
$mail->AddReplyTo($replyEmail,$replyName);
$mail->Subject=$subject;
$mail->MsgHTML($body);
$mail->AddAddress($to,$name);
//抄送
if($config['chaoxong_email']){
$mail->addCC($config['chaoxong_email']);
}
//添加附件
if(is_array($attachment)){
foreach($attachmentas$file){
is_file($file)&&$mail->AddAttachment($file);
}
}
return$mail->Send()?true:$mail->ErrorInfo;
}
注意事项
填写smtp_password时一定要注意,如果是163邮箱,一定要填写授权码;如果是阿里企业邮箱,填写的是登录账号的密码。
关键词:
如果觉得《php发送163邮件554 PHPMailer配置163邮箱发送邮件》对你有帮助,请点赞、收藏,并留下你的观点哦!