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

oom*_*pah 9 php email swiftmailer

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

到目前为止一切正常.我现在需要能够动态更改发件人的文本.下面的代码片段和下一段应该有希望澄清我的意思.

目前,我的代码如下所示:

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

   $mailer->send($message);
}catch (Exception $e) {
   // do something ...
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

有没有一种方法可以动态地(即通过代码)指定发件人名称,尽管使用相同的发件人电子邮件地址?

Suk*_*mar 27

你只需要将$作为数组传递.

$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 ...
}
Run Code Online (Sandbox Code Playgroud)

您为每个邮件程序更改$ from_name的位置.

希望能帮助到你!