Question

I'm working on a Zend project in a very specific server configuration, our production environment is made of two dedicated servers, one for the company's email which host a postfix server and an other server for our web-application which is running on Apache2/Zend.

Those servers have two different IPs, but works on the same website domain.

Now when i try to send an email with an email from the mail server as a sender, i get an error 500 from Zend_Mail and the email.err log tells me :

postfix/sendmail[15782]: fatal: -n option not supported

But when i put a local adresse or a blank email as a sender it works, so i guess i get kicked out by the postfix of the webserver because it doesn't manage localy those emails.

So my question is: is there any way to use a domain email as sender from a distant server without merging the two servers?

Edit: i forgot to add: i can't use the distant server SMTP, i only can use a local sendmail.

Was it helpful?

Solution

I haven't find any solution or explanations so i ended up by writing a custom action helper based on the mail command of PHP.

I hope it can help someone:

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;
        }
    } 
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top