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

老本家
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的代码如下
 1ExpandedBlockStart.gifContractedBlock.gifpublic class SimpleEmail extends Email dot.gif {
 2ExpandedSubBlockStart.gifContractedSubBlock.gif    /** */
/**
 3InBlock.gif     * Set the content of the mail
 4
InBlock.gif     *
 5InBlock.gif     * @param
 msg A String.
 6InBlock.gif     * @return
 An Email.
 7InBlock.gif     * @throws
 EmailException see javax.mail.internet.MimeBodyPart
 8
InBlock.gif     *                        for definitions
 9InBlock.gif     * @since
 1.0
10ExpandedSubBlockEnd.gif     */

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

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

18ExpandedBlockEnd.gif}

只是采用默认的,

1None.gifpublic static final String TEXT_PLAIN = "text/plain";

并没有指定编码。

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

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

需使用MimeUtility

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

1None.gifMimeUtility.encodeText(filename));


 1None.gif        EmailAttachment attachment = new  EmailAttachment();
 2None.gif        attachment.setPath("c:\测试.txt"
);
 3
None.gif        attachment.setDisposition(EmailAttachment.ATTACHMENT);
 4None.gif        attachment.setDescription("测试文件"
);
 5None.gif        

 6           // None.gif
 7
None.gif        attachment.setName(MimeUtility.encodeText("测试文件.txt"));
 8
None.gif
 9None.gif         MultiPartEmail email = new
 MultiPartEmail();
10None.gif        email.setHostName("192.168.0.3"
);
11None.gif        email.setAuthentication("martin.xus""1234"
);
12None.gif        email.addTo("martin.xus@192.168.0.3""martin"
);
13None.gif        email.setFrom("martin.xus@192.168.0.3""martin"
);
14
None.gif
15None.gif        email.setSubject("测试带附件"
);
16None.gif        email.setMsg("该邮件含附件"
);
17None.gif        //添加附件

18None.gif         email.attach(attachment);
19None.gif        //发送邮件

20None.gif        email.send();


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

我想这些资源已经足够 o_o

你还想知道什么:)