2012-07-02 2 views
0

매우 구체적인 서버 구성에서 Zend 프로젝트를 진행하고 있습니다. 우리의 프로덕션 환경은 두 개의 전용 서버로 구성되어 있습니다. postfix 서버 및 Apache2/Zend에서 실행되는 웹 응용 프로그램 용 다른 서버가 있습니다.Zend_Mail 오류 500> postfix/sendmail 치명적 : -n 옵션이 지원되지 않습니다.

이러한 서버에는 두 개의 서로 다른 IP가 있지만 동일한 웹 사이트 도메인에서 작동합니다. 내가 보낸 사람으로 메일 서버에서 이메일을 이메일로 보내려고 할 때

지금, 나는 Zend_Mail에서 오류 500를 얻고 email.err 로그는 저에게 말한다 :

후위/센드 메일 [15782을 ] : 치명적 : -n 옵션은

을 지원하지만 난이 지역 ADRESSE 또는 작동 송신자로 빈 이메일을 둘 때, 그래서 그것을하지 않기 때문에 내가 웹 서버의 접미사에 의해 쫓겨나 추측 그 지역의 이메일을 관리하십시오.

내 질문은 : 두 서버를 병합하지 않고 먼 서버에서 보낸 사람으로 도메인 전자 메일을 사용할 방법이 있습니까?

편집 : 추가하는 것을 잊었습니다 : 나는 원격 서버 SMTP를 사용할 수 없으며 로컬 센드 메일 만 사용할 수 있습니다.

답변

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 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; 
     } 
    } 
}