【问题标题】:PHP: How to add line break in plain text email - cross platformPHP:如何在纯文本电子邮件中添加换行符 - 跨平台
【发布时间】:2015-11-03 10:06:49
【问题描述】:

我正在尝试在纯文本电子邮件中添加换行符,但经过多次尝试,我似乎无法使其正常工作。到目前为止,这是我尝试过的:

$plain = "";
$plain .= "Roll Back Plan:\r\n\r\n";
$plain .= "Roll Back Plan:\r\n\";
$plain .= "Roll Back Plan:\n\n";
$plain .= "Roll Back Plan:\r\r\";
$plain .= "Roll Back Plan:\r";
$plain .= "Roll Back Plan:\n";
$plain .= "Roll Back Plan:" . PHP_EOL;

到目前为止还没有任何工作。

感谢here 之前有人问过这个问题。

但是我已经尝试了建议的方法,但仍然没有...

有什么想法吗?

编辑:

这是一个纯文本电子邮件。

EDIT2:添加原始电子邮件

Received: {{REMOVED}}} by
     {{REMOVED}}} with Microsoft SMTP Server (TLS) id 14.1.355.2;
     Tue, 3 Nov 2015 10:22:07 +0000
    Return-Path: {{REMOVED}}}
    Received: from {{REMOVED}}}
    X-Env-Sender: {{REMOVED}}}
    X-Msg-Ref: {{REMOVED}}}
    X-Originating-IP: {{REMOVED}}}
    X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
      VHJ1c3RlZCBJUDogOTQuMjM2LjExOS41ID0+IDUzMTM=\n,received_headers: No 
      Received headers
    X-StarScan-Received:
    X-StarScan-Version: 7.19.2; banners=-,-,-
    X-VirusChecked: Checked
    Received: (qmail 10991 invoked from network); 3 Nov 2015 10:22:06 -0000
    Received: {{REMOVED}}}
     (94.236.119.5)  by server-3.tower-56.messagelabs.com with
     DHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 3 Nov 2015 10:22:06 -0000
    X-MSFBL: d2FnbmVyLm1hdG9zQGM0bC5jby51a0BkdnAtOTQtMjM2LTExOS01QGJnLWxvbi0w
        MUA0NzktTUVCLTI0MjoxNzYzOjIyOTA6MzkzMzowOjI5MzU6NzoxMDkzMjkz
    DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1446546126;
        s=m1; d=mktomail.com; i=@mktomail.com;
        h=Date:From:To:Subject:MIME-Version:Content-Type;
        bh=n1kHPhx5cLCEhc6ci0DYK/AkmvxaGYckMaYngTcfmCM=;
        b=Nw+P13RuK/SuT1kwJVw1YsC6vlhZBNhBS6PzBcPJeFE2scVxj65d53qFg+hjlUwZ
        OX4iIFpee8RJeQFX/3ev2GiKm4KN0+Q3V0chfvvEl5kT9ZCWObgQEj56L4UWAgPKMw8
        YZuX9lw/d1FZH0Al/RjKRD0wjITtpg+fvTxj/nY8=
    Date: Tue, 3 Nov 2015 04:22:06 -0600
    From: {{REMOVED}}}
    Reply-To: {{REMOVED}}}
    To: {{REMOVED}}}
    Message-ID: {{REMOVED}}}
    Subject: {{REMOVED}}}
    Content-Type: multipart/alternative;
        boundary="----=_Part_24932112_12312464.1446546126219"
    X-Binding: bg-lon-01
    X-MarketoID: 479-MEB-242:1763:2290:3933:0:2935:7:1093293
    X-MktArchive: false
    List-Unsubscribe: {{REMOVED}}}
    X-Mailfrom: {{REMOVED}}}
    X-MktMailDKIM: true
    X-MS-Exchange-Organization-AuthSource: {{REMOVED}}}
    X-MS-Exchange-Organization-AuthAs: Anonymous
    MIME-Version: 1.0

    ------=_Part_24932112_12312464.1446546126219
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable

    {{REMOVED}}}


    Some text And more text<br>And some even more


    {{REMOVED}}}



    {{REMOVED}}}

    ------=_Part_24932112_12312464.1446546126219--

【问题讨论】:

  • 你可以使用一个简单的刹车&lt;br&gt;标签来实现你想要的。
  • 如果纯文本换行符在纯文本邮件中不起作用,那么您正在以 html 格式查看邮件。这可能是因为垃圾客户端或错误的 content-mime-type。
  • 我不认为是客户端问题,因为三个人(三个不同的电子邮件客户端)看到完全相同的电子邮件(没有换行符)。如何定义content-mime-type
  • 必须有上下文选项“查看(邮件)源代码”之类的。如果您在其中看到Content-Type: text/html,但没有看到Content-Type: text/plain,则类型错误。使用邮件客户端查看源代码。一封邮件可以有多种内容类型(多部分邮件)。
  • 也许您应该发布生成的电子邮件、所有标题和内容。您可以省略收件人地址。然后我们可以查看邮件是明文还是电子邮件发送。

标签: php email


【解决方案1】:

您可以将电子邮件正文编写为 html :

在这种情况下,您可以使用"&lt;/br&gt;" 标记来换行

如果您希望以纯文本形式撰写电子邮件:

使用"\r\n" 换行

【讨论】:

  • 我已经尝试过"\r\n",如我的问题中所述,但不幸的是没有奏效。
  • 您在哪个编辑器/客户端查看电子邮件?在 vi/notepad++ 中打开它,看看行尾有什么字符..
猜你喜欢
  • 2015-12-02
  • 1970-01-01
  • 2018-07-19
  • 1970-01-01
  • 2011-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-19
相关资源
最近更新 更多