如何避免在。\ n \ n之后修剪电子邮件

时间:2012-12-19 09:41:01

标签: php email postfix-mta

我几个星期以来一直在寻找一个错误 - 最终可以找到它。但是,我需要一些帮助来解决它。上下文是电子邮件地址确认。

根据登录名的字符数,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是“消息结束”的标记 - 所以绝对清楚,为什么要在这里修剪消息。但是,用其他东西替换任何= \ ndot \ n \ n似乎不合理,因为quoted_printable_encode()确实误解了。

我有什么遗漏的吗?什么?

感谢您的提示! BurninLeo


这是发送到PHP邮件()的完整邮件内容。由于linux上的postfix用\ r \ n替换\ 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--

1 个答案:

答案 0 :(得分:1)

您必须在仅包含点的所有行前加.(点)。

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

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