【问题标题】:Required Mail Headers必需的邮件标头
【发布时间】:2010-10-11 05:16:44
【问题描述】:

我有一个网站,我会在其中发送一封确认邮件作为注册过程的一部分。

前段时间,由于没有使用headers(PHP邮件功能),发送的邮件有些问题。

添加一些标头后,我收到了更多用户的回复,但我怀疑并非每条消息都到达其目的地。

我如何确定邮件到达目的地?

哪些标题可以被视为“必须”?

这是我的 SendMail 函数的代码

mail($to,
    $subject,
        $message,
            "MIME-Version: 1.0\n".
            "Content-type: text/plain; charset=ISO-8859-1; format=flowder\n".
            "Content-Transfer-Encoding: 8bit\n".
            "Message-Id: <" . md5(uniqid(microtime())) . "@mysite.com>\n".
            "Return-Path: <admin@mysite.com>\n".
            "X-Mailer: PHP v".phpversion()."\n".
            "From: admin@ mysite.com");

【问题讨论】:

    标签: php email


    【解决方案1】:

    您应该使用外部库来处理 php 中的电子邮件,例如 PhpMailerSwiftMailerZend_Mail。你所有的问题都会迎刃而解。

    【讨论】:

      【解决方案2】:

      标题需要在底部有一个空格来将标题与主体分开。 像 Spam Assassin 这样的工具会让你大打折扣。

      您还应该使用\r\n 作为行终止符,而不仅仅是\n

      From PHP.net

      应使用 CRLF (\r\n) 分隔多个额外的标头。

      【讨论】:

        【解决方案3】:

        标题对我来说似乎相当不错。我看到的唯一故障是 From 标头中有一个额外的空格。

        我确定你已经检查过了,但以防万一......

        "From: admin@ mysite.com");
          should be (?)
        "From: admin@mysite.com");
        

        【讨论】:

          【解决方案4】:

          这是我用于 html 邮件的有效邮件功能,变量 $return 被定义为在发送失败的情况下从邮件服务器获取错误报告。

          $headers = "MIME-Version: 1.0" . "\r\n";
          $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
          $headers .= 'From: <'.$from.'>' . "\r\n";
          $return = '-f'.$from;
          
          @mail($to, $subject, $msg, $headers, $return);
          

          您可以在这里查看更多详细信息sugunan.com

          【讨论】:

            【解决方案5】:

            标题看起来不错,除了@Eineki 指出的细节。此外,如果您使用的是 Windows,则需要以“user@mail.com”而不是“用户名”的形式发送 $to 参数,因为它可能会导致麻烦,因为 mail() 函数在 Windows 平台上实现的方式,“to”地址可能解析不正确。

            【讨论】:

              【解决方案6】:

              您应该添加一个Date: 标头(RFC5322 是强制性的),如果没有给出,一些邮件客户端可能会假定 1970 年 1 月 1 日作为电子邮件日期(并且它会在所有其他旧邮件之间丢失)。

              【讨论】:

                猜你喜欢
                • 2021-09-18
                • 2020-03-18
                • 2018-02-03
                • 2012-06-18
                • 1970-01-01
                • 2019-09-03
                • 1970-01-01
                • 2012-05-10
                • 1970-01-01
                相关资源
                最近更新 更多