0

我在这样的包装类中使用 Zend_mail 和 SMTP:

//$_config has all required and valid attributes to send a mail successfully.
$tmpconfig = Array('auth' => 'login',
                    'username' => $this->_config->MAIL_LOGIN,
                    'password' => $this->_config->MAIL_PASSWORT);

$this->_transport = new Zend_Mail_Transport_Smtp($this->_config->MAIL_SMTP,$tmpconfig);
$this->_mail = new Zend_Mail();
$this->_mail->setFrom($this->_config->MAIL_ADDRESS, $this->_config->MAIL_SENDER_NAME);
...

//$_data has already all required and valid fields and values...

$this->_mail->setBodyText($this->_data['maildata']['BodyText'],'UTF-8','UTF-8');
$this->_mail->setSubject($this->_data['maildata']['Subject']);
$this->_mail->addTo($this->_data['maildata']['RecipientEmail'], $this->_data['maildata']['RecipientName']);

$this->_mail->send($this->_transport);

场景 1:我将带有测试帐户的邮件发送到专有服务器,并从我的测试系统发送到测试邮件地址。将收到此邮件。

场景 2:我将带有另一个测试帐户的邮件发送到另一个专有服务器到相同的邮件地址,有两个测试系统。此邮件被视为鼠软件而被拒绝。我已经和服务器管理员谈过了,他说邮件生成不正确。没有有效的 EHLO 问候语:“远程主机在 HELO/EHLO 问候语中使用了我们的名字。”

我真的不知道它是 zend_mail 类还是测试系统中的问题。

第一个测试系统:PHP 版本 5.3.2-1ubuntu4.14,Apache/2.2.14 (Ubuntu)

第二个测试系统:PHP 版本 5.3.1,Apache/2.2.14 (Unix)(Mac OS X 上的 Apache)

4

1 回答 1

0

我认为您的第二个邮件服务器配置过于严格,或者您的配置方式可能有问题Zend_MailZend_Mail非常适合我,我正在使用它向多个 SMTP 服务器发送电子邮件,包括 Gmail 和流行的共享网络托管服务中的服务器。

如果您在端口 25 上发送,我相信许多邮件服务器更有可能将您的邮件视为垃圾邮件。您的第二个邮件服务器是否支持使用备用端口发送?典型的替代方案是 465 或 587。另外,您是否尝试过通过 SSL 或 TLS发送?这些也可能有助于说服服务器您的消息是合法的。

于 2012-08-18T14:13:10.977 回答