美文网首页
Java实现邮箱发送邮件验证功能

Java实现邮箱发送邮件验证功能

作者: Scalelength | 来源:发表于2020-01-13 11:08 被阅读0次

本文是说明springboot+maven完成邮箱发送验证功能。

参考:https://www.cnblogs.com/zhangdiIT/p/8184293.html

首先是JavaMail相关依赖

<!-- JavaMail相关依赖 -->
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>

<dependency>
     <groupId>javax.activation</groupId>
     <artifactId>activation</artifactId>
     <version>1.1.1</version>
</dependency>

再来是三个类

一、Mail的实体类

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

/** * TODO.... * * @author liuzhao * @date 2019-12-20 10:00 */
public class MailAuthenticator extends Authenticator{

    public static String USERNAME = "发送邮件的邮箱";
    public static String PASSWORD = "邮箱的登陆密码";

    public MailAuthenticator() { }

    public PasswordAuthentication getPasswordAuthentication() {

        return new PasswordAuthentication(USERNAME, PASSWORD);

    }

}

二、封装Mail类

public class MailEntity {
private String user;//你的邮箱地址 
 private String passord;//邮箱授权码 
 private String host = "smtp.163.com"; //服务器地址
 private String from;//发件人 
 private String to;// 收件人
 private String subject;//主题  
 private String sb; //邮箱内容
 private String code;//验证码

//getter和setter方法省略,除了邮箱内容

public void setSb(String code){ this.sb="<html><head></head><body><h1>这是一封激活邮件,激活请点击以下链接</h1><h3><a href='http://localhost:8080/register/ActiveServlet?code=" + code + "'>http://localhost:8080/register/ActiveServlet?code=" + code + "</href></h3></body></html>";}
public String getSb() { return sb;}

三、发送操作类

邮件发送操作类

public class MailOperationimplements Runnable{

    private MailEntitymailEntity;

    public MailOperation(MailEntity mailEntity) {
        this.mailEntity = mailEntity;
    }

/**

* 发送邮件

    * @param user 发件人邮箱

    * @param password 授权码(注意不是邮箱登录密码)

    * @param host

    * @param from 发件人

    * @param to 接收者邮箱

    * @param subject 邮件主题

    * @param content 邮件内容

    * @return success 发送成功 failure 发送失败

    * @throws Exception

*/

    public static StringsendMail(String user, String password, String host,

                          String from, String to, String subject, String content)

throws Exception {

    if (to !=null){

    Properties props = System.getProperties();

            props.put("mail.smtp.host", host);

            props.put("mail.smtp.auth", "true");

            MailAuthenticator auth =new MailAuthenticator();

            MailAuthenticator.USERNAME = user;

            MailAuthenticator.PASSWORD = password;

            Session session = Session.getInstance(props, auth);

            session.setDebug(true);

            try {

                MimeMessage message =new MimeMessage(session);

                message.setFrom(new InternetAddress(from));

                if (!to.trim().equals(""))

                    message.addRecipient(Message.RecipientType.TO,

                            new InternetAddress(to.trim()));

                message.setSubject(subject);

                MimeBodyPart mbp1 =new MimeBodyPart(); // 正文

                mbp1.setContent(content, "text/html;charset=utf-8");

                Multipart mp =new MimeMultipart(); // 整个邮件:正文+附件

                mp.addBodyPart(mbp1);

                // mp.addBodyPart(mbp2);

                message.setContent(mp);

                message.setSentDate(new Date());

                message.saveChanges();

                Transport trans = session.getTransport("smtp");

                trans.send(message);

                System.out.println(message.toString());

            }catch (Exception e){

                e.printStackTrace();

                return "failure";

            }

return "success";

        }else{

return "failure";

        }

}

public static BooleanmailSetting(MailEntity mailEntity) {

//        MailOperation operation = new MailOperation();

        try {

//发送验证码

            String res = MailOperation.sendMail(mailEntity.getUser(),

                    mailEntity.getPassword(),

                    mailEntity.getHost(),

                    mailEntity.getFrom(),

                    mailEntity.getTo(),

                    mailEntity.getSubject(),
                    mailEntity.getSb().toString());
            System.out.println(res);
        }catch (Exception e) {
e.printStackTrace();

return false;

        }

    return true;

    }

    @Override
    public void run() {

        mailSetting(mailEntity);
    }

}

四、发送邮件

//发送邮件

        MailEntity mailEntity =new MailEntity();

        mailEntity.setSb(user.getCode());

        mailEntity.setTo(user.getMail());

        mailEntity.setCode(user.getCode());

        new Thread(new MailOperation(mailEntity)).start();

相关文章

  • Java实现邮箱发送邮件验证功能

    本文是说明springboot+maven完成邮箱发送验证功能。 参考:https://www.cnblogs.c...

  • # AskMe项目 邮件发送 Freemarker

    这次的邮件发送功能实现了,当用户登录时,向某个邮箱发送登录异常的邮件,还处在学习阶段,过程可供参考 发送邮箱的相关...

  • vapor 邮件发送确认码

    接上节发送邮件,这次我们结合数据库实现发送邮件验证码我们假设的是用户注册验证码: 首先邮箱唯一,其次验证码有有效期...

  • laravel 项目实现邮箱验证功能

    邮箱验证功能在很多网站都有用到,我的个人网站上也用到,邮箱验证需要用到邮件发送服务,Laravel 提供了非常简单...

  • 邮件发送注册验证码

    如何实现网站注册验证码邮件自动发送功能?如何接入邮件API接口?免费使用 网站通过接入邮件验证码接口(邮件api接...

  • 用户注册(五)

    主要实现功能 用户输入邮箱、密码和验证码,点注册按钮如果输入的不正确,提示错误信息如果正确,发送激活邮件,用户通过...

  • laravel邮箱认证

    继上文laravel用户认证,本篇将实现新用户需要邮箱验证才能注册成功 邮箱认证流程 分为两步: 发送认证邮件 —...

  • Python入门系列--邮件--day02

    参考地址: Python发送邮件给多人 Python邮件功能 - 使用163邮箱SMTP服务器发送邮件

  • flask-邮件发送

    利用flask-mail实现邮件发送 qq邮箱版 网易邮箱版

  • 密码找回业务模块

    输入个人邮箱 向sever提交发送邮件请求 server收到app请求并发送邮件 邮件内容:随机生成四位验证码、用...

网友评论

      本文标题:Java实现邮箱发送邮件验证功能

      本文链接:https://www.haomeiwen.com/subject/cedgactx.html