Lorsque vous écrivez MIME, vous séparez différents morceaux de votre message avec une certaine limite. J'ai échoué pour une raison quelconque à trouver une documentation expliquant cette limite, mais voici ce que j'ai rassemblé à partir d'exemples:
La limite peut être n'importe quelle chaîne de lettres et de chiffres, i. e. "d29a0c638b540b23e9a29a3a9aebc900aeeb6a82".
Il n'y a pas de règles pour générer la frontière, vous pouvez simplement ajouter le nom de votre bien-aimé, et voilà, vous avez votre frontière.
Si vous envoyez MIME sur HTTP, vous devez ajouter un en-tête "Content-Type" spécifiant que vous le faites, et votre limite, le contenu d'un en-tête peut ressembler à ceci:
multipart/form-data; limite = d29a0c638b540b23e9a29a3a9aebc900aeeb6a82
Dans le corps de votre message, la limite doit être précédée de "-", comme:
--d29a0c638b540b23e9a29a3a9aebc900aeeb6a82
Mais en suivant ces règles (et cette réponse utile), je n'ai pas réussi à générer POST que le serveur accepterait. Suis-je en train de manquer quelque chose?
boundary := 0*69<bchars> bcharsnospace bchars := bcharsnospace / " " bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" / "+" / "_" / "," / "-" / "." / "/" / ":" / "=" / "?"
Et le corps d'une entité en plusieurs parties a la syntaxe (uniquement les parties importantes):
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 "--"
Le précédent --
est obligatoire pour chaque limite utilisée dans le message et la fin --
est obligatoire pour la limite de fermeture ( délimiteur de fermeture ). Ainsi, un corps en plusieurs parties avec trois parties du corps avec boundary
comme limite peut ressembler à ceci:
--boundary
1. body-part
--boundary
2. body-part
--boundary
3. body-part
--boundary--