2010-02-14 128 views
0

我已經成功地使用CakePHP的電子郵件組件來發送我的電子郵件,但由於限制,我現在需要設置它使用smtp中繼服務器,我收到了一些奇怪的結果。CakePHP電子郵件組件smtp失敗

這裏是我的代碼:

$this->Email->to = $user['User']['username'].' <'.$user['User']['email'].'>'; 
$this->Email->subject = 'MyWebsite.com – Please confirm your email address'; 
    $this->Email->from = 'MyWebsite.com <[email protected]>'; 
    $this->Email->template = 'user_confirm'; 
    $this->Email->sendAs = 'html'; 
    $this->Email->smtpOptions = array(
     'timeout' => '30', 
     'port' => '25', 
     'host' => 'mail.myrelayserver.com', 
     'username' => 'USERNAME', 
     'password' => 'PASSWORD' 
    ); 
    $this->Email->delivery = 'smtp'; 
    if ($this->Email->send()) { 
     return true; 
    } else { 
     echo $this->Email->smtpError; 
    } 

現在,每當我嘗試發送該郵件,發送失敗,我從$以下輸出中這個 - >的電子郵件 - > smtpError:

14.2/Kp; Sun, 14 Feb 2010 19:11:07 GMT 

有什麼建議嗎?

回答

0

固定。

這個問題與我的smtp中繼服務器不接受來自我的雲服務器的連接有關。只要我將以下幾行添加到sendmail配置文件,電子郵件就開始了。

MASQUERADE_AS('mydomain.com')DNL FEATURE(masquerade_envelope)DNL

我希望這可以幫助別人:)

0

「14.2/Kp; Sun,2010年2月14日19:11:07 GMT」是sendmail的「問候」消息的一部分。 也許連接在授權之前被丟棄? 您是否嘗試使用netcat或telnet連接到您的中繼?

+0

我剛剛成功地通過telnet連接,並得到了充分的sendmail問候這個時間,所以看起來你是對的 – gomezuk