1 回答

TA贡献1859条经验 获得超6个赞
这段代码至少有两个问题:缺少空行来分隔 MIME 标题和正文,然后在末尾添加一些 MIME 边界,即使这不是多部分邮件。当前创建的邮件如下所示:
From: me@example.com
To: you@example.com
Subject: test
MIME-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=test-filename
Y29sdW1uMSxjb2x1bW4yLGNvbHVtbjNcbkFBQSxCQkIsQ0NDXG5EREQsRUVFLEZGRlxu
--973d0754ef322150f1977af176c9e1917c6dea9dfa0390e8e99af038c086--
最后错误的边界被解码为base64,而像“-”这样的无效base64字符被忽略。这会导致输出结束时出现垃圾。
相反,它应该看起来像这样作为一个单独的部分。请注意缺少的(错误的)结束边界,并注意 MIME 标头和正文之间的空行。
From: me@example.com
To: you@example.com
Subject: test
MIME-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=test-filename
Y29sdW1uMSxjb2x1bW4yLGNvbHVtbjNcbkFBQSxCQkIsQ0NDXG5EREQsRUVFLEZGRlxu
或者,它应该作为多部分邮件完成,如下所示。请注意主 MIME 标头中的不同 Content-Type。
From: me@example.com
To: you@example.com
Subject: test
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary=973d0754ef322150f1977af176c9e1917c6dea9dfa0390e8e99af038c086
--973d0754ef322150f1977af176c9e1917c6dea9dfa0390e8e99af038c086
Content-Type: text/plain
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=test-filename
Y29sdW1uMSxjb2x1bW4yLGNvbHVtbjNcbkFBQSxCQkIsQ0NDXG5EREQsRUVFLEZGRlxu
--973d0754ef322150f1977af176c9e1917c6dea9dfa0390e8e99af038c086--
- 1 回答
- 0 关注
- 149 浏览
添加回答
举报