电子邮件问题中的空白

时间:2009-11-24 01:54:48

标签: php email

我遇到了一个奇怪的问题,很难诊断,因为 这是随机的。我已经构建了一个发送电子邮件的应用程序 一定数量的文本(没有精确的字数,但可以得到它)。

在html电子邮件中,内容中会出现一个随机空格。

请参阅下文,了解空间如何漂移并且是随机的:

1- "Th ere are several things being discussed in this email."
2- "There are se veral things being discussed in this email."
3- "There are severa l things being discussed in this email."

此空白问题也会发生在链接上。到目前为止,在hotmail和gmail中发现了这个问题。

有人有什么想法吗?

$ header =“MIME-Version:1.0 \ r \ n”;
$ header。=“Content-type:text / html; charset = utf-8 \ r \ n”;
$ header。=“From:abc \ r \ n”;
$ subject =“abc”;
$ mail_body =“你好!”;
$ mail_body。=“content”;
mail($ email_address,$ subject,$ mail_body,$ header);

这是给大家一个想法的代码..

4 个答案:

答案 0 :(得分:1)

如果你有一个很长的行,你可能会遇到这个问题,它会在RFC的72个char建议之后自动被破坏到下一行。

,其中

hey lots of stuff here Jimmy will probably be way longer than 72 characters

将成为

hey lots of stuff here Jimmy will probably be way longer than 72 charac
ters

它将在HTML电子邮件中呈现为

hey lots of stuff here Jimmy will probably be way longer than 72 charac ters

答案 1 :(得分:0)

如果你发布了有问题的代码会有所帮助,因为有很多事情可能导致这种情况发生。

您使用mail()或phpmailer还是swiftmailer? 您的电子邮件是多部分还是仅限文本? 你自己解析你的模板吗?

如果是HTML,请发布客户收到的HTML代码等。

连接字符串时是否有尾随/标题空间? 尝试对你添加到$ mail_body的每个元素进行“修剪”,例如:

$mail_body .= trim($content);

答案 2 :(得分:0)

如果您“查看电子邮件的来源”,是源中的空间,还是只是出现在呈现的(可见)文本中?我要做的第一件事就是查看电子邮件来源,看看是什么 - 我不相信渲染/可见文本进行调试。

另外,你说“在html电子邮件上”。这意味着您可能将纯文本版本发送给不同的人,或者可能发送给同一个人(作为多部分消息)。如果是这样的话,你能确认它不存在吗?

正如Terry所说,你可以发布一些代码,特别是发送消息的代码和构建消息文本以便发送的代码的部分/全部(如果很简短)吗?

答案 3 :(得分:0)

根据我的理解,这个问题来自你的线路运行时间过长。 PHP邮件程序添加换行符(以及它们,空格)来分解长行。

我的建议是将“\ r \ n”添加到行尾。这有意为您的文本添加换行符,使邮件程序不会自行添加。例如:

There are several things being discussed in this email.\r\n

注意这里使用双引号。单引号只会将\ r \ n附加到您的文本中。

供参考:This question在我拥有它时回答了同样的问题。