какое правило для создания границы MIME (для почтовых вложений) - PullRequest
7 голосов
/ 30 мая 2011

Я использую функцию PHP mail () для отправки писем с вложениями. Поэтому исходный текст PHP содержит границу, чтобы определить, где вложение начинается и заканчивается.

Таким образом, вопрос заключается в следующем: есть ли какие-либо правила для создания этой границы MIME (за исключением того, что допускаются только буквы и числа)? я до сих пор знаю этот вопрос -> Какие правила применяются к границе MIME? Нужно ли создавать границу формы HASH? Потому что следующее также работает:

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

Есть ли причина, по которой граница MIME должна иметь уникальное значение?

.. я не нашел никакой информации в интернете.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 30 мая 2011

Ничто не говорит о том, что граничные маркеры должны быть хешами, но они ДОЛЖНЫ быть уникальными. Подумайте, что произойдет, если текст, который вы вставляете, естественно содержит слова --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

Итак ... Как почтовому клиенту узнать, что является частью письма, а что просто «накладными расходами»? Вот почему вы используете уникальные границы.

Хэши - это самый простой способ. Маловероятно, что текст сообщения электронной почты будет содержать свое собственное значение хеша в том месте, где его можно увидеть как маркер границы.

3 голосов
/ 30 мая 2011

Границы MIME должны быть чем-то невероятно маловероятным, чтобы появиться в реальном сообщении пользователя. Хэши - хороший вариант, потому что они длинные и уникальные. Уникальность также затрудняет кому-то путать свои сообщения, выясняя, какую границу вы используете, и включая ее в свое сообщение. Однако я не могу найти требования, чтобы границы были уникальными, просто чтобы вся строка была не более 70 символов.

...