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 回答