我几个星期以来一直在寻找一个错误 - 最终可以找到它。但是,我需要一些帮助来解决它。上下文是电子邮件地址确认。
根据登录名的字符数,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 – <a href=3D"https://www.snipsnapme.com">https://www.s=
nipsnapme.com</a>
</div>
</body>
</html>
--=_SubliminalMessagesInCinemaDontWork--
答案 0 :(得分:1)
您必须在仅包含点的所有行前加.
(点)。
preg_replace('/^(\.+)$/m', '.\1', $mail)
这是传输层的脏工件。 SMTP是最可能的罪魁祸首(请参阅mail function documentation中的警告请求),但可能存在其他类似行为的低级别机制。例如,如果您调整sendmail_path设置或使用错误的sendmail
程序,您可能会遇到类似的问题。