电子邮件格式 eml 和 mbox 及其相互转换

原文地址:http://notes.techlive.me/note-2010-12-15-48.html

一、简单了解

eml 1

eml 格式被一些电子邮件客户端用来存储电子邮件。它只能存储一封邮件,但可以包含邮件附件或者那些随邮件一同发送的文件。

mbox 2

mbox 最初被 Unix 主机使用在本地的一个文本文件中管理和存贮电子邮件。电子邮件在 mbox 文件中一封接着一封存储,每封电子邮件都以 "From" 头开始。关于 mbox 文件的详细格式可以看这篇 Unix mbox format 的文章。

二、异同比较

eml 和 mbox 都是用来存储电子邮件,它们都包含完整的邮件头信息,并且都采用 MIME 格式存贮电子邮件的内容。但是,eml 格式一个文件只存储一封邮件,而 mbox 可以将若干封邮件存储在同一个文件中。

三、相互转换

3.1 专门工具
  • eml to mbox

    • eml2mbox.rb

      eml2mbox.rb 是一个用 ruby 编写的工具,可以把多封 eml 格式的邮件合并为一个 mbox 格式的文件,方便导入一些邮件客户端。

    • eml2mbox.sh

      eml2mbox.sh 是 EmailDiscussions.com 论坛有人贡献的一个 Shell 脚本,可以用来合并 eml 文件为 mbox。该脚本可能还不太完善,需要一些改进,但是值得研究,毕竟 Shell 是 *nix 系统下原生的工具。

  • mbox to eml

    • C++ based mbox2eml

      这是一个 SourceForge 上的 c++ 写的工具,支持 Win、Linux 平台。

    • Java based mbox2eml

      这是一个 java 编写的具有 GUI 界面的工具,比较直观,不便之处是需要安装 JRE 1.3 以上的支持。

3.2 通用工具

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以使用JavaMail API来生成EML格式电子邮件。以下是生成EML格式邮件的基本步骤: 1. 添加JavaMail和相关依赖项的库文件到项目中。 2. 创建一个JavaMail会话对象,并设置SMTP服务器和SMTP服务器端口。 ```java Properties props = new Properties(); props.setProperty("mail.smtp.host", "your_smtp_server"); props.setProperty("mail.smtp.port", "your_smtp_port"); Session session = Session.getInstance(props, null); ``` 3. 创建一个MimeMessage对象,并设置发送者、收件人、主题、正文和其他相关信息。 ```java MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("[email protected]")); message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]")); message.setSubject("Test Email"); message.setText("This is a test email."); message.setHeader("X-Mailer", "JavaMail"); message.setSentDate(new Date()); ``` 4. 将MimeMessage对象保存为EML格式的文件。 ```java message.writeTo(new FileOutputStream(new File("test.eml"))); ``` 完整的Java代码示例如下: ```java import java.io.File; import java.io.FileOutputStream; import java.util.Date; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class EmlGenerator { public static void main(String[] args) throws Exception { Properties props = new Properties(); props.setProperty("mail.smtp.host", "your_smtp_server"); props.setProperty("mail.smtp.port", "your_smtp_port"); Session session = Session.getInstance(props, null); MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("[email protected]")); message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]")); message.setSubject("Test Email"); message.setText("This is a test email."); message.setHeader("X-Mailer", "JavaMail"); message.setSentDate(new Date()); message.writeTo(new FileOutputStream(new File("test.eml"))); } } ``` 执行以上代码后,将会在项目根目录下生成一个名为test.emlEML格式文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值