代码之家  ›  专栏  ›  技术社区  ›  gtilflm

纯文本电子邮件的意外缩进

  •  0
  • gtilflm  · 技术社区  · 7 年前

    我有一个功能,将发送纯文本和HTML电子邮件。编码时,我缩进代码以获得正确的嵌套。请注意下面的两个代码字符串。

    $plain_text = '
    *Hi ' . show_user_name($user_id) . '. Thanks for signing up!*
    ';
    
    $plain_text = '
        *Hi ' . show_user_name($user_id) . '. Thanks for signing up!*
    ';
    

    当第二封邮件以纯文本电子邮件形式发送时,行“*嗨…..”缩进。

    我如何防止这种情况发生?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Synchro    7 年前

    简而言之,它缩进是因为你缩进了!

    在纯文本电子邮件中(与HTML不同),空格是保留的,而且意义重大,因此如果您不需要前导空格,请将其从内容中删除:

    $plain_text = preg_replace('/^ +/m', '', $plain_text);
    

    你需要 m 修改器,将前导空格剥离应用于主体中的每一行。

    或者,首先不要缩进-代码的缩进不必与生成的文本格式相关:

    $plain_text =
        '*Hi ' . show_user_name($user_id) . '. Thanks for signing up!*';
    

    如果使用制表符进行缩进,也可以将其过滤掉:

    $plain_text = preg_replace('/^[ \t]+/m', '', $plain_text);