2011-07-09 31 views
7

我使用SwiftMailer從我的應用程序發送電子郵件。如何在使用Swift_Message發送郵件時更改發件人的名稱文本?

到目前爲止,所有工作都很好。我現在需要能夠動態更改發件人的文本。下面的代碼段和下一段應該有希望澄清我的意思。

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

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

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

從變量$包含了發送者的電子郵件地址 - 這是[email protected]

不過,我想送每日摘要(例如)針對不同的實體(例如論壇,組等),所以我希望能夠將發件人的名稱文本設置爲「論壇ABC成員每日摘要」,即使發件人仍然是[email protected]。我注意到linkedin正在做類似的事情 - 即使發件人始終是[email protected],他們也會根據不同的發件人姓名發送不同的摘要。

[email protected]的默認名稱是'System Mailer'。順便說一句,我正在使用Google Apps作爲我的郵件服務提供商。我設置不同的 用戶帳戶是不實際的,因爲用戶可以創建自己的論壇等。

是否有一種方法可以動態地(即通過代碼)指定發件人名稱,儘管使用相同的發件人電子郵件地址?

回答

25

你只需要將$作爲一個數組傳遞。

$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。

希望它有幫助!

+0

你能指出我在這個來自文檔的一部分?如果這樣做 - 我會永遠在你的債務:p! – oompahloompah

+0

http://swiftmailer.org/docs/sending.html - 查看第一個代碼片段。你不必擔負我的債務。只要upvote和接受,如果它幫助你:) – Sukumar

+0

謝謝!無法贊成,但我接受了你的回答。 – oompahloompah

1

你也可以使用

$message = Swift_Message::newInstance() 
      ->setFrom($email, $sender_name) 
      ->setTo($to) 
      ->setSubject($subject) 
      ->setBody($content); 
+0

照顧細緻? – RamenChef

相關問題