当您编写MIME时,您将消息的不同块与特定边界分开。我由于某种原因找不到任何解释这个边界的文件,但这是我从例子中收集的内容:
边界可以是任何字母和数字的字符串,i。即“d29a0c638b540b23e9a29a3a9aebc900aeeb6a82”。
没有生成边界的规则,你可以md5sum你心爱的名字,在这里,你有你的边界。
如果您通过HTTP发送MIME,则必须添加标题“Content-Type”,指定您执行此操作,并且标题的边界内容可能如下所示:
的multipart / form-data的;边界= d29a0c638b540b23e9a29a3a9aebc900aeeb6a82
在邮件正文中,边界应以“ - ”开头,如:
- d29a0c638b540b23e9a29a3a9aebc900aeeb6a82
但遵循这些规则(以及this有用的答案)我无法生成服务器可以接受的POST查询。我错过了什么吗?我弄错了吗?
答案 0 :(得分:61)
boundary := 0*69<bchars> bcharsnospace bchars := bcharsnospace / " " bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" / "+" / "_" / "," / "-" / "." / "/" / ":" / "=" / "?"
body of a multipart entity有语法(只有重要部分):
multipart-body := [preamble CRLF] dash-boundary transport-padding CRLF body-part *encapsulation close-delimiter transport-padding [CRLF epilogue] dash-boundary := "--" boundary encapsulation := delimiter transport-padding CRLF body-part delimiter := CRLF dash-boundary close-delimiter := delimiter "--"
前面的--
对于消息中使用的每个边界都是必需的,并且尾部--
对于结束边界( close-delimiter )是必需的。因此,具有三个正文部分且boundary
作为边界的多部分正文可以如下所示:
--boundary
1. body-part
--boundary
2. body-part
--boundary
3. body-part
--boundary--