如何使用Swift_Message更改发送邮件时发件人的名称文本?

10

我正在使用SwiftMailer从我的应用程序中发送电子邮件。

目前一切工作都很正常。现在,我需要能够动态更改发件人的文本。下面的代码片段和下一个段落应该能够说明我的意思。

当前,我的代码看起来像这样:

try{
   $message = Swift_Message::newInstance()
               ->setFrom($from)
               ->setTo($to)
               ->setSubject($subject)
               ->setBody($content);

   $mailer->send($message);
}catch (Exception $e) {
   // do something ...
}

$from变量包含发件人的电子邮件地址 - 该地址为sysmail@mydomain.com。

但是,我想发送每日摘要(例如)的不同实体(例如论坛、组等),因此我希望能够设置发件人名称文本为“Forum ABC成员每日摘要”,即使发件人仍然是sysmailer@mydomain.com。 我注意到LinkedIn正在做类似的事情-他们会使用不同的发件人名称发送不同的摘要,即使发件人始终是group-digests@linkedin.com。

sysmailer@mydomain.com的默认名称为“System Mailer”。顺便说一下,我正在使用Google Apps作为我的邮件服务提供商。对我来说,设置不同的用户帐户并不实际,因为用户可以创建自己的论坛等。

是否有办法通过代码动态指定发件人名称,而仍使用相同的发件人电子邮件地址?

2个回答

29

你只需要将$from作为一个数组传递即可。

$from = array($from_email => $from_name);

try{
   $message = Swift_Message::newInstance()
               ->setFrom($from)
               ->setTo($to)
               ->setSubject($subject)
               ->setBody($content);

   $mailer->send($message);
}catch (Exception $e) {
   // do something ...
}

你需要为每个邮件发送器更改$from_name。

希望能对你有所帮助!


你能告诉我这个文档的哪一部分包含了这个内容吗?如果这个方法有效,我将永远感激你 :p! - oompahloompah
请查看http://swiftmailer.org/docs/sending.html中的第一个代码片段。如果有帮助,请点赞并接受答案,无需感激。 :) - Sukumar

2
您也可以使用
$message = Swift_Message::newInstance()
           ->setFrom($email, $sender_name)
           ->setTo($to)
           ->setSubject($subject)
           ->setBody($content);

能详细说明一下吗? - RamenChef

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接