一: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邮箱后点击首页的设置按钮

1.png

进入账户设置

2.png

2:开启IMAP/SMTP服务

开启IMAP/SMTP服务

3.png

记录开启服务器的授权码

4.png

QQ邮件开启服务后相关说明

image.png

三:邮件发送功能实现

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

huaweichenai
673 声望114 粉丝