我知道多部分电子邮件的每个部分都可以是多部分.附件是仅作为顶级部件添加,还是也可以嵌套在多部件中?
例如,我的意思是,这里attachment1.doc是嵌套的,而是attachment2.doc顶级部分.
multipart/mixed |---Title: text/plain |---Text content: text/plain |---Nested multipart: multipart/mixed | |--- attachment1.doc (BASE64) |---attachment2.doc (BASE64)
我问,因为我从/sf/answers/1928966721/遇到了这段代码:
# Iterate the different parts of the multipart message.
for part in msg.walk():
# Skip any nested multipart.
if part.get_content_maintype() == 'multipart':
continue
Run Code Online (Sandbox Code Playgroud)
它是在Python中,它们遍历消息的不同部分以搜索附件,但跳过任何本身是多部分的部分.
他们这样做是否正确?我尝试阅读RFC3501,但找不到任何明确的说明文件附件是否可以嵌套.
没有处方限制,你很难争论所有multipart类型的单一政策- 它们有着截然不同的目的.
例如,有一条消息
multipart/mixed
+-- multipart/alternative
| +-- text/plain
| +-- multipart/related
| +-- text/html
| +-- image/png
| +-- image/png
+-- application/octet-stream; name="attachment.pdf"
Run Code Online (Sandbox Code Playgroud)
...大多数想要提供消息的HTML视图的客户的理智行为是选择multipart/related内部multipart/alternative及其所有附件,并使用它来显示消息,同时将PDF显示为单独的附件.如果您只处理顶级multipart/mixed,则只能 看到附件,这似乎不是一种理智的方法.
可以发生完全任意嵌套的另一种情况是message/rfc822附加消息是其自身的完整MIME消息,其可以message/rfc822递归地包含另一个等.
任何带有(明示或暗示)的东西Content-Disposition: attachment都是"附件"; 你有时会看到里面的"附件",例如multipart/alternative,如果你正在显示消息的另一种观点,这意味着附件才有意义 - 我很难想出一个这样的例子,并且可能实际推测它应该被视为一个错误,并在渲染另一个替代方案时显示附件,以防万一.
| 归档时间: |
|
| 查看次数: |
1813 次 |
| 最近记录: |