Zend_Mail 发送邮件失败,输出消息:连接超时

Posted

技术标签:

【中文标题】Zend_Mail 发送邮件失败,输出消息:连接超时【英文标题】:Zend_Mail fail to send email, output message : Connection timeout 【发布时间】:2011-01-24 01:28:54 【问题描述】:

我尝试编写有关使用 Zend Framework 发送电子邮件的代码。这是代码,

$mail = new Zend_Mail('utf-8');
$mailConfig = array(
'auth'=> 'login',
'username'  => 'sample@gmail.com',
'password'  => 'samplepassword',
'ssl'       => 'tls',
'port'      => '587';

$tr = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $mailConfig);
Zend_Mail::setDefaultTransport($tr);

$mail->setSubject('test email');
$mail->setBodyText('body');

$mail->setFrom('sample@gmail.com', 'Just a sample');

$mail->addTo('anothersample@gmail.com', 'Another sample');

$mail->send();

这些代码在我的本地计算机上运行良好,但无法在服务器端发送电子邮件并返回消息“连接超时”。我猜服务器端可能存在一些配置问题,但我不知道它是什么。有人知道出了什么问题吗?

【问题讨论】:

所以代码没有问题? 【参考方案1】:

联系服务器管理员,询问他们是否允许在端口 587 上进行传出通信。 他们似乎正在阻止某些流量。

【讨论】:

我已经联系了管理员。端口号 587 未被阻塞。还有其他建议吗? 如果不是端口,询问他们是否没有以任何方式阻止来自 php 的电子邮件。错误消息到底说了什么?你在安全模式下运行吗?尝试将其关闭。【参考方案2】:

尝试'ssl'='ssl' 和端口 995。

【讨论】:

以上是关于Zend_Mail 发送邮件失败,输出消息:连接超时的主要内容,如果未能解决你的问题,请参考以下文章

使用 Zend_Mail 获取邮件源

Zend_Mail 发送的电子邮件被视为垃圾邮件

使用 Zend_Mail 时如何验证邮件是不是已发送?

通过 Gmail smtp 服务器使用 Zend_Mail 发送邮件

使用 Zend_mail 时,我的电子邮件似乎被视为垃圾邮件,通过 Outlook 发送而没有?

使用 Zend_Mail 通过 Exchange Server 发送 SMTP 电子邮件 - 如何诊断这些错误