【问题标题】:MIME-encoded file creation in Java在 Java 中创建 MIME 编码文件
【发布时间】:2015-11-18 16:47:48
【问题描述】:

仅出于学习目的,我想创建 MIME 类型的文件。是否有任何 java api 可用于创建文件?我想将 pkcs7 响应嵌入到这个文件中。

Content-Type: multipart/mixed; boundary="=_1_1440399813_23993"
Content-Transfer-Encoding: 8bit

This is a MIME-formatted message.  If you see this text it means that your
E-mail software does not support MIME-formatted messages.

--=_1_1440399813_23993
Content-Disposition: attachment; filename=hello.pdf
Content-Type: application/pdf
Content-Transfer-Encoding: base64

MMDAwMCBuIAowMDAwMDA1MzUwIDAwMDAwIG4g
CnRyYWlsZXIKPDwvU2l6ZSAxNC9Sb290IDEyIDAgUgovSW5mbyAxMyAwIFIKL0lEIFsgPDZCQjND
QzhCOTkyNDMxMkIxMEZDOUI1MjM3NEQzODYyPgo8NkJCM0NDOEI5OTI0MzEyQjEwRkM5QjUyMzc0
RDM4NjI+IF0KL0RvY0NoZWNrc3VtIC9FNUJGNDQ1NENFRUY4RDk0RjNGRDM4NUU5NTFEOERBNAo+
PgpzdGFydHhyZWYKNTUyNQolJUVPRgo=

--=_1_1440399813_23993
Content-Disposition: attachment; filename=hello.pdf.p7s
Content-Type: application/pkcs7-mime
Content-Transfer-Encoding: base64

Lxbtj3FFg7Ss7fxsq/pSBHYBTLlDZ9K1
mmMmCygSi6+JMfbqj/vu50L79qtq3TgfMXh8GIOWqpiIh6c4/U29T6yZIBFktqiS1vRWiONM9OCx
WlrP70y9XePc/L+HyBeuUjFNCnSsxVO1atgYgLI4GdXu2jc1wTonuQVmNbsTtQ2r27SiM9eTkJYW
jrURoe5lBMTQ6rxGZWdB8bnQXjvQhmOqoDmXJ161MZ/jxbTEwHclDuKggOG29nEfZe/ybq25Fyu8
k01tvUXJJ1EanVZQwFVaoqOmR6W1/HGSxB3S7A==

--=_1_1440399813_23993--

是否有可用的 api 来创建这种类型的文件?我可以为这个文件提供任何扩展名吗?我是这个领域的新手。

【问题讨论】:

    标签: java mime


    【解决方案1】:

    据我所知,没有现成的 API。

    请记住,MIME 多部分编码只是纯文本。所以你可以把它格式化成普通的StringBuilder

    唯一有点困难的部分可能是 base64 编码,但为此有一个现成的类:Base64

    你可以很容易地拥有一个函数,它接受一个字节数组并返回格式化的字符串,或者你可以做一个类来保存addData-ing,然后最终得到结果。

    这真的取决于你的设计你想做什么。

    【讨论】:

      【解决方案2】:

      您应该能够为此使用 Java Mail API。 (http://www.oracle.com/technetwork/java/javamail/index-141777.html)

      但实际上我的经验是,这个 API 使用起来并不有趣,只要您只想将多个文件编码到一个 MIME 消息中,自己编码可能会更容易。

      一些框架,如 Spring (org.springframework.mail.*) 围绕 Java Mail 构建包装器,使其更易于使用。

      【讨论】:

        猜你喜欢
        • 2015-08-30
        • 1970-01-01
        • 2022-09-29
        • 2020-04-05
        • 2012-04-30
        • 1970-01-01
        • 2020-12-31
        • 2014-07-10
        • 2015-09-24
        相关资源
        最近更新 更多