2010-12-19 131 views
3

我剛開始學習如何使用SwiftMailer,我無法從本地主機發送簡單的測試消息。以下是我正在嘗試使用的代碼。PHP SwiftMailer Localhost測試設置

//Pass it as a parameter when you create the message 
$message = Swift_Message::newInstance(); 
$message->setSubject('My subject'); 
$message->setFrom(array('[email protected]' => 'No Reply')); 
$message->setTo(array('[email protected]' => 'My Name')); 

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 25); 
//Supposed to allow local domain sending to work from what I read 
$transport->setLocalDomain('[127.0.0.1]'); 

$mailer = Swift_Mailer::newInstance($transport); 
//Send the message 
$result = $mailer->send($message); 

這裏是我的錯誤消息的一部分,

Warning: fsockopen() [<a href='function.fsockopen'>function.fsockopen</a>]:php_network_getaddresses: getaddrinfo failed: Name or service not known in /path/Swift/Transport/StreamBuffer.php 

更新

我得到了它使用的是Gmail的工作。我改變了Swift_SmtpTransport線以下,

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')->setUsername('username')->setPassword('password'); 
+0

這條線也適用於我使用Gmail帳戶 – 2014-11-21 11:48:20

回答

6

localhost爲當前機器的別名(在這種情況下,機器PHP運行在)。如果你真的想與你本地主機發送郵件這樣說:

$transport = Swift_SmtpTransport::newInstance('localhost', 25); 

...但你還需要安裝和配置自己的郵件服務器。如果你不知道這是什麼,我建議你使用你的郵件提供商的SMTP服務器。

+0

好,所以我正在改變我的代碼使用Gmail的smtp ....你能告訴我如何設置通過SwiftMailer的SSL信息,以得到這個工作?我還需要在某處添加用戶名/密碼。 – Metropolis 2010-12-20 00:14:00

+0

很酷,我將ssl字符串添加到了構造函數中,它工作正常!謝謝您的幫助。 – Metropolis 2010-12-20 01:02:16

+1

我正在測試從本地主機,因爲我設置了一個webapp我寫和$運輸= Swift_MailTransport :: newInstance('localhost',25);得到它爲我工作 – kyle 2013-12-15 21:35:52