1.下載PHPMailer代碼包
PHPMailer項目地址:https://github.com/PHPMailer/PHPMailer
使用git clone命令克隆到本地,或直接點擊 Download ZIP 獲取到完整的PHPMailer代碼包。
2.將下載的PHPMailer的包解壓後部署到項目中
這裏主要是src這個文件中的PHPMailer.php和SMTP.php這兩個文件
3.準備好要發送和接收的郵箱(QQ郵箱或163郵箱)
進入QQ郵箱,點擊頁面左上方“設置”,再點擊“郵箱設置”下的“賬戶”選項卡,拖動滾動條,即可看到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務,將所有服務都進行開啓,然後點擊下面的生成授權碼按鈕,按照提示生成授權碼,記錄授權碼(後面要用到)。(163郵箱也是類似這樣的操作)
4.擴展準備
PHPMailer需PHP的socket擴展支持,而PHPMailer鏈接qq域名郵箱時需要ssl加密方式(qq郵箱做了限制,只允許ssl的465或587端口,所以php還得openssl的支持,可以查看phpinfo,或者在Linux窗口用php -m 查看
5.開啓465端口
這裏可以登錄服務器,查看安全組是否開啓465端口,如果沒有記得開啓一下
6.引入資源文件
主要是引用PHPMailer.php和SMTP.php這兩個文件
7.封裝發送郵件的函數
//發送郵件
public function sentMsg($content,$server_name,$username){
$mail = new \PHPMailer();
$mail->isSMTP();
// smtp需要鑑權 這個必須是true
$mail->SMTPAuth = true;
// 鏈接qq域名郵箱的服務器地址
$mail->Host = 'smtp.qq.com';//smtp.163.com(163郵箱)
// 設置使用ssl加密方式登錄鑑權
$mail->SMTPSecure = 'ssl';
// 設置ssl連接smtp服務器的遠程服務器端口號
$mail->Port = 465;
// 設置發送的郵件的編碼
$mail->CharSet = 'UTF-8';
// 設置發件人暱稱 顯示在收件人郵件的發件人郵箱地址前的發件人姓名
$mail->FromName = '郵件服務';
// smtp登錄的賬號
$mail->Username = '[email protected]';//[email protected](163郵箱)
// smtp登錄的密碼 使用生成的授權碼
$mail->Password = 'xxxxxxx';//(163郵箱同樣也要授權碼)
// 設置發件人郵箱地址 同登錄賬號
$mail->From = '[email protected]';//[email protected]
// 設置收件人郵箱地址
$mail->addAddress($username);//$username代表收件人郵箱地址
// 添加該郵件的主題
$mail->Subject = '服務器:'.$server_name.'出錯';
// 添加郵件正文
$mail->Body = $content;//定義郵箱正文內容
// 發送郵件
$mail->send();
$mail->smtpClose();
}
8.調用發送郵件接口
//測試調用接口
public function testSend(){
$content = '該服務器的數據庫連接出錯,請前往查看!';
$server_name = 'xx';
$username = '[email protected]';
$this->sentMsg($content,$server_name,$username);
}
9.郵箱發送成功實現效果如下