1. 邮件协议
发送邮件协议:smtp
查收邮件协议:pop3
2. 依赖
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>
3. 使用qq邮箱给163邮箱发送邮件
使用前发件箱要开启 SMTP服务 ,并获得授权码
public class EmailTest { public static void main(String[] args) { Properties properties = new Properties(); //设置发送邮件客户端和协议 properties.setProperty("mail.host","smtp.qq.com"); properties.setProperty("mail.transport.protocol","smtp"); //获取会话和传输对象 Session session = Session.getDefaultInstance(properties); Transport ts = null; try { //获取传输对象发送邮件 ts = session.getTransport(); //发送邮件前先进行校验 ts.connect("xx@qq.com","授权码"); //构建邮件 Message message = new MimeMessage(session); // 发送人 message.setFrom(new InternetAddress("xx@qq.com")); // 收件人 Message.RecipientType.TO //抄送:Message.RecipientType.CC //密送:Message.RecipientType.BCC message.setRecipient(Message.RecipientType.TO,new InternetAddress("xx@163.com")); // 主题 message.setSubject("使用qq邮箱给163发送邮件"); // 正文 message.setContent("测试邮件","text/html;charset=utf-8"); //message.setSubject("激活邮件"); //message.setContent("这是一个激活邮件:<a href='http://www.baidu.com'>点击激活</a>","text/html;charset=utf-8"); //保存邮件 message.saveChanges(); //发送邮件 ts.sendMessage(message,message.getAllRecipients()); } catch (MessagingException e) { e.printStackTrace(); }finally { if (ts != null){ try { ts.close(); } catch (MessagingException e) { e.printStackTrace(); } } } } }
4. 封装工具类
public class EmailUtil { /** * @param to 收件人 * @param subject 主题 * @param context 正文 */ public static void sendEmail(String to,String subject,String context){ Properties properties = new Properties(); properties.setProperty("mail.host","smtp.qq.com"); properties.setProperty("mail.transport.protocol","smtp"); Session session = Session.getDefaultInstance(properties); Transport ts = null; try { ts = session.getTransport(); ts.connect("xx@qq.com","授权码"); Message message = new MimeMessage(session); message.setFrom(new InternetAddress("xx@qq.com")); message.setRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject(subject); message.setContent(context,"text/html;charset=utf-8"); message.saveChanges(); ts.sendMessage(message,message.getAllRecipients()); } catch (MessagingException e) { e.printStackTrace(); }finally { if (ts != null){ try { ts.close(); } catch (MessagingException e) { e.printStackTrace(); } } } } }