使用Zend_Mail时如何更改默认邮件发件人(别名/通过)?即删除Gmail中的“via”

时间:2013-03-05 00:52:49

标签: sendmail php zend-mail

使用以下代码使用Zend Mail发送电子邮件时:

    $to = array("email1@gmail.com","email2@hotmail.com","email3@yahoo.com");        
    $msg = file_get_contents("email.html");             
    $mail = new Zend_Mail ( "UTF-8" );
    $mail->setMessageId ( "MyMsg__" . md5 ( microtime () ) );
    $mail->addHeader ( "Content-Type", "text/html; charset=UTF-8" );
    $mail->setBodyHtml ( $msg  );
    $mail->setSubject ( "News Letter Test" );       
    $mail->setReplyTo('newsletter@mydomain.com', 'Some Name');
    $mail->addHeader('MIME-Version', '1.0');
    $mail->addHeader('Content-Transfer-Encoding', '8bit');
    $mail->addHeader('X-Mailer:', 'PHP/'.phpversion());
    $mail->setFrom ('newsletter@mydomain.com', 'Some Name');
    foreach($to as $ml){
        $mail->addTo ( $ml );       
    }
    $mail->send ( $transport );

我在gmail中得到了这个:

newsletter@mydomain.com来自u4552323.onlinehome-server.com

如何删除此部分:通过u4552323.onlinehome-server.com

注意我有完全root访问权限,这是一个专用服务器,如果问题出在send_mail配置或主机上,我该如何更改此部分 u4552323.onlinehome-server.com

1 个答案:

答案 0 :(得分:0)

Google在when messages are sent through another domain中显示Gmail中的“通过”信息。在您的情况下,邮件来自mydomain.com域中的地址,但邮件服务器位于onlinehome-server.com域中。

您可以通过mydomain.com域的SMTP服务器发送邮件来避免这种情况(假设您的托管服务提供商不阻止此类流量)。如果可以控制onlinehome-server.com服务器的DNS和邮件服务器配置,您还可以配置SPF和DKIM,如Google的文档中所述(但根据您的托管环境,这可能不是一个选项)。