邮件列表地址在收件人To:字段中可见

时间:2012-12-16 11:04:25

标签: email phpmailer email-headers mailing-list

我正在尝试为我的网站设置自定义邮件列表。

当用户(user@bar.com)将邮件发送到list@foo.com时。邮件应自动发送给订阅者。

实际发送并不难。但是当电子邮件发送完毕后,我会收到“此消息可能没有被......发送”警告。

这看起来不酷。

第一:

  1. 如何阻止此消息显示(最重要)
  2. 如何让接收者看到list@foo.com地址而不是他们自己的地址。 (像谷歌的邮件列表一样)
  3. 注意:接收方应该仍然能够在from字段中看到实际的发送方。

    我已经阅读了关于该主题的其他一些帖子,提到了不同标题的所有类型。但我似乎无法让它发挥作用。

    我正在使用PHPmailer,并且是我代码的一部分:

    <?php
        include(class.phpmailer.php);
        $real_to = "user@bar.com";
        $mail = new PHPMailer();
        $mail->IsMail();
        $mail->AddReplyTo($_POST['from_mail'], $_POST['from_name']);
        $mail->Host = "mail.foo.com";
        $mail->From = $_POST['from_mail'];
        $mail->Sender = "list@foo.com";
        $mail->MessageID = $_POST['msgID'];
        $mail->FromName = $_POST['from_name'];
        $mail->AddAddress($listmail);
        $mail->Subject  = $_POST['subject'];
        $mail->ContentType  = $_POST['content_type'];
    
        $mail->addCustomHeader("X-BeenThere: " . $listmail);
        $mail->addCustomHeader("Precedence: list");
        $mail->addCustomHeader("Precedence: list");
        $mail->addCustomHeader("Envelope-To: " . "list@foo.com");
        //$mail->addCustomHeader("Received: " . $_POST['received']);
        $mail->Body = $_POST['body'];
        $mail->Send();
    ?>
    

2 个答案:

答案 0 :(得分:1)

我不太确定php代码需要什么,但这里有一些常规的邮件服务器提示。您的某些问题可能存在于标题信息或邮件服务器的配置中。

当我使用本地邮件服务器向邮件列表发送邮件时,我发现人们没有在某些域上收到邮件。当我浏览邮件服务器日志(hMailServer)时,我看到收件人的服务器拒绝了这些邮件。

问题原来是我的域在ISP的域设置中缺少反向ip查找注册

我认为这也可能是某些邮件收件人收到垃圾邮件通知和警告标记的消息来源(视情况而定)。

要考虑的另一点是您的标头中指定了返回路径地址 - 这与回复地址不同 - 它是使用的设置通过邮件服务器彼此交谈时。看看这个小troubleshooting guide

答案 1 :(得分:1)

我最终制作了一个更新邮件列表的cronjob,而不是将所有收件人添加为别名。 这解决了关于不是来自发送者的按摩的所有奇怪信息。我不知道这是不是一个好方法。但它的确有效。

我还添加了一个PTR记录。已安装DKIM支持并设置SPF记录。这解决了所有垃圾邮件标记

现在问题解决了。