从 MIME 消息创建文件
Create file from MIME message
我想从多部分 MIME 消息的附件创建文件。我可以检索我需要的信息,而且创作本身也不是问题。我挣扎的是,对于给定的 headers 和正文,我不确定应该使用什么编码来创建文件。
假设我们有附件:
//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 的 body,例如并直接使用它来编写 pdf 文件,结果导致 pdf 不可读,因为编码错误。相应文件的正确编码是什么?我正在 android 上使用 kotlin 进行此操作,如果您有一些关于如何执行此操作的其他提示
解析电子邮件很难。有一系列不同的编码方法、字符集,在电子邮件中看到边缘情况和嵌套多部分内容是很常见的。
- 有一个 Kotlin 库可以做到这一点 https://github.com/chroder/kotlin-email-parser
- 您可以调用 http://commons.apache.org/proper/commons-email/ 之类的 java 库来进行解析;或
- 您可以依赖第三方服务来解析邮件内容并提取附件,例如https://www.cloudmailin.com
尝试仅提取正文部分不会涵盖编码方法,每种方法都不相同,并且需要了解电子邮件的 RFC 标准(例如 RFC 5322、2822、822)。
我想从多部分 MIME 消息的附件创建文件。我可以检索我需要的信息,而且创作本身也不是问题。我挣扎的是,对于给定的 headers 和正文,我不确定应该使用什么编码来创建文件。
假设我们有附件:
//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 的 body,例如并直接使用它来编写 pdf 文件,结果导致 pdf 不可读,因为编码错误。相应文件的正确编码是什么?我正在 android 上使用 kotlin 进行此操作,如果您有一些关于如何执行此操作的其他提示
解析电子邮件很难。有一系列不同的编码方法、字符集,在电子邮件中看到边缘情况和嵌套多部分内容是很常见的。
- 有一个 Kotlin 库可以做到这一点 https://github.com/chroder/kotlin-email-parser
- 您可以调用 http://commons.apache.org/proper/commons-email/ 之类的 java 库来进行解析;或
- 您可以依赖第三方服务来解析邮件内容并提取附件,例如https://www.cloudmailin.com
尝试仅提取正文部分不会涵盖编码方法,每种方法都不相同,并且需要了解电子邮件的 RFC 标准(例如 RFC 5322、2822、822)。