0

我正在一个非常特定的服务器配置中处理 Zend 项目,我们的生产环境由两台专用服务器组成,一台用于公司的电子邮件,它托管一个 postfix 服务器,另一台用于我们在 Apache2/ 上运行的 Web 应用程序的服务器禅。

这些服务器有两个不同的 IP,但在同一个网站域上工作。

现在,当我尝试使用来自邮件服务器的电子邮件作为发件人发送电子邮件时,我从 Zend_Mail 收到错误 500,并且 email.err 日志告诉我:

postfix/sendmail[15782]:致命:不支持-n选项

但是当我将本地地址或空白电子邮件作为发件人时,它可以工作,所以我想我会被网络服务器的后缀踢出去,因为它不管理本地这些电子邮件。

所以我的问题是:有没有办法在不合并两台服务器的情况下使用域电子邮件作为来自远程服务器的发件人?

编辑:我忘了补充:我不能使用远程服务器 SMTP,我只能使用本地发送邮件。

4

1 回答 1

0

我没有找到任何解决方案或解释,所以我最终编写了一个基于 PHP 邮件命令的自定义操作帮助程序。

我希望它可以帮助某人:

class Zend_Controller_Action_SentEmail extends Zend_Controller_Action_Helper_Abstract{

    public function sendEmail($from, array $to, $subject, $message){

        //Header set
        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
        $headers .= "From: ".$from."<email@domain.com>\r\n";
        $headers .= "X-Mailer: PHP/".phpversion();


        //To
        $stringTo = "";

        foreach($to as $k => $v) {
                $stringTo .= $k." <".$v.">, ";
        }

        $stringTo = trim($stringTo, ", ");


        //Send the email
        if(mail($stringTo, $subject, $message, $headers, "-f bounce@domain.com")){
            return true;
        }
        else{
            //Oh! Noes!
            return false;
        }
    } 
}
于 2012-09-27T12:44:42.873 回答