Java mail基础使用 (一)

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

java mail知识要点


Session

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

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

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

mail.debug=true
mail.host=smtp.163.com
mail.transport.protocol=smtp
mail.smtp.auth=true
mail.from=xxx@163.com

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

mail.debug=true
mail.stmp.host=smtp.163.com
mail.smtp.auth=true
mail.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("[email protected]");//发件人
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

你可能感兴趣的:(java基础)