gpt4 book ai didi

java - 在java中创建一个电子邮件对象并将其保存到文件

转载 作者:搜寻专家 更新时间:2023-10-31 08:14:04 25 4
gpt4 key购买 nike

我需要备份 PST 文件(Outlook 存储)中包含的电子邮件。我正在使用 libpst,这是我在网上找到的唯一免费图书馆( http://code.google.com/p/java-libpst/ )

这样我就可以访问每封电子邮件中的所有信息(主题、正文、发件人 ecc..),但我需要将它们放在文件中

这里有人说您可以从“javax.mail.Message”对象创建一个 EML 文件: Create a .eml (email) file in Java

问题是:我如何创建这个消息对象?我没有服务器或电子邮件 session ,只有电子邮件中包含的信息

附注创建一个 .msg 文件也可以

最佳答案

这是使用 java 邮件 api 创建有效 eml 文件的代码。与 thunderbird 和其他电子邮件客户端一起工作正常:

public static void createMessage(String to, String from, String subject, String body, List<File> attachments) {
try {
Message message = new MimeMessage(Session.getInstance(System.getProperties()));
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setSubject(subject);
// create the message part
MimeBodyPart content = new MimeBodyPart();
// fill message
content.setText(body);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(content);
// add attachments
for(File file : attachments) {
MimeBodyPart attachment = new MimeBodyPart();
DataSource source = new FileDataSource(file);
attachment.setDataHandler(new DataHandler(source));
attachment.setFileName(file.getName());
multipart.addBodyPart(attachment);
}
// integration
message.setContent(multipart);
// store file
message.writeTo(new FileOutputStream(new File("c:/mail.eml")));
} catch (MessagingException ex) {
Logger.getLogger(Mailkit.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Mailkit.class.getName()).log(Level.SEVERE, null, ex);
}
}

关于java - 在java中创建一个电子邮件对象并将其保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8167583/

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