一: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;
}