2013-11-14 64 views
1

我想根據應用程序的上下文使用不同的smtp帳戶發送電子郵件。所以我找到了這個答案,但它只適用於更改用戶名和密碼。動態更改swiftmailer設置

Changing smtp settings in SwiftMailer dynamically

我需要動態改變主機爲好。

任何想法將不勝感激。

+0

用新設置實例化一個不同的swiftmailer對象。在某些時候,您必須對設置對象進行如此多的更改,以便更輕鬆地攜帶對象的多個版本。 –

回答

5

相同的方式,設置用戶名和密碼,你可以設置主機,端口和加密:

$transport = $fromYourMailerVariable->getTransport(); 
$transport 
    ->setUserName(...) 
    ->setPassword(...) 
    ->setHost(...) 
    ->setPort(...) 
    ->setEncryption(...); 

或者只是創建不同的郵件程序(使用不同的傳輸):

$transport1 = Swift_SmtpTransport::newInstance('localhost'); 

$transport2 = Swift_SmtpTransport::newInstance('smtp.domain.com', 666) 
       ->setUsername('user') 
       ->setPassword('pass'); 

$transport3 = Swift_SendmailTransport::newInstance('/usr/sbin/exim -bs'); 

$transport4 = Swift_MailTransport::newInstance(); 
+0

但我總是得到「致命錯誤:調用未定義的方法Swift_Transport_Esmtp_AuthHandler :: setHost()」。 –

+1

我不知道你是如何創建或獲取運輸,但這裏是工作示例> http://pastebin.com/fsVEkgZK –