Thinkphp如何發送郵件。
1、百度搜索 packagist (用來管理包的網站)
搜索phpmailer,點第二個進去
在phpstrom中使用composer下載,以下代碼(注意使用composer安裝之前,要記得換源 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ )
composer require phpmailer/phpmailer
2、安裝完成後,在thinphp包目錄下vendor/下會有一個phpmaier文件夾,表示下載成功。
3、接下來在tp框架的application\下的common.php中添加代碼,網站
可以直接複製這段簡單的案例
下面這段代碼是我測試郵件用的代碼。有備註了詳細註釋的
// 應用公共文件
use PHPMailer\PHPMailer\PHPMailer;//這個是發郵件的類,引入進來
use PHPMailer\PHPMailer\Exception;//這個是發郵件失敗了,報出異常
//這裏是公共函數,用來創建前後端公用的內容
//require 'vendor/autoload.php';//用於composer自動加載
//$mailto要發送給誰。這裏我給了4個字段,你可以自己定義,在model模型文件中直接調用email()這個函數即可
function email($mailto, $nickname, $subject, $content)
{
$mail = new PHPMailer(true); //實例化加載這個類,如果說郵件發送失敗了,可以拋出異常
//開發環境下,是需要打開異常拋出的,實際情況下可以false關閉
try {
$mail->SMTPDebug = 2; //這裏是調試模式,2的話表示詳細錯誤信息,1的話是簡要錯誤信息,0的話是不顯示錯誤信息。 啓用詳細的調試輸出
$mail->isSMTP(); // 設置郵件使用SMTP
$mail->Host = 'smtp.qq.com'; // 指定主和備份SMTP服務器
$mail->SMTPAuth = true; // 使SMTP認證
$mail->Username = '[email protected]'; // SMTP用戶名
$mail->Password = 'xxxx'; // SMTP 密碼,注意這裏不是你登錄的密碼。這個地方你要去136或者qq郵箱,去開通這個SMTP服務,他會提供一段密碼給你的,
$mail->SMTPSecure = 'ssl'; // 啓用TLS加密,也接受“ssl”
$mail->Port = 465; // 要連接的TCP端口
$mail->CharSet = 'utf-8'; //要發送的內容格式
//Recipients
$mail->setFrom('[email protected]', '來自馬雲'); //發郵件人
$mail->addAddress($mailto, $nickname); //收件人,可以設置好幾個
//$mail->addReplyTo('[email protected]','xxx'); //這裏是回覆人,就是說收件用戶,要回信是發給誰的,如果這裏不寫就默認上面的發件郵箱。
//$mail->addCC('[email protected]'); //這裏是抄送地址;
//Attachments
//$mail->addAttachment('var/tmp/file.tar.gz'); //發送的時候是否添加附件
//Content
$mail->isHTML(true); // 設置電子郵件格式爲HTML
$mail->Subject = $subject;
$mail->Body = $content;
// $mail->AltBody='發送錯誤'; //表示isHTML發送失敗,就發送這個內容。
return $mail->send(); //這裏是發送方法
}catch (Exception $e) {
exception($mail->ErrorInfo(), 1001);
}
}
4、最後測試,成功收到郵件