2013-07-22 5 views
3

Я пытаюсь отправить письмо с помощью gmail SMTP. Следующий мой код.Zend электронной почты с помощью gmail SMTP

$mail = new Zend_Mail(); 
$config = array(
      'ssl'  => 'ssl', 
      'port'  => '465', 
      'auth'  => 'login', 
      'username' => '[email protected]', 
      'password' => 'mypassword' 
     ); 

$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config); 
$sendNow = $mail->setBodyHtml($message) 
        ->setFrom('[email protected]', 'abc def') 
        ->addTo($recipient) 
        ->setSubject($subject) 
        ->send($transport); 

Но следующая погрешность возникает. Как это сделать?

Fatal error: Uncaught exception 'Zend_Mail_Protocol_Exception' with message 'Unable to find the socket transport 'ssl' - did you forget to enable it when you configured PHP?' in Implementation\trunk\webapp\library\Zend\Mail\Protocol\Abstract.php:277

+1

включен ваш SSL продление? –

ответ

2

Конфигурация для Gmail настроен по-разному к моей. Вот что я использую:

$config = array(
      'host' => 'smtp.gmail.com', 
      'port' => 587, 
      'ssl' => 'tls', 
      'auth' => 'login', 
      'username' => '*****', 
      'password' => '*****', 
     ); 

Обратите внимание на отличия в 'ssl' и 'port'.

7

Вот мой код для ZEND почты .....

$config = array('ssl' => 'tls', 
       'auth' => 'login', 
       'username' => '[email protected]', 
       'password' => 'password'); 

    $transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config); 

    $mail = new Zend_Mail(); 
    $mail->setBodyHtml($bodytext); 
    $mail->setFrom('[email protected]'); 
    $mail->addTo($email, $username); 
    $mail->setSubject('Profile Activation'); 
    $mail->send($transport); 

И это работает теперь правильно ...