7

PHP の mail() 関数を使用して、添付ファイル付きのメールを送信しています。したがって、PHP ソースには、添付ファイルの開始位置と終了位置を定義する境界が含まれています。

質問は: この MIME 境界を作成するための規則はありますか (文字と数字のみが許可されている例) 私はまだこの SO の質問を知っています -> MIME 境界に適用される規則は何ですか? HASH から境界を作成する必要はありますか? 以下も機能するためです。

$headers .= "Content-Type: multipart/related; boundary=\"abc\"";
[...]
$msg .="--abc\n";
[...]
$msg .= "--abc--\n\n"; 

MIME 境界が一意の値でなければならない理由はありますか?

..インターネットで情報が見つかりませんでした。

ありがとうございました!

4

2 に答える 2

3

MIME 境界は、ユーザーの実際のメッセージに表示される可能性が非常に低いものにする必要があります。ハッシュは長くて一意であるため、適切なオプションです。独自性はまた、あなたが使用している境界を理解し、それをメッセージに含めることによって、誰かがメッセージを台無しにすることを困難にします. ただし、境界が一意であるという要件は見つかりません。行全体が 70 文字未満であることだけです。

于 2011-05-30T15:50:29.353 に答える
3

境界マーカーがハッシュでなければならないということはありませんが、一意でなければなりません。--abc--挿入する実際の電子メール テキストのどこかに単語が自然に含まれているとどうなるかを考えてみてください。

メールは次のようになります。

--abc--    <--actual boundary
This is my email. There are many like it, but this one is mine.
Now for some reason I'm going to put in a line that shouldn't be there
--abc--    <--part of the email
There it was. Did you see it? No, you didn't, because the mail client saw a boundary
line and sliced it out. Because of this extra boundary, now the email has 2 sections,
instead of 1.
--abc--    <--actual boundary

では...メールクライアントは、何がメールの一部で何が「オーバーヘッド」なのかをどのように知るのでしょうか? そのため、一意の境界を使用します。

ハッシュは単純に最も簡単な方法です。電子メールのテキストが、境界マーカーと見なされる正確な場所に独自のハッシュ値を含んでいる可能性は極端に低いです。

于 2011-05-30T16:14:22.160 に答える