做了好几次发送邮件的功能了,都没有总结,今天总结一下吧,有什么不对的地方,可以留言,共同探讨
1.这次做的是网易的企业邮箱,网易的企业邮箱和别的邮箱还不一样,客户端设置特别简单,没有任何说明,找了老半天smtp的开启,就是没有,只有POP和IMAP两个,结果人家自动开启,根本不需要开启,最后设置客户端授权码,完成之后复制,保存好,页面关闭以后是不会再显示的
2.至于地址,网易有一个专门查看服务器地址的连接,如下,https://qiye.163.com/help/client-profile.html
3.然后,输入自己的公司申请的域名,查看邮件服务器地址,如下图: 然后复制发送邮件的服务器SMTP的地址写在配置文件里面
4.PHPMailer 可以用composer下载,下载完以后,直接引用
打开终端命令框进入项目的根目录,输入
composer下载的命令:composer require phpmailer/phpmailer
下载完成后会在项目的vender目录中,然后开始写方法代码
代码放在框架的公共方法common.php里面,方便调用
//发送邮件方法
use PHPMailer\PHPMailer\PHPMailer;
function sendEmail($email,$title,$content){
try{
$mail = new PHPMailer();
$mail->SMTPDebug = 2; //邮件调试模式 开发环境建议开启 生产环境注释掉即
可 默认关闭debug调试模式
$mail->isSMTP(); //设置邮件使用SMTP
$mail->Host = 'smtphz.qiye.163.com'; // 设置邮件程序以使用SMTP
$mail->CharSet='UTF-8'; // 设置邮件内容的编码
$mail->SMTPAuth = true; // 启用SMTP验证
$mail->Username = '***@****.com'; // SMTP username 企业邮箱登录名
$mail->Password = '******'; // SMTP password 客户端授权码
$mail->SMTPSecure = 'ssl'; // 启用TLS加密,`ssl`也被接受
$mail->Port = 465; // 连接的TCP端口
$mail->setFrom('[email protected]','无疆酒店管理系统');//设置发件人
$mail->addAddress($email); // 添加收件人1
// $mail->addAddress('[email protected]'); // Name is optional
$mail->addReplyTo('[email protected]');//收件人回复的邮箱
// 抄送
// $mail->addCC('[email protected]');
// $mail->addBCC('[email protected]');
//附件
// $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
// $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$mail->isHTML(true); // 将电子邮件格式设置为HTML
$mail->Subject = $title; //设置邮件标题
$mail->Body = $content; // 设置邮件内容
// $mail->AltBody = '这是非HTML邮件客户端的纯文本';
$res = $mail->send();
if($res){
$res = [
'code' =>'1',
'msg' =>'Message has been sent'
];
return $res;
}
}catch (Exception $e){
$res = [
'code'=>'-1',
'msg'=>'Mailer Error: ' . $mail->ErrorInfo
];
return $res;
}