0

私は何週間もバグを探していました-そしてついにそれを見つけることができました。しかし、私はそれを解決する方法についていくつかの助けが必要です。コンテキストは電子メールアドレスの確認です。

ログイン名の文字数に応じて、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は「メッセージの終わり」のマーカーです。したがって、メッセージがここでトリミングされる理由は完全に明らかです。ただし、quoted_printable_encode()はそれを誤解しているため、= \ ndot \ n\nを他のものに置き換えることは賢明ではないようです。

私が見逃したものはありますか?何?

ヒントをありがとう!BurninLeo


これは、PHPのmail()に送信される完全なメッセージコンテンツです。Linuxのpostfixは\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--
4

1 に答える 1

1

ドットのみを含むすべての行の前に.(ドット)を追加する必要があります。

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

これは、トランスポート層の汚れたアーティファクトです。SMTPが最も可能性の高い原因です(メール機能のドキュメントの注意の呼びかけを参照)が、同様に動作する他の低レベルのメカニズムが存在する可能性があります。たとえば、sendmail_path設定を微調整したり、バグのあるsendmailプログラムを使用したりすると、同様の問題が発生する可能性があります。

于 2012-12-19T09:45:05.340 に答える