【问题标题】:Lotus Notes is not handling my email properlyLotus Notes 未正确处理我的电子邮件
【发布时间】:2011-08-02 00:14:37
【问题描述】:

我有一个向用户发送电子邮件的 php 应用程序。对于大多数用户来说,这很好。

但是,使用 Lotus Notes 作为其电子邮件客户端的用户收到的电子邮件似乎以我添加到邮件中的某些标头开头。

我尝试更改行尾,但无济于事。

这是发送电子邮件的代码。 (在一个循环中 - $row 来自数据库)。

    $to = $row['email'];
    $subject = $language['summary'];
    $headers = "From: $from\n".
        "Reply-To: $from"."\n" ;
    if (!mail($to, $subject, $body,$headers,"-f$from")) {
        echo("<p>Message delivery failed to $to</p>");
    }

Lotus Notes 将 X-Mailer:PHP/5.3.2-1ubuntu4.7 视为内容的第一行!

有谁知道为什么,以及如何更改电子邮件以正常工作?

编辑 - 8 月 1 日 - 尝试将 \r\n 和 PHP_EOL 作为行尾。没有任何东西适用于笔记。 Everythgin 可与所有其他经过测试的 MTA 一起使用。

【问题讨论】:

  • 您有实际发送的原始邮件的示例吗?检查您在 X-Mailer 标头之前没有额外的新行。
  • 还没有 - 但是系统已经运行了一段时间,除了 Notes 用户之外没有任何投诉。如果没有详细的检查,肯定会包括 Thunderbird、MS 的邮件客户端和谷歌,所以不会有太大的错误。我已经更正了不一致的换行符,但这并没有解决问题。
  • 如何找到实际发送的原始邮件?我已经复制了自己,我收到的邮件在各个方面都是 100% 正常的。所有行都以 CRLF 结尾,并且任何地方都没有意外的空行。
  • 大多数邮件程序都有查看“原始邮件”或“原始邮件”或类似内容的选项。您应该只看到一大段顶部带有标题的文本,然后是一个空行,然后是正文。您可能还会在其中看到一堆 MIME 内容。

标签: php email lotus-notes email-headers


【解决方案1】:

您在标题中使用了不一致的换行符。两者都使用\r\n

$headers = "From: $from\n".
    "Reply-To: $from"."\r\n" ;

// Should be
$headers = "From: $from\r\n".
    "Reply-To: $from\r\n" ;

根据处理 SMTP 事务的 MTA,如果在上面失败,则使用 PHP_EOL 常量换行可能会更好:

$headers = "From: $from" . PHP_EOL .
    "Reply-To: $from" . PHP_EOL ;

【讨论】:

  • 我知道行尾不一致。这是最新版本,经过多次谷歌搜索后尝试。我已经安排了一次测试(可能需要一两天 - 我没有笔记)。
  • 让那一周 - 需要测试的人在度假!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多