我在包装类中使用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:我将带有测试帐户的邮件发送到专有服务器,从我的测试系统发送测试mailaddress。这封邮件将被收到。
场景2:我将带有另一个测试帐户的Mail发送到另一个专有服务器到同一个mailaddress,带有两个测试系统。此邮件被拒绝作为ratware。我已经和服务器管理员谈过,他说邮件生成不正确。没有有效的EHLO问候语:“远程主机在HELO / EHLO问候语中使用了我们的名字。”
我真的不知道它在zend_mail类或测试系统中是否存在问题。
1st Testsystem:PHP Version 5.3.2-1ubuntu4.14,Apache / 2.2.14(Ubuntu)
2nd Testsystem:PHP Version 5.3.1,Apache / 2.2.14(Unix)(Mac OS X上的Apache)
答案 0 :(得分:0)
我认为您的第二个邮件服务器配置过于严格,或者可能是您配置Zend_Mail
的方式有问题。 Zend_Mail
对我很有用,我正在使用它向多个SMTP服务器发送电子邮件,包括Gmail上的电子邮件以及热门的共享网络托管服务。
如果您使用端口25发送邮件,我相信很多邮件服务器更有可能将您的邮件视为垃圾邮件。您的第二个邮件服务器是否支持使用备用端口发送典型的替代品是465或587.此外,您是否尝试过发送via SSL or TLS?这些也可能有助于说服服务器您的邮件是合法的。