【发布时间】:2012-07-13 05:07:43
【问题描述】:
情况如下。我在 MySQL 中存储了一封纯文本电子邮件,其中包含\r\n 的换行符。当我的 php 脚本需要发送邮件时,它首先使用sprintf 填写一些参数,然后使用标准的mail() 函数发送邮件。
我遇到的问题是电子邮件客户端(在我的例子中是雷鸟)显示这些换行符而不是解释它们。
为了测试我的脚本,我在邮件中硬编码了一个句子。当我这样做时,邮件被正确解释。我的第一个问题是 MySQL 转义了反斜杠,所以我尝试执行 str_replace("\\\\", "\\", $str) 但这无济于事。
我显然做出了错误的假设或愚蠢的错误,但我没有看到。可能是什么问题呢?
【问题讨论】:
-
为什么不打印查询的结果集,看看mysql到底返回了什么?
-
我已经打印了
$result['message']并且在浏览器中没有任何内容被转义。 -
那么,显然 mail() 函数会转义你的特殊字符
-
mail()函数在我对它们进行硬编码时不会转义\r\n。所以我认为这不是问题?
标签: php mysql email plaintext line-breaks