TP使用PHPMAILER發送郵件
1.申請一個SMTP服務的郵箱。
我申請的是smtp.163.com的服務,注意SMTP服務密碼不是登陸密碼,需要單獨設置
2.下載phpmailer類庫文件http://pan.baidu.com/s/1kUNK9vx
3.將PHPMAILER類庫中的class.phpmailer.php和class.smtp.php文件取出來,並重新命名為符合tp5命名規范的Phpmailer.php和Smtp.php
4.在項目根目錄下的extend文件夾中,建立phpmailer文件夾,將上面兩個改名好的文件放入其中。
5.設置Smtp.php的命名空間為namespace phpmailer;並且將CLASS SMTP改為CLASS Smtp
6.設置Phpmailer.php的命名空間為
namespace phpmailer;
Use phpmailer\Smtp;
並且將CLASS SMTP改為CLASS Phpmaiiler;
這兩部很重要,如果使用原來的PHPMAILer和SMTP class名的話,TP5報錯 無法找到類文件
7.在application/extra 下建立email.php文件 將在服務商申請好的郵箱服務信息,放入其中
代碼如下
<?php
//發送郵件相關配置
return[
'EMAIL_SMTP'=>'smtp.163.com',
'EMAIL_ADDRESS'=>'zq_1xx8292xx23@163.com',
'EMAIL_LOGINNAME'=>'zq_1xx8292xx23@163.com',
'EMAIL_PASSWORD'=>'xxxx445864742',
'port'=>25
];
8.在phpmailer文件夾下建立新的類庫文件Email.php
代碼如下:
<?php
namespace phpmailer;
use phpmailer\Phpmailer;
//發送郵件類
class Email{
public static function send($address,$title,$message)
{
$Email = new Phpmailer();
//設置PHPMailer使用SMTP服務器發送email
$Email->IsSMTP();
//設置字符串編碼
$Email->CharSet = 'UTF-8';
//添加收件人地址,可以使用多次來添加多個收件人
$Email->AddAddress($address);
//設置郵件正文
$Email->Body = $message;
//設置郵件頭的FROM字段
$Email->From = config('email.EMAIL_ADDRESS');
//設置發件人名稱
$Email->FromName = '周起';
//設置郵件標題
$Email->Subject = $title;
//設置SMTP服務器
$Email->Host = config('email.EMAIL_SMTP');
//設置為驗證碼
$Email->SMTPAuth = true;
//設置用戶名密碼
$Email->Username = config('email.EMAIL_LOGINNAME');
$Email->Password = config('email.EMAIL_PASSWORD');
//發送郵件
return ($Email->Send());
}
}
9.在需要使用到郵件服務的地方調用
//發送驗證郵件 根據業務邏輯修改
$message = ‘hello’;
$title = '周起個人測試郵件';
$data['email'] = 445864742@qq.com
\phpmailer\Email::send($data['email'],$title,$message);