从MIME邮件创建文件



我想从多部分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在安卓上做这件事,如果你有一些关于如何做这个的额外提示

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

  • 有一个Kotlin库可以做到这一点https://github.com/chroder/kotlin-email-parser
  • 您可以调用这样的java库http://commons.apache.org/proper/commons-email/进行解析;或
  • 您可以依靠第三方服务来解析电子邮件内容并提取附件,例如https://www.cloudmailin.com

试图只提取正文部分不会涵盖编码方法,每种方法都不同,并且需要了解电子邮件的RFC标准(如RFC 53228222822(。

最新更新