1

我有一个向用户发送电子邮件的 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 一起使用。

4

1 回答 1

0

您为标题使用了不一致的换行符。用于\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 ;
于 2011-07-17T20:08:14.717 回答