无法使用 gmail SMTP 在 Zend 中发送电子邮件。出现致命错误:未捕获的异常“Zend_Mail_Protocol_Exception”。如何解决这个问题?
Posted
技术标签:
【中文标题】无法使用 gmail SMTP 在 Zend 中发送电子邮件。出现致命错误:未捕获的异常“Zend_Mail_Protocol_Exception”。如何解决这个问题?【英文标题】:Unable to send email in Zend using gmail SMTP. Getting Fatal error: Uncaught exception 'Zend_Mail_Protocol_Exception'. How to fix this? 【发布时间】:2013-07-21 01:55:28 【问题描述】:我正在尝试使用 Gmail SMTP 发送电子邮件。以下是我的代码。
$mail = new Zend_Mail();
$config = array(
'ssl' => 'ssl',
'port' => '465',
'auth' => 'login',
'username' => 'username@gmail.com',
'password' => 'mypassword'
);
$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
$sendNow = $mail->setBodyhtml($message)
->setFrom('username@gmail.com', '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
【问题讨论】:
您的 ssl 扩展是否启用? 【参考方案1】:您的 Gmail 配置与我的不同。这是我使用的:
$config = array(
'host' => 'smtp.gmail.com',
'port' => 587,
'ssl' => 'tls',
'auth' => 'login',
'username' => '*****',
'password' => '*****',
);
注意“ssl”和“端口”的区别。
【讨论】:
【参考方案2】:这是我的zend邮件代码.....
$config = array('ssl' => 'tls',
'auth' => 'login',
'username' => 'your@gmail.com',
'password' => 'password');
$transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
$mail = new Zend_Mail();
$mail->setBodyHtml($bodytext);
$mail->setFrom('your@gmail.com');
$mail->addTo($email, $username);
$mail->setSubject('Profile Activation');
$mail->send($transport);
它现在工作正常......
【讨论】:
以上是关于无法使用 gmail SMTP 在 Zend 中发送电子邮件。出现致命错误:未捕获的异常“Zend_Mail_Protocol_Exception”。如何解决这个问题?的主要内容,如果未能解决你的问题,请参考以下文章
通过 Gmail smtp 服务器使用 Zend_Mail 发送邮件