【问题标题】:Create file from MIME message从 MIME 消息创建文件
【发布时间】:2020-12-31 14:12:09
【问题描述】:

我想从多部分 mime 消息的附件创建文件。我可以检索我需要的信息,而且创作本身也不是问题。我挣扎的是,对于给定的标题和正文,我不确定应该使用什么编码来创建文件。

假设我们必须要附件:

//HEADER    
Content-Type: application/pdf;
         name="somepdf.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
         filename="somepdf.pdf"
//BODY
 %PDF-1.4
    7 0 obj <</Length1 1501 /Length2 7274 /Length3 0 /Length 8281 /Filter /FlateDecode>>
    .. 
    ..


//HEADER
Content-Type: text/x-tex; charset=UTF-8;
     name="sometex.tex"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
     filename="sometex.tex"

//BODY
    \documentclass[a4paper, 12pt]{article}
    \usepackage[german,english]{babel}
    \usepackage{fullpage, graphicx}
    ..
    ..

如果我想创建一个包含这些信息的文件,我应该如何选择文件的编码?如果我只是获取 pdf 的正文,例如并直接使用它来编写一个pdf文件,它会导致一个不可读的pdf,因为编码是错误的。相应文件的正确编码是什么?如果您有一些关于如何执行此操作的其他提示,我正在使用 kotlin 在 android 上执行此操作

【问题讨论】:

  • I am not sure what encoding should be used to create the files. 我想你的意思是你应该使用哪种解码。
  • 好吧,我看到了 base64 编码和 7 位编码。所以你需要base64解码和7bit解码。而且您不会像要存储原始内容那样对生成的文件进行编码或解码。

标签: android email kotlin web mime


【解决方案1】:

解析电子邮件很困难。有一系列不同的编码方法、字符集,并且在电子邮件中看到边缘情况和多部分内容的嵌套是很常见的。

尝试仅提取正文部分不会涵盖编码方法,并且每种方法都会有所不同,并且需要了解电子邮件的 RFC 标准(例如 RFC 5322、2822、822)。

【讨论】:

    猜你喜欢
    • 2016-06-26
    • 2011-03-17
    • 2013-06-07
    • 2016-03-11
    • 1970-01-01
    • 2023-03-22
    • 2018-06-01
    • 2013-08-29
    • 1970-01-01
    相关资源
    最近更新 更多