Java mail基础使用 (一)

来源:互联网 发布:nlp分词算法 编辑:程序博客网 时间:2024/06/05 10:05

刚加入工作,需要使用java mail,下面是总结

java mail知识要点


Session

其中主要创建了有关mail的信息,它在javax.mail包。这个类的构造方法为私有,所以,用其静态方法获得Session对象,这个方法中的参数主要以Properties为主

Properties prop=getProperties();Session session =Session.getInstance(prop)

Properties中是mail的配置信息,如下

mail.debug=truemail.host=smtp.163.commail.transport.protocol=smtpmail.smtp.auth=truemail.from=xxx@163.com

当时遇到的问题:写成下面的配置,则会报错

mail.debug=truemail.stmp.host=smtp.163.commail.smtp.auth=truemail.from=xxx@163.com

Transport

Transport类负责的是发送,使用代码如下

Transport ts=session.getTransport();ts.connect(username,password);Message message=createMessage(session, addresses);ts.sendMessage(message, message.getAllRecipients());ts.close();

注意事项:
Transport是一个抽象类,所以不能直接获得其对象,查看他的源码,是获得service对象,然后使用cast方法来强转为Transport

Message

它是一个抽象类,类的功能主要是对邮件内容的处理,比如设置内容,标题等,一般使用它实现的子类MimeMessage,使用的时候传递一个session的对象,代码如下

MimeMessage message = new MimeMessage(session);message.setRecipients(Message.RecipientType.TO, addresses);message.setFrom("changhongkaimail@163.com");//发件人message.setSubject("李雷");//邮件标题message.setContent("1111111111", "text/html;charset=UTF-8");//邮件内容和编码格式

注意事项:
setFrom()中写的发件人需和connect中的发件人一致,否则会报错
Message.RecipientType是Message的内部静态类
To表示收件人,primary recipients
Bcc表示秘密抄送,blind carbon copy recipients
CC表示抄送,carbon copy recipients

0 0