欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java实现表单注册邮箱验证功能

程序员文章站 2022-07-08 14:47:15
...

一.前言:

  • 学习技术对于我们来说是无止境的,只有不断地学习,才能适应技术的快节奏迭代.

二.具体操作(我用的是163邮箱,maven项目)

1.在邮箱中开启 POP3/SMTP/IMAP

java实现表单注册邮箱验证功能

2.设置授权码(163邮箱授权码是没有时效性的)

java实现表单注册邮箱验证功能

3.配置pom.xml
		<dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-context-support</artifactId>
           <version>4.2.6.RELEASE</version>
       </dependency>
       
       <dependency>
           <groupId>javax.mail</groupId>
           <artifactId>mail</artifactId>
           <version>1.4.7</version>
   	</dependency>`
4.主方法(这里只是测试,具体该怎么调用根据自己的需求来进行修改)
import com.sun.net.ssl.internal.ssl.Provider;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.Security;
import java.util.Date;
import java.util.Properties;


public class MailSender {
    private static MimeMessage message;

    public static void main(String[] args) throws MessagingException {

        Security.addProvider(new Provider());
        final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
        //163邮箱服务器
        String smtpHost="smtp.163.com";
        //邮箱用户名,即163账号
        final String username = "这里填发送端163邮箱账号";
        //邮箱授权码
        final String password = "这里填邮箱的授权码";
        //要发送到的邮箱
        String to = "这里填目标邮箱";
        //自己的邮箱
        String from = "这里填发送端163邮箱账号";
        Transport transport;

        Properties props = new Properties();
        props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
        props.setProperty("mail.smtp.socketFactory.fallback", "false");
        props.setProperty("mail.smtp.port", "994");
        props.setProperty("mail.smtp.socketFactory.port", "994");
        props.setProperty("mail.smtp.auth", "true");
        props.put("mail.smtp.host",smtpHost);
        props.put("mail.smtp.username", username);
        props.put("mail.smtp.password", password);
        Session session = Session.getDefaultInstance(props,  new Authenticator() {
            //身份认证
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });
        InternetAddress[] addresses = {new InternetAddress(to)};
        message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        message.setRecipients(Message.RecipientType.TO,addresses);
        //邮件标题
        message.setSubject("注册验证");
        message.setSentDate(new Date());
        //编写内容
        message.setText("这里是发送内容");
        transport = session.getTransport("smtp");
        transport.connect(smtpHost, username, password);
        transport.send(message);
        System.out.println("验证发送成功");
    }
}
  • 以上就是邮箱验证的相关操作,如果是使用其他的邮箱只需修改端口号和账号授权码即可,达到的效果如下图
    java实现表单注册邮箱验证功能
  • 注意:网易163邮箱一封邮件最多发送给 40 个收件人 , 每天发送限额为 50 封。