2

quoted-printable でエンコードされた HTML メールを適切に送信するのに問題があります。互換性の理由から 79 文字を超える行がないという要件を満たすために、HTML を行に分割する必要があります。

これの実例は次のとおりです。

( mailto:abc@someonesdomain.tld?subject=3DReply%20to%20this%20Post%20%5B428=
2-8596-332127136989972_339826386220047-6307b30ea80af240f0557f2340d9758d%5D&=
body=3D******%20Enter%20your%20reply%20below%20this%20line%20and%20hit%20SE=
ND.%20You%20may%20also%20attach%20an%20image%20to%20your%20reply%20****** )

行末をメモ帳にコピーすると、= CR LF のみが表示されます。

だから私は使用しようとしましたがwordwrap($newHtmlBody, 70, '='.PHP_EOL, true);、私の出力は上記の作業例のように見えました。ただし、送信されたメールを gmail で表示すると、これは受け入れられません。私は何を間違っていますか?

HTML コンテンツの上の関連する電子メール ヘッダー/本文は次のとおりです。

MIME-Version: 1.0
From: "Admin" <no-reply@domain.tld>
Content-Type: multipart/alternative; boundary="_av-aRPROueRxMYL7a0Ro00ndA"
Message-Id: <20150302.ABCDEFGHIJKLMNOPQRSTUVWYXZ@domain.tld>
Date: Mon,  2 Mar 2015 15:41:38 +0100 (CET)

--_av-aRPROueRxMYL7a0Ro00ndA
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Plain text

--_av-aRPROueRxMYL7a0Ro00ndA
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
4

3 に答える 3

-1

「Content-Transfer-Encoding」を「Quoted-Printable」ではなく「7bit」に設定します。Outlook や Thunderbird などの一部のメール クライアントでは、すべての行にダブル スペースの改行が挿入されるようです。その理由は、MIME の 'content-transfer-encoding' が 'quoted-printable' に設定されているためです。これにより、これらのメール クライアントによって解釈される文字であるキャリッジ リターン ライン フィード (CRLF) 改行が電子メールのソース コンテンツに追加されます。

于 2015-03-11T06:43:46.823 に答える
-2

%20 ソフトラインブレイクです特別なことをする必要はありません。次のように長い行を入力すると、Gmail が自動的に改行します。

echo '<a href="mailto:me@example.com?subject=Reply%20to%20this%20Post& body=Enter%20your%20reply%20below%20this%20line%20and%20hit%20SEND.%20You%20may%20also%20attach%20an%20image%20to%20your%20reply!%20Repeat:%20Enter%20your%20reply%20below%20this%20line%20and%20hit%20SEND.%20You%20may%20also%20attach%20an%20image%20to%20your%20reply!">click me</a>';

于 2015-03-08T06:31:34.563 に答える