做了好幾次發送郵件的功能了,都沒有總結,今天總結一下吧,有什麼不對的地方,可以留言,共同探討
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;
}