我在这样的包装类中使用 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)