我想根據應用程序的上下文使用不同的smtp帳戶發送電子郵件。所以我找到了這個答案,但它只適用於更改用戶名和密碼。動態更改swiftmailer設置
Changing smtp settings in SwiftMailer dynamically
我需要動態改變主機爲好。
任何想法將不勝感激。
我想根據應用程序的上下文使用不同的smtp帳戶發送電子郵件。所以我找到了這個答案,但它只適用於更改用戶名和密碼。動態更改swiftmailer設置
Changing smtp settings in SwiftMailer dynamically
我需要動態改變主機爲好。
任何想法將不勝感激。
相同的方式,設置用戶名和密碼,你可以設置主機,端口和加密:
$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();
但我總是得到「致命錯誤:調用未定義的方法Swift_Transport_Esmtp_AuthHandler :: setHost()」。 –
我不知道你是如何創建或獲取運輸,但這裏是工作示例> http://pastebin.com/fsVEkgZK –
用新設置實例化一個不同的swiftmailer對象。在某些時候,您必須對設置對象進行如此多的更改,以便更輕鬆地攜帶對象的多個版本。 –