gpt4 book ai didi

java - 如何将电子邮件另存为文本

转载 作者:行者123 更新时间:2023-11-30 07:57:42 25 4
gpt4 key购买 nike

作为备份,我想存储使用 Java 获取的原始收到的电子邮件。

我当前的方法是使用 writeTo 方法:

MimeMessage mimeMessage;
try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
mimeMessage.writeTo(out);
String rawContent = out.toString();
FileUtiles.writeStringToFile("email.txt", rawContent);
}

但是当我通过 Telnet 发送此电子邮件时:

Return-Path: <jones@jibjab.jinga>
To: <indianer@jones.com>
Subject: test special chars
Content-Type: multipart/mixed; boundary="=_1c4a520f54326063ea347cd3da780d5a"

--=_1c4a520f54326063ea347cd3da780d5a
Content-Type: text/plain; charset="IBM850"
Content-Transfer-Encoding: 7bit

Test
ä ü Ö ß
Test

--=_1c4a520f54326063ea347cd3da780d5a
Content-Type: application/zip
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="archive.zip"

--=_1c4a520f54326063ea347cd3da780d5a--

文本文件中的“ä ü Ö ß”部分已损坏(已替换为“� � � �”。在 Outlook 中,一切看起来都很好。

我对电子邮件协议(protocol)的理解是,仅发送 ascii 字符。为什么它不工作,我该怎么做才能让它工作?

编辑:如果出现任何问题,电子邮件应保持原始状态作为备份。由于电子邮件协议(protocol)仅适用于 ASCII 字符,因此保存整个电子邮件应该没有问题。引用的可打印编码(就像 supposed dublicate 中的那样,我更喜欢这个 7 位的东西,但我无法控制传入的电子邮件。

最佳答案

您不应该将消息转换为字符串 - 而是让 mimeMessage.writeTo(fileOutputStream) - 直接写入 FileOutputStream。 (转换为字符串会使您面临字符集问题的风险)

关于java - 如何将电子邮件另存为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32433664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com