Java Mail 知识整理以及邮件发送的工具类

Java Mail 的开发,简单说就是使用Java开发语言发送邮件。

案例1:用户注册后。对注册的邮箱发送**邮件,用户点击**链接,**用户。只有**的用户才能登陆系统。

案例2:用户过生日时,系统发送生日祝福邮件

案例3:将最新活动和优惠以邮件形式告知会员


1. 什么是邮箱

电子邮箱:在邮箱服务器上申请的一个账户。用户在申请了账号之后,服务器就为这个账号分配一定的空间。用户使用这个账号和空间就可以发送电子邮件和保存别人发送过来的电子邮件。

Java Mail 知识整理以及邮件发送的工具类

2.了解SMTP和POP3协议

SMTP (Simple Mail Transfer Protocol)简单邮件传输协议.原地址到目的地址的传送邮件的规则。由它控制邮件中转的方式。

邮件从A邮件服务器到达

到达邮件服务

POP3 (Post Office Protocol -version 3) 邮局协议版本3


Java Mail 知识整理以及邮件发送的工具类

用户注册后使用邮箱**的流程:

Java Mail 知识整理以及邮件发送的工具类


开发邮件发送的功能要引入Mailer包。在Maven repository 仓库中搜索Mailer即可找到。当前版本是2.12

<!-- https://mvnrepository.com/artifact/com.github.jurajburian/mailer -->
<dependency>
    <groupId>com.github.jurajburian</groupId>
    <artifactId>mailer_2.12</artifactId>
    <version>1.2.1</version>
</dependency>

邮件发送的工具类

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

/**
 * 描述:邮件发送的工具类
 * Created by your comandante
 * 2018/1/26 15:09
 */
public class MailUtil {

    /**
     * 发送邮件的方法
     * @param to :给谁发邮件
     * @param code :邮件**码
     */
    public static void sendMail(String to,String code) throws Exception{
        //1.1创建连接对象,连接到邮箱服务器
        Properties props = new Properties();

        Session session = Session.getInstance(props, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
  //发送方的邮箱账号和密码
                return new PasswordAuthentication("[email protected]","123");
            }
        });
        //2.创建邮件对象
        Message message = new MimeMessage(session);
        //2.1设置发件人
        message.setFrom(new InternetAddress("[email protected]"));
        //2.2设置收件人
        message.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
        //2.3设置邮件的主题
        message.setSubject("来自XX网站的**邮件");
        //2.4设置邮件的正文
        message.setContent("<h1>来自XX网站的**邮件,请点击以下链接完成注册:<h1><a href='http://dbank.vmall.com/user/activeuser.action?code="+code+"'>http://dbank.vmall.com/user/activeuser.action?code="+code+"</a>","text/html;charset=UTF-8");
        //3.发送一封**邮件
        Transport.send(message);
    }
}