1、首先讓郵箱開啟smtp服務,本案例使用163的SMTP服務器: smtp.163.com發送郵件
2、下載phpmailer,在tp項目里的extends文件夾下新建一個文件夾phpmailer,把class.phpmailer.php和class.smtp.php放到里面,修改文件名為phpmailer.php和
SMTP.php\\注意這里是大寫的SMTP(因為在phpmailer.php中實例化SMTP類是大寫的,tp5中實例化類名要與文件名要一致),不然會報錯的,然后在兩個文件內頭部加入命名空間namespace phpmailer;
3、
在phpmailer.php中的2315行使用到了php的Exception異常類,在thinkphp框架中直接繼承,thinkphp找不到Exception所以要在
Exception前加上反斜杠 \;
4、在公共文件common.php中加入下面代碼
/* * 發送郵件 * @param $to string 要發送的郵箱地址 * @param $title string 郵件標題 * @param $content string 郵件內容 * @return bool * */ function sendMail($to, $title, $content) { $mail = new \phpmailer\phpmailer(); //實例化 $mail->IsSMTP(); // 啟用SMTP $mail->Host=config('MAIL_HOST'); //smtp服務器的名稱(這里以163郵箱為例) $mail->SMTPAuth = config('MAIL_SMTPAUTH'); //啟用smtp認證 $mail->Username = config('MAIL_USERNAME'); //發件人郵箱名 $mail->Password = config('MAIL_PASSWORD') ; //163郵箱發件人授權密碼 $mail->From = config('MAIL_FROM'); //發件人地址(也就是你的郵箱地址) $mail->FromName = config('MAIL_FROMNAME'); //發件人姓名 $mail->AddAddress($to,"尊敬的客戶"); $mail->WordWrap = 50; //設置每行字符長度 $mail->IsHTML(config('MAIL_ISHTML')); // 是否HTML格式郵件 $mail->CharSet=config('MAIL_CHARSET'); //設置郵件編碼 $mail->Subject =$title; //郵件主題 $mail->Body = $content; //郵件內容 $mail->AltBody = "郵件驗證,請用網頁打開"; //郵件正文不支持HTML的備用顯示 return($mail->Send()); }
//郵箱驗證配置 'MAIL_HOST' =>'smtp.163.com',//smtp服務器的名稱 'MAIL_SMTPAUTH' =>TRUE, //啟用smtp認證 'MAIL_USERNAME' =>'177****123@163.com',//發件人的郵箱名 'MAIL_PASSWORD' =>'*******',//163郵箱發件人授權密碼 'MAIL_FROM' =>'177****123@163.com',//發件人郵箱地址 'MAIL_FROMNAME'=>'美麗說商城',//發件人姓名 'MAIL_CHARSET' =>'utf-8',//設置郵件編碼 'MAIL_ISHTML' =>TRUE, // 是否HTML格式郵件
6、在需要使用的地方調用函數即可
sendMail('38****03@qq.com','郵件標題','郵件內容');