一:yiisoft/yii2-swiftmailer拓展安裝
composer require yiisoft/yii2-swiftmailer
github地址:https://github.com/yiisoft/yii2-swiftmailer
文檔地址:https://www.yiichina.com/doc/guide/2.0/tutorial-mailing
二:開啓郵箱IMAP/STMP服務
這裏以QQ郵箱為例:
1:賬號設置
登錄QQ郵箱後點擊首頁的設置按鈕
進入賬户設置
2:開啓IMAP/SMTP服務
開啓IMAP/SMTP服務
記錄開啓服務器的授權碼
QQ郵件開啓服務後相關説明
三:郵件發送功能實現
1:郵件發送基礎配置
在配置文件main.php 中的components參數下配置:
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => false,//false發送郵件,true只是在runtime文件夾下生成郵件文件,不發郵件
],
2:郵件發送常見方法
(1):發送郵件服務器配置
Yii::$app->mailer->transport = [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.qq.com',//發送郵件host,每種郵箱的host配置不一樣
'username' => 'xxx',//發送郵件賬號
'password' => 'XXX',//發送郵件授權碼
'port' => '465',//發送郵件端口
'encryption' => 'ssl',//加密方式
];
(2):設置發件人
Yii::$app->mailer->compose()->setFrom('XXX');
(3):設置收件人
Yii::$app->mailer->compose()->setTo('XXX');
(4):設置郵件主題
Yii::$app->mailer->compose()->setSubject('XXX');
(5):設置發送郵件內容
純文本內容
Yii::$app->mailer->compose()->setTextBody('XXX');
html內容
Yii::$app->mailer->compose()->setHtmlBody('<div>XXX</div>');
(6):設置發送附件
Yii::$app->mailer->compose()->attach('XXX.pdf');
(7):郵件發送
Yii::$app->mailer->compose()->send();
3:郵件發送實例
Yii::$app->mailer->transport = [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.qq.com',//發送郵件host,每種郵箱的host配置不一樣
'username' => 'xxx',//發送郵件賬號
'password' => 'XXX',//發送郵件授權碼
'port' => '465',//發送郵件端口
'encryption' => 'ssl',//加密方式
];
try {
$result = Yii::$app->mailer->compose()
->setFrom('XXX')//設置發件人
->setTo('XXX')//設置收件人
->setSubject('XXX')//設置主題
->setHtmlBody('<div>XXX</div>')//設置郵件內容
->attach('XXX.pdf')//設置郵件附件
->send();
} catch (\Swift_TransportException $e) {
$result = false;
}