Yii2使用swiftmailer配置多个邮件组件

时间:2016-05-13 14:11:56

标签: php yii2 swiftmailer

我想将来自不同电子邮件帐户的电子邮件发送给用户。
我如何配置多个$ mailer组件?
以下是我目前在main-local.php

中实施的内容
'mailer' => [

    'class' => 'yii\swiftmailer\Mailer',
    'useFileTransport'=>false,
    'transport' => [
        'class' => 'Swift_SmtpTransport',
        'host' => 'smtp.gmail.com',
        'username' => 'xxxxxxxxx',
        'password' => 'yyyyyyyyyy',
        'port' => '465',
        'encryption' => 'ssl',
    ]
],

2 个答案:

答案 0 :(得分:2)

你试过这个吗?

'mailer' => [

    'class' => 'yii\swiftmailer\Mailer',
    'useFileTransport'=>false,
    'transport' => [
        'class' => 'Swift_SmtpTransport',
        'host' => 'smtp.gmail.com',
        'username' => 'xxxxxxxxx',
        'password' => 'yyyyyyyyyy',
        'port' => '465',
        'encryption' => 'ssl',
    ]
],
'mailerb' => [

    'class' => 'yii\swiftmailer\Mailer',
    'useFileTransport'=>false,
    'transport' => [
        'class' => 'Swift_SmtpTransport',
        'host' => 'smtp.gmail.com',
        'username' => 'xxxxxxxxx',
        'password' => 'yyyyyyyyyy',
        'port' => '465',
        'encryption' => 'ssl',
    ]
],

访问:

Yii::$app->mailer->compose()

Yii::$app->mailerb->compose()

答案 1 :(得分:-2)

要使用Mailer,您应该像在main-local.php中那样在应用程序配置中对其进行配置

要发送电子邮件,您可以使用以下代码:

Yii::$app->mailer->compose('contact/html', ['contactForm' => $form])
->setFrom('from@domain.com')
->setTo($form->email)
->setSubject($form->subject)
->send();

位于:

->setFrom(array('mail1@gmail.com' => 'NAME','mail2@gmail.com' => 'NAME2'))

如果此消息来自多个人,您可以传递一组地址。除了电子邮件地址,您还可以使用以下格式指定发件人姓名:[email =>名]。

  

Gmail不允许覆盖FROM名称,除非您向自己拥有的gmail证明了已验证的电子邮件地址。选择其他电子邮件服务器或转到您的Gmail设置并将其更改为您可以从中接收电子邮件的另一个有效电子邮件地址。