2013-12-12 42 views
0

我使用SMTP邮件功能得到这个错误在CakePHP中无法连接到SMTP服务器。在CakePHP中

的CakePHP代码:

... 
    try{ 
       $emailClass = new CakeEmail(); 
       $emailClass->config(array(
       'host' => 'ssl://'.$this->smtpHostName, 
       'port' => $this->smtpPort, 
       'username' => $this->smtpUserName, 
       'password' => $this->smtpPassword, 
       'transport' => 'Smtp' 
     )); 
      $emailClass->from(array($this->from => $this->fromName)); 
      $emailClass->to($user_email); 
      $emailClass->subject($subject); 
      $emailClass->emailFormat('html'); 
      $contents = $emailClass->send($message_text); 
      if (!empty($contents)) 
      return true;  
     } 
     catch (Exception $e){ 
       pr($e); 
     } 
... 

错误跟踪:

... 
    [_messageTemplate:protected] => 
    [message:protected] => Unable to connect to SMTP server. 
    [string:Exception:private] => 
    [code:protected] => 500 
    [file:protected] => /opt/lampp/htdocs/site/lib/Cake/Network/Email/SmtpTransport.php 
    [line:protected] => 96 
    [trace:Exception:private] => Array 
... 

验证了SMTP配置是正确的,因为我能使用phpmail发送邮件

... 
$headers = array ('From' => $from, 
    'To' => $to, 
    'Subject' => $subject); 
$smtp = Mail::factory('smtp', 
    array ('host' => $host, 
    'auth' => true, 
    'port' => 25, 
    'debug' => true, 
    'username' => $username, 
    'password' => $password)); 

$mail = $smtp->send($to, $headers, $body); 
... 

我不确定它是否与cakephp的配置有关,因为电子邮件代码正在另一台服务器上工作。

尝试:

fsockopen('ssl://hosthere', porthere); 

SSL问题?

+0

你能告诉我们实际的cakePHP代码吗? –

+0

粘贴调试结果($ emailClass); –

+0

再次更新我的问题上面:D –

回答

0

尝试加入超时后,希望它能解决这个问题!

... 
$headers = array ('From' => $from, 
    'To' => $to, 
    'Subject' => $subject); 
$smtp = Mail::factory('smtp', 
    array ('host' => $host, 
    'auth' => true, 
    'port' => 25, 
    'debug' => true, 
    **'timeout' => 30,** 
    'username' => $username, 
    'password' => $password)); 

$mail = $smtp->send($to, $headers, $body); 
... 
相关问题