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

时间:2017-12-21 01:16:46

标签: email plaintext

我有一个发送纯文本和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!*
';

当第二个作为纯文本电子邮件发送时,行" * Hi ...."缩进。

如何防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

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

在纯文本电子邮件中(与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);