Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何避免邮件在之后被修剪。\n\n_Php_Email_Postfix Mta - Fatal编程技术网

Php 如何避免邮件在之后被修剪。\n\n

Php 如何避免邮件在之后被修剪。\n\n,php,email,postfix-mta,Php,Email,Postfix Mta,我已经搜索了一个bug好几个星期了,终于找到了它。但是,我需要一些帮助来解决这个问题。上下文是电子邮件地址确认 根据登录名的字符数,PHP命令quoted_printable_encode()会在一个点之前或之后断行,该点后面跟一个换行符 这很有效 Ihre E-Mail-Adresse burninleo@abc.net wurde als Kontaktadresse f=C3=BCr das= Benutzerkonto "abcdefg.abcdef" auf https://www.

我已经搜索了一个bug好几个星期了,终于找到了它。但是,我需要一些帮助来解决这个问题。上下文是电子邮件地址确认

根据登录名的字符数,PHP命令quoted_printable_encode()会在一个点之前或之后断行,该点后面跟一个换行符

这很有效

Ihre E-Mail-Adresse burninleo@abc.net wurde als Kontaktadresse f=C3=BCr das=
 Benutzerkonto "abcdefg.abcdef" auf https://www.snipsnapme.com eingetragen.

Falls Sie dieses Benutzerkonto selbst eingerichtet haben, best=C3=A4tigen S=
ie Ihre korrekte E-Mail-Adresse bitte, indem Sie auf folgenden Link klicken=
。。。而这是修剪前的点

Ihre E-Mail-Adresse burninleo@abc.net wurde als Kontaktadresse f=C3=BCr das=
 Benutzerkonto "abcdefg.abcdefg" auf https://www.snipsnapme.com eingetragen=
.

Falls Sie dieses Benutzerkonto selbst eingerichtet haben, best=C3=A4tigen S=
ie Ihre korrekte E-Mail-Adresse bitte, indem Sie auf folgenden Link klicken=
据我记忆所及\n+dot+\n+\n是“消息结束”的标记-因此非常清楚,为什么在这里修剪消息。但是,将any=\ndot\n\n替换为其他内容似乎不明智,因为引用的\u printable\u encode()确实误解了这一点

我错过了什么吗?什么

谢谢你的提示! 伯恩利奥


这是发送到PHP的mail()的完整消息内容。由于linux上的后缀将\n替换为\r\n,换行符为\n

--=_SubliminalMessagesInCinemaDontWork
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Guten Tag,

Ihre E-Mail-Adresse burninleo@abc.net wurde als Kontaktadresse f=C3=BCr das=
 Benutzerkonto "abcdefg.abcdefg" auf https://www.snipsnapme.com eingetragen=
.

Falls Sie dieses Benutzerkonto selbst eingerichtet haben, best=C3=A4tigen S=
ie Ihre korrekte E-Mail-Adresse bitte, indem Sie auf folgenden Link klicken=
: https://www.snipsnapme.com/admin/act.php?t=3D1234567890ABCDEF

Der Best=C3=A4tigungscode f=C3=BCr Ihre E-Mail-Adresse lautet: 1234567890AB=
CDEF


Falls Sie das Benutzerkonto nicht selbst eingerichtet haben, will m=C3=B6gl=
icherweise eine andere Person Ihre E-Mail-Adresse missbrauchen. In diesem F=
all l=C3=B6schen Sie diese E-Mail bitte einfach.

----------------------------------------------------------
snipsnapme.com - https://www.snipsnapme.com
----------------------------------------------------------
--=_SubliminalMessagesInCinemaDontWork
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<title>Best=C3=A4tigung der E-Mail-Adresse</title>
<style>
body { font-family: verdana, arial, sans-serif }
a.button:link { background-color: #00AA00 }
a.button:visited { background-color: #009900 }
a.button:focus,
a.button:hover,
a.button:active { background-color: #66AA00 }
</style>
</head>
<body>
<p>Guten Tag,</p>
<p>Ihre E-Mail-Adresse <strong>burninleo@abc.net</strong> wurde als Kontakt=
adresse f=C3=BCr
das Benutzerkonto "abcdefg.abcdefg" auf <strong>https://www.snipsnapme.com<=
/strong> eingetragen.</p>
<p>Falls Sie dieses Benutzerkonto selbst eingerichtet haben, best=C3=A4tige=
n Sie
Ihre korrekte E-Mail-Adresse bitte, indem Sie auf folgenden Knopf klicken.<=
/p>
<p style=3D"padding: 20px 0px">
<a href=3D"https://www.snipsnapme.com/admin/act.php?t=3D1234567890ABCDEF" c=
lass=3D"button" style=3D"padding: 10px 20px; margin: 1px; border: 1px solid=
 white; outline: 1px solid #00AA00; background-color: #00AA00; color: #FFFF=
FF; text-decoration: none">E-Mail-Adresse best=C3=A4tigen</a>
</p>
<p>Der Best=C3=A4tigungscode f=C3=BCr Ihre E-Mail-Adresse lautet: 123456789=
ABCDEF</p>
<p>Falls Sie das Benutzerkonto <u>nicht</u> selbst eingerichtet haben,
will m=C3=B6glicherweise eine andere Person Ihre E-Mail-Adresse missbrauche=
n.
In diesem Fall l=C3=B6schen Sie diese E-Mail bitte einfach.</p>
<div style=3D"margin-top: 24px; border-top: 2px solid #999999; border-botto=
m: 2px solid #999999; padding: 8px 0px">
snipsnapme.com &ndash; <a href=3D"https://www.snipsnapme.com">https://www.s=
nipsnapme.com</a>
</div>
</body>
</html>
--=_SubliminalMessagesInCinemaDontWork--
-->\u Cinemadon网络中的潜意识消息
内容类型:文本/纯文本;字符集=UTF-8
内容传输编码:引用可打印
古滕标签,
我有电子邮件地址burninleo@abc.netwurde als kontaktress f=C3=BCr das=
贝努泽尔科诺“abcdefg.abcdefg”aufhttps://www.snipsnapme.com 埃因格拉根=
.
贝努泽尔康托瀑布位于埃因格里切特哈本,贝斯特=C3=A4tigen S=
请发送电子邮件至地址BITE,并将文件夹链接至klicken=
: https://www.snipsnapme.com/admin/act.php?t=3D1234567890ABCDEF
Der Best=C3=A4TINGSCODE f=C3=BCr Ihre电子邮件地址:1234567890AB=
CDEF
如果你在哈本附近的一处瀑布,m=C3=B6gl=
我的电子邮件地址是missbrauchen。在DIEF中=
所有l=C3=B6请发送电子邮件给我。
----------------------------------------------------------
snipsnapme.com-https://www.snipsnapme.com
----------------------------------------------------------
--=\u电影网络中的潜意识信息
内容类型:text/html;字符集=UTF-8
内容传输编码:引用可打印
Best=C3=A4电子邮件地址图
正文{字体系列:verdana、arial、sans serif}
a、 按钮:链接{背景色:#00AA00}
a、 按钮:已访问{背景色:#009900}
a、 按钮:焦点,
a、 按钮:悬停,
a、 按钮:活动{背景色:#66AA00}
古滕标签

Ihre电子邮件地址burninleo@abc.netwurde als Kontakt= 地址f=C3=BCr “abcdefg.abcdefg”aufhttps://www.snipsnapme.com 埃因格拉根

你在哈本的贝努泽尔科托瀑布,贝斯特=C3=A4tige= 纳西 我给你发了一封电子邮件,地址是比特,我是克洛夫·克利肯。

Der Best=C3=A4TINGSCODE f=C3=BCr Ihre电子邮件地址:123456789= ABCDEF

这座瀑布位于埃因格里切特港, m=C3=B6glicherweise是否会与我的电子邮件地址missbrauche相同= N 在电子邮件中,l=C3=B6请发送电子邮件给我

snipsnapme.com&ndash; --=\u电影网络中的潜意识信息--
您必须在仅包含点的所有行前面加上一个
(点)

preg_replace('/^(\.+)$/m', '.\1', $mail)

这是传输层的脏工件。SMTP是最有可能的罪魁祸首(请参阅中的警告),但也可能有其他类似的低级机制。例如,如果您调整了设置或使用错误的
sendmail
程序,您可能会遇到类似的问题。

应用程序不必担心这一点,它应该由邮件软件自动处理。如果邮件软件这样做,我将不胜感激。但是PHP的mail()+Linux后缀对程序员来说有一些特殊的陷阱。例如,不能使用此软件组合将RFC的\r\n用作换行符,但必须使用。这个点入一行的问题花费了我好几个小时……我只是试图在运行Postfix的Linux服务器上重现这个问题,但无法实现。我的测试用例:
mail('account@domain“,”测试“,”这是一个测试。\n。\n\n这是更多文本。“)我在收到的电子邮件中都看到了这两行。这可能是因为这个问题只发生在多部分邮件中(参见上面的示例代码)?我(仍然)用PHP5.3.3-7+squeez和postfix 2.7.1-1+squeeze1观察到这个问题。如果其他版本关注点问题,那么使用下面的解决方法将非常有趣:)非常简单的解决方案:)非常感谢!对于那些想要复制和粘贴的人,下面是正确的PHP命令:
$content=preg\u replace('/^(\\.+)$/m','.\\1',$content)
有什么原因导致quoted_printable_encode()本身不这样做吗???这是SMTP协议的一部分,而不是电子邮件编码。@BurninLeo正如Barmar所指出的,这个技巧不是MIME电子邮件编码的一部分。这是邮件传输层的一个脏东西。@kmkaplan您能更详细地指定“传输层”吗?你说的是SMTP,对吗?我仍然不能完全确定PHP、postfix和其他可能的软件组件在电子邮件发送过程中扮演的角色,但我肯定更喜欢一个解决方案,而不是一个单一的平台黑客…@BurninLeo我编辑了我的答案,以提供更多的细节。