来自MySQL的纯文本电子邮件

时间:2012-07-13 10:45:21

标签: php mysql email plaintext line-breaks

情况如下。我在MySQL中存储了一个纯文本电子邮件,其中包含换行符\r\n。当我的php脚本需要发送邮件时,它首先使用sprintf填写一些参数,然后使用标准mail()函数发送邮件。

我遇到的问题是电子邮件客户端(在我的情况下是thunderbird)显示这些换行符而不是解释它们。

为了测试我的脚本,我在邮件中硬编码了一个句子。当我这样做时,邮件被正确解释。我的第一个尝试是MySQL逃避反斜杠,所以我试图做str_replace("\\\\", "\\", $str),但这没有用。

我显然做出了错误的假设或愚蠢的错误,但我没有看到它。可能是什么问题呢?

3 个答案:

答案 0 :(得分:1)

尝试将其替换为str_replace('\ n \ r',“\ n \ r”);如果\ n \ r \ n字符作为四个单独的字符保存在您的邮件中,它可能会解决您的问题。如果您使用例如phpmyadmin输入它们,它们将保存为4个字符,而不是您期望的2个字符。

希望它有所帮助!

答案 1 :(得分:0)

尝试使用var_dump打印消息,这可能会显示有关字符串值的更好信息。

答案 2 :(得分:0)

也许将此用于ty并删除斜杠:

stripslashes($str);