大概弄懂了Java Mail的使用方法

2008-02-23 09:20:49来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

今天花了一下午把Java Mail的API文档看完了,对java mail api有了一个大致的了解.
然后发现Jakarta的commons api更加简单,方便.
看一个最简单的commons api发邮件的例子:

SimpleEmail email = new SimpleEmail();
email.setHostName("mail.myserver.com");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("Test message");
email.setMsg("This is a simple test of commons-email");
email.send();

主页是这里:
http://jakarta.apache.org/commons/index.html

就这么几行,就搞定...
不过我还是决定学习使用Java mail,毕竟看了一下午时间...

简单笔记:

1.发邮件使用smtp(Simple Mail Transfer Protocol)协议
读邮件使用广泛使用的pop3(Post Office Protocol)协议

2.Java Mail里的几个类,我看文档时边看边记了几个:
Message:
抽象类,定义了一组一个邮件的属性和内容.

Folder:
Messages是存储在Folder对象中.Folder提供了fetch,appden,copy和delete消息的方法.

客户创造一个合适的Message子类.最后用Transport.send()发出消息

Session:
定义了客户和网络之间整体和个人邮件属性的接口.
final类,不能被继承.

Address:
邮件地址

BodyPart:
实现Part接口.

Multipart:
继承Message,是一个包含Bodypart的容器.

Flages:
说明在floder里面的message的状态.
answered:这个message已经被回答.
draft:这个message是草稿.
...

Strore:
定义了一个包含Folder的数据库
Folder里面是Message.

Folder:
可以包含subfolders.
store的getDefaultFolder()返回用户默认目录的根目录

The JavaBeans Activation Framework
决定传输数据的类型.

Setting Message Content
两种方法:
setDataHandler
setContent

Viewing a Message:
一般是3种: text/plain, text/html, multipart/mixed

Transport:
用来发送邮件,可以接受到成功或失败的事件.
session.getTransport(Address address);

session.getTransport(String protocol);
protocol写为:"SMTP"

3.然后嘛,就开始写个能够发邮件和收邮件的小程序热热身咯.

我是拿163,和126开刀的,它们的服务器域名是:
smtp.163.com
pop.126.com

smtp.126.com
pop.126.com

很快就写出了程序,程序的难点主要是密码认证那里,开始有点不知道怎么写.
认证代码是这样的:
// create some properties and get the default Session
Properties props = new Properties();
props.put("mail.smtp.host", "host");
Session session = Session.getDefaultInstance(
props,
new Authenticator() {
public PasswordAuthentication
getPasswordAuthentication() {
return new PasswordAuthentication("username", "password");
}
});
发给大部分邮件都没有问题,进自己的邮箱也能读.

程序输出:

EHLO Eclipse
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN NTLM
250-AUTH=LOGIN PLAIN NTLM
250 8BITMIME
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN NTLM"
DEBUG SMTP: Found extension "AUTH=LOGIN", arg "PLAIN NTLM"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Attempt to authenticate
AUTH LOGIN
334 dXNlcm5hbWU6
cmFuZ3dlaV81MjA=
334 UGFzc3dVCmQ6
NjI0NTk0Mg==
235 Authentication successful
DEBUG SMTP: use8bit false
MAIL FROM:<rangwei_520@126.com>
250 Mail OK
RCPT TO:<rangwei@gmail.com>
250 Mail OK
DEBUG SMTP: Verified Addresses
DEBUG SMTP: rangwei@gmail.com
DATA
354 End data with <CR><LF>.<CR><LF>

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:强烈推荐几个比较好的Java代码查询网站

下一篇:在view关闭时执行某些操作