我正在使用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
但是,我想为不同的实体(例如论坛,群组等)发送每日摘要(例如),因此我希望能够将发件人的姓名文本设置为“论坛ABC成员每日摘要”,甚至虽然发件人仍然是sysmailer@mydomain.com。我注意到linkedin正在做类似的事情 - 他们在不同的发件人名下发送不同的摘要,即使发件人总是group-digests@linkedin.com。
sysmailer@mydomain.com的默认名称是“System Mailer”。顺便说一句,我使用Google Apps作为我的邮件服务提供商。设置不同是不切实际的 用户帐户,因为用户可以创建自己的论坛等。
有没有一种方法可以动态(即通过代码)指定发件人名称,尽管使用相同的发件人电子邮件地址?
答案 0 :(得分: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 ...
}
您为每封邮件更改$ from_name。
希望它有所帮助!
答案 1 :(得分:2)
您也可以使用
$message = Swift_Message::newInstance()
->setFrom($email, $sender_name)
->setTo($to)
->setSubject($subject)
->setBody($content);