Yii2使用SwiftMailer(作为组件)

把SwiftMailer添加到yii的组件中去(配置文件中的components)。然后就按照SwiftMailer各种方法就能使用了。

组件配置

部分配置内容如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
return [
    'components' => [
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'viewPath' => '@common/mail',
            'useFileTransport' => false,    //这里一定要改成false,不然邮件不会发送
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => $mailer_config['host'],
                'username' => 'user@domain.com',
                'password' => 'password',
                'port' => '25',
                // 'encryption' => 'tls',
            ],
            'messageConfig' => [
                'charset' => 'UTF-8',
                'from' => 'user@domain.com',
            ],
        ],
    ],
];

使用示例

1
2
3
4
5
6
7
8
$mail = Yii::$app->mailer->compose();
// 设置邮件参数
$mail->setTo('receiver@domain.com')
    // ->setFrom('user@domain.com', '发件人名称')
    ->setSubject('邮件主题')
    // ->setTextBody('纯文本')    // 发布纯文字文本
    ->setHtmlBody('<h1>Hello, World!</h1>');  //发布可以带html标签的文本
    ->send(); // 发送

参考文章