javamail 一些资源..

javamail 一些资源..

看到几位朋友对这挺感兴趣的,整理点资料放在这里共享一下.

老本家
http://java.sun.com/products/javamail/index.jsp

developerworks 的教程 JavaMail API 基础
https://www6.software.ibm.com/developerworks/cn/education/java/j-javamail/tutorial/index.html
本地下载

JavaMail FAQ: 好东西
http://java.sun.com/products/javamail/FAQ.html


无中文困挠的使用JavaMail收取邮件
http://www.javayou.com/showlog.jspe?log_id=372

使用JavaMail的邮件发送组件
http://www.javayou.com/showlog.jspe?log_id=136


最后一个就是简化了javamail开发的。
Jakarta Commons Emails

---------------------------------------------------------------------------------
以前写的一篇介绍:
《简化JavaMail:小巧 Jakarta Commons-Email 简单教程 》

顺便再整理一下,朋友讨论的关于一些jakarta commons email出现乱码的问题:

一:通过SimpleEmail发送中文内容出现乱码的问题
SimpleEmail的代码如下
 1 public   class  SimpleEmail  extends  Email  {
 2    /** *//**
 3     * Set the content of the mail
 4     *
 5     * @param msg A String.
 6     * @return An Email.
 7     * @throws EmailException see javax.mail.internet.MimeBodyPart
 8     *                        for definitions
 9     * @since 1.0
10     */

11    public Email setMsg(String msg) throws EmailException {
12        if (EmailUtils.isEmpty(msg)) {
13            throw new EmailException("Invalid message supplied");
14        }

15        setContent(msg, Email.TEXT_PLAIN);
16        return this;
17    }

18}

只是采用默认的,

1 public   static   final  String TEXT_PLAIN  =   " text/plain " ;

并没有指定编码。

如果通过SimpleEmail发送,需要指定编码: Water Ye@ITO  的说明
 
1 email.setContent( " 测试邮件 " " text/plain;charset=GBK " ); 

二:关于附件中文名称乱码的问题:

需使用MimeUtility

原因是在MIME的相应规范中(RFC2047等)说明了附件标题必须是US-ASCII字符, 所以在发送中文标题的附件时需要编码成US-ASCII字符, 有两种编码方式: B (BASE64), Q (Quoted-Printable), 这些方法在MimeUtility里
都已经做了封装, 所以在发送附件时使用如下:

1 MimeUtility.encodeText( filename ));


 1         EmailAttachment attachment  =   new  EmailAttachment();
 2         attachment.setPath( " c:\\测试.txt " );
 3         attachment.setDisposition(EmailAttachment.ATTACHMENT);
 4         attachment.setDescription( " 测试文件 " );
 5         
 6           //
 7         attachment.setName(MimeUtility.encodeText("测试文件.txt"));
 8
 9          MultiPartEmail email  =   new  MultiPartEmail();
10         email.setHostName( " 192.168.0.3 " );
11         email.setAuthentication( " martin.xus " " 1234 " );
12         email.addTo( " martin.xus@192.168.0.3 " " martin " );
13         email.setFrom( " martin.xus@192.168.0.3 " " martin " );
14
15         email.setSubject( " 测试带附件 " );
16         email.setMsg( " 该邮件含附件 " );
17          // 添加附件
18         email.attach(attachment);
19          // 发送邮件
20         email.send();


end
---------------------------------------------------------------------------------

我想这些资源已经足够 o_o

你还想知道什么:)

你可能感兴趣的:(javamail 一些资源..)