我正在深入研究html-email的东西,最后,我仍然有一个恼人的换行符的问题没有解决:/
GMail和/或Outlook通常会在标记期间准确地换行-导致外观和感觉完全损坏。因此,可能会发生整个内容都在< h2 >中的情况,因为结束标记通过换行进行了分隔。
m</strong><br/>Passwort: <
strong>20o3a7这是一个由我的PHPMailer代码生成的损坏电子邮件的示例。
现在我迷上了一家公司的电子邮件,风格完美的时事通讯……在那里我看到了一个类似这样的代码:
<table width=3D"100%" cellspacin=
g=3D"0" border=3D"0" cellpadding=3D"0">我几乎可以在这封奇怪的电子邮件->的任何一行中看到这一点,尽管它位于标签或参数词的中间,但总是以"=“结尾。而且它工作得很好!怎么会这样呢?在我看来,这个换行符是在电子邮件客户端之前生成的,但这只是我的猜测……
我可以找到非常好的文章如何创建一个正确的HTML电子邮件如下:
http://24ways.org/2009/rock-solid-html-emails
但是没有人写关于这个恼人的换行问题的文章,但我不敢相信我是唯一一个有这个问题的人……:/
发布于 2012-08-31 21:26:02
简单的解决方法
$body = str_replace("<","\r\n<", $body);每个HTML标记都将从新行开始,给出以下信息:
m
</strong>
<br/>Passwort:
<strong>20o3a7另一件事是,我在许多项目中使用了PHPMailer,向所有邮件客户端发送了数千封电子邮件,但我从未遇到过这个问题。确保你的代码是正确的。(也许您的文本编辑器正在换行?)
发布于 2012-09-01 04:59:43
<table width=3D"100%" cellspacing=3D"0" border=3D"0" cellpadding=
它被称为quoted printable编码,这是常见的html电子邮件。例如,'=3D‘代表'=’。
关于你的问题:我从来没有遇到过。如果不能查看源代码,就很难进行调试。但看起来你已经有了一个解决方案。:)
发布于 2016-07-20 03:20:48
$message = imap_fetchbody($inbox,$id,2);
$message = quoted_printable_decode($message); // magichttps://stackoverflow.com/questions/12216228
复制相似问题