Zend_Mail грешка 500 › postfix/sendmail fatal: -n опцията не се поддържа

Работя върху проект на Zend в много специфична сървърна конфигурация, нашата производствена среда е направена от два специализирани сървъра, един за имейл на компанията, който хоства postfix сървър, и друг сървър за нашето уеб приложение, което работи на Apache2/ Зенд.

Тези сървъри имат два различни IP адреса, но работят на един и същ домейн на уебсайт.

Сега, когато се опитам да изпратя имейл с имейл от пощенския сървър като подател, получавам грешка 500 от Zend_Mail и регистрационният файл email.err ми казва:

postfix/sendmail[15782]: фатално: опцията -n не се поддържа

Но когато поставя местен адрес или празен имейл като подател, той работи, така че предполагам, че ще ме изгони постфиксът на уеб сървъра, защото той не управлява локално тези имейли.

Така че въпросът ми е: има ли някакъв начин да използвам имейл на домейн като подател от отдалечен сървър, без да обединявам двата сървъра?

Редактиране: забравих да добавя: не мога да използвам SMTP отдалечения сървър, мога да използвам само локален sendmail.


person DoesNotCompute    schedule 02.07.2012    source източник


Отговори (1)


Не намерих никакво решение или обяснения, така че в крайна сметка написах персонализиран помощник за действие, базиран на командата за поща на 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 protected]>\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 [email protected]")){
            return true;
        }
        else{
            //Oh! Noes!
            return false;
        }
    } 
}
person DoesNotCompute    schedule 27.09.2012