2013-11-14 67 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 –