科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件了解JavaMail API的强大功能

了解JavaMail API的强大功能

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

JavaMail API是一套消息通信框架,用来构建平台无关、并使用e-mail消息传递机制的应用程序。它包含于J2EE平台(一种Java平台环境),而对于J2SE则是一个可选包。

作者:builder.com.cn 2007年2月2日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

用法举例

清单A是发送一封测试消息的一份示例代码。在这个例子中,你应该把占位的e-mail地址取代为真实的地址,把smtp.address.com取代为你的互联网供应商或公司使用的真实SMTP服务器。

一个Session(会话)对象将被创建,它代表我们的e-mail会话过程。这个Session对象的构造器(constructor,对象类创建时要执行的一个函数,定义在每个类的内部)需要有一个代表该session关键信息的java.util.Properties对象。对于这个例子,你只需要把"mail.smtp.host"属性设置成正确的SMTP主机。在那之后,你就可以创建一个实际的MimeMessage对象,并可以根据该e-mail的要求进行定制。此外,还需要两个InternetAddress对象,分别代表“发件人”(from)和“收件人”(to)地址。在你的代码中,它们应该是可以访问的合法e-mail地址。该e-mail的这两个地址一旦设置好,邮件主题和一条简单消息也要随之设置好。

最后,消息就准备好发送了。在JavaMail中,Transport对象处理消息的发送。因为这里我们只有一条消息,故使用其静态发送方法。这个方法使用SMTP服务器,服务器由专属的"mail.smtp.host" 型地址指定。

基础之上更进一步

JavaMail API还有许多高级性能。举例来说,你可以把任何邮件头加到消息中,设立多个收件人,创建消息的隐蔽副本(可以用来发送给“抄送人”(bcc)),把消息正文重编码成不同的字符集编码,诸如此类,不一而足。作为具体例子,清单B显示了如何添加多个收件人。

如果你发送使用非-ASCII字符集编码的消息(如:一个笔画加重的字符集),收件人可能会遇到无法阅读的问题。为了让消息易于阅读,试着加上下面几行代码,以此给出译码的提示:

MimeMessage mimeMsg = new MimeMessage(session);

mimeMsg.setHeader("Content-Transfert-Encoding", "8Bit");

mimeMsg.setText(frenchMsg, "iso-8859-1");

Transport.send((Message)frenchMsg);

这对于报文正文很是完美,但是为了正确显示标题中的加重字体,你需要采用'quoted-printable' 或者 'base64'编码方法来对其编码。让人喜出望外的是,你也可以使用javax.mail.internet.MimeUtility类。类中的encodeText()方法将确保被其处理传递的字符串将是“mail safe”(表示邮件历经各个传递和处理过程,仍不会丧失其原来的可读性)的。清单C显示了你将如何发送带有附件的e-mail。

结论

你具体如何使用JavaMail API的方式不在此文讨论范围中。请参考最新版的JavaMail 1.4规范JSR 919,以获取完整描述信息。Sun的JavaMail API全面贯彻执行了该规范,因此不要多想,先安上它,在上路试跑中体验其丰富性能吧。

Peter V. Mikhalenko是Sun认证专家,Deutsche Bank公司业务顾问。

责任编辑:德东

查看本文国际来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章