1.準備工做php
1.開啓服務器端口 2.開啓php.ini中的配置 ;extension=php_sockets.dll ;extension=php_openssl.dll這兩行去掉分號 3.谷歌郵箱 4.服務器要能連接谷歌,有外網 5.谷歌郵箱要開啓imap訪問, 6.谷歌帳號要開啓低安全性應用登錄認證。開啓地址: https://myaccount.google.com/lesssecureapps
2.郵箱要開啓imap訪問git
在能訪問外網的環境中,登陸谷歌帳號,開啓服務
3.郵箱開啓低安全性應用登陸認證,訪問鏈接開啓github
4.在tp5拓展extend目錄放入PHPMailer拓展https://github.com/zhangyouwu/phpmailer.gitapi
5.控制器方法安全
<?php namespace app\api\controller; use think\Controller; use think\Db; use phpmailer\PHPMailer; class Test extends Controller { /** * 發送郵箱 * @param type $data 郵箱隊列數據 包含郵箱地址 內容 */ function sendMail() { $mail = new PHPMailer();//實例化 $mail->CharSet='UTF-8';//設置字符集 //var_dump($toarr);exit(); $mail->IsHTML(true);//是否使用HTML格式 //使用smtp鑑權方式發送郵件 $mail->isSMTP(); //smtp須要鑑權 這個必須是true $mail->SMTPAuth = true; /* // qq 郵箱的 smtp服務器地址,這裏固然也能夠寫其餘的 smtp服務器地址 $mail->Host = 'smtp.qq.com'; //smtp登陸的帳號 這裏填入字符串格式的qq號便可 $mail->Username = "6023xxx02@qq.com"; // 這個就是以前獲得的受權碼,一共16位 $mail->Password = "hilmigjuhqxibdif"; $mail->setFrom("6023xxx02@qq.com", "zzz"); // $to 爲收件人的郵箱地址,若是想一次性發送向多個郵箱地址,則只須要將下面這個方法屢次調用便可 $mail->addAddress("zhangyouwu1018@gmail.com"); */ $mail->Host = 'smtp.gmail.com'; $mail->Username = "zhangyouwu1018@gmail.com"; $mail->Password = "zyw6023xxx02"; $mail->setFrom("zhangyouwu1018@gmail.com", "測試"); $mail->addAddress("6023xxx02@qq.com"); // 該郵件的主題 $mail->Subject = "會議通知"; // 該郵件的正文內容 $mail->Body = "測試,今天下午3點開會"; $mail->SMTPSecure = 'ssl'; // 設置ssl鏈接smtp服務器的遠程服務器端口號 $mail->Port = 465; // 使用 send() 方法發送郵件 if(!$mail->send()) { //return "1"; return '發送失敗: ' . $mail->ErrorInfo; } else { return "0"; //return "發送成功"; } } }