javamail 小结

要发邮件,必须登录smtp邮件服务器,要收邮件,必须登录pop3或imap服务器
一般的邮件系统默认都没有开通smtp,pop3,imap服务,需要自己登录邮件系统的页面进行设置
而163默认是开通了smtp服务的,所以我们可以用java程序通过这个smtp服务器进行发送邮件
我们的java程序其实类似于outerlook这个的邮件客户端,会建立用户代理(User Agent),
这个用户代理再跟smtp服务器联系,要求发送邮件.
所以发送邮件的具体工作还是由smtp服务器完成.

使用javaMail发送邮件的步骤是:
1.建立一个连接Session
这个session包含了smtp信息,验证信息
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.163.com");
props.put("mail.smtp.auth", "true");//这里须用字符串“true"

2.验证信息
Authenticator authen = new Authenticator(){
    public PasswordAuthentication getPasswordAuthentication() { 
return new PasswordAuthentication(usename, password);
    }
}

3.获取Session
//如果使用Session.getDefaultInstance(props,authen)有时会出现无法访问session的错误
Session session = Session.getInstance(props, authen);

4.构造邮件内容
MimeMessage message = new MimeMessage(session);
//设置from
message.setFrom(new InternetAddress(from));
//设置to,可能有多个to email, addressTo 是 InternetAddress[] 对象
message.setRecipients(Message.RecipientType.TO, addressTo);
//设置subject
message.setSubject(subject);
//设置邮件内容
//如果邮件内容不是html格式,只是plain text
if(useText){
   message.setText(content);
}
//如果邮件内容是html格式
if(useHtml){
   BodyPart bdp = new MimeBodyPart();
   bdp.setContent(info.getContent(), "text/html;charset=utf-8");
   Multipart mlp = new MimeMultipart();
   mlp.addBodyPart(bdp);
   message.setContent(mlp);
}

5.发送邮件
Transport.send(message);

你可能感兴趣的:(html,工作)