【问题标题】:Swift Mailer: Multi recipients option doesn't workSwift Mailer:多收件人选项不起作用
【发布时间】:2013-03-26 13:17:44
【问题描述】:

尽管有许多相同的问题,但没有一个解决方案对我有用。只有只有一个收件人才会发送邮件,否则会在下面生成错误。另外我只发内部邮件,不发外部邮件。

有什么想法吗?

代码:

$to = 'one@example.com, two@example.com, three@example.com';

$transport  = Swift_SmtpTransport::newInstance('192.168.whatever', 25);
$mailer     = Swift_Mailer::newInstance($transport);
$message    = Swift_Message::newInstance('Test')
                ->setFrom(array('myself@example.com'))
                ->setTo(array($to))
                ->setBody('html content goes here', 'text/html');

$result = $mailer->send($message);

echo $result;

错误

Fatal error: Uncaught exception 'Swift_RfcComplianceException' with message 'Address in mailbox given [one@example.com, two@example.com, three@example.com] does not comply with RFC 2822, 3.6.2.' in C:\wamp\www\ssl\swift_emailer\lib\classes\Swift\Mime\Headers\MailboxHeader.php:308 Stack trace: #0 C:\wamp\www\ssl\swift_emailer\lib\classes\Swift\Mime\Headers\MailboxHeader.php(238): Swift_Mime_Headers_MailboxHeader->_assertValidAddress('lukas.borecki@l...') #1 C:\wamp\www\ssl\swift_emailer\lib\classes\Swift\Mime\Headers\MailboxHeader.php(96): Swift_Mime_Headers_MailboxHeader->normalizeMailboxes(Array) #2 C:\wamp\www\ssl\swift_emailer\lib\classes\Swift\Mime\Headers\MailboxHeader.php(60): Swift_Mime_Headers_MailboxHeader->setNameAddresses(Array) #3 C:\wamp\www\ssl\swift_emailer\lib\classes\Swift\Mime\SimpleHeaderFactory.php(60): Swift_Mime_Headers_MailboxHeader->setFieldBodyModel(Array) #4 C:\wamp\www\ssl\swift_emailer\lib\classes\Swift\Mime\SimpleHeaderSet.php(75): Swift_Mime_SimpleHead in C:\wamp\www\ssl\swift_emailer\lib\classes\Swift\Mime\Headers\MailboxHeader.php on line 308

查看:

Swift website swift mailer error 'Swift_RfcComplianceException'.... Google forum 还有更多。

【问题讨论】:

    标签: php email swiftmailer


    【解决方案1】:

    试试

    $to = array('one@example.com', 'two@example.com', 'three@example.com');
    ....
    ->setTo($to)
    

    【讨论】:

    • 这是来自 swift 网站的示例:$message = Swift_Message::newInstance('Wonderful Subject') ->setFrom(array('john@doe.com' => 'John Doe')) ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name')) ->setBody('Here is the message itself') 测试它。有用吗?
    • 试试$to = array('one@example.com', 'two@example.com, 'three@example.com');
    • 如果多个收件人具有相同的电子邮件 ID 和不同的名称怎么办。我知道这是个例外情况,但你有什么解决办法吗?
    【解决方案2】:

    用 swiftmailer 试试这个例子:

    parameters.yml

    destinatarios: [email1, email2, email3]

    服务:

    您的服务名称: 类:你的命名空间 参数:["%destinatarios%"]

    服务的类别:

    受保护的 $destinatarios;

    public function __construct($destinatarios)
    {
        $this->destinatarios = $destinatarios;
    }
    
    ->setCc($this->destinatarios)
    

    【讨论】:

      猜你喜欢
      • 2020-04-27
      • 1970-01-01
      • 2014-09-05
      • 2015-04-27
      • 2013-03-03
      • 1970-01-01
      • 2011-06-07
      • 1970-01-01
      • 2012-05-15
      相关资源
      最近更新 更多