Java实现邮件发送验证码等信息

首先需要准备的东西 我这里以QQ邮箱为例:

点击设置->账户,找到这个页面

 

 

 拿到授权码 并保存好

 

 

然后代码如下:

package com.assetManage.tusdt.utils;

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

public class MailUtil {
    public static void main(String[] args) {
        sendMail("邮件接收者@qq.com","发送的信息");
    }

    /**
     * 外网邮件发送
     *
     * @param to
     * @param code
     */
    public static void sendMail(String to, String code) {


        // Session对象:
        Properties props = new Properties();
        props.setProperty("mail.smtp.host", "smtp.qq.com"); // 设置主机地址
        // smtp.163.com
        // smtp.qq.com
        // smtp.sina.com
        props.setProperty("mail.smtp.auth", "true");// 认证
        // 2.产生一个用于邮件发送的Session对象
        Session session = Session.getInstance(props);

        // Message对象:
        Message message = new MimeMessage(session);
        // 设置发件人:
        try {

            // 4.设置消息的发送者
            Address fromAddr = new InternetAddress("邮件发送者@qq.com");
            message.setFrom(fromAddr);

            // 5.设置消息的接收者 nkpxcloxbtpxdjai
            Address toAddr = new InternetAddress(to);
            // TO 直接发送 CC抄送 BCC密送
            message.setRecipient(MimeMessage.RecipientType.TO, toAddr);

            // 6.设置主题
            message.setSubject("来自*****系统的验证码");
            // 7.设置正文
            message.setContent("这里是邮件的正文信息\n\n您的验证码为:" + code, "text/html;charset=UTF-8");

            // 8.准备发送,得到火箭
            Transport transport = session.getTransport("smtp");
            // 9.设置火箭的发射目标
            //transport.connect("smtp.163.com", "发送者@163.com", "biaobaiqiang123");
            transport.connect("smtp.qq.com", "发送者@qq.com", "jxzkgctb*******");//jxzk..这个就是你的授权码
            // 10.发送
            transport.sendMessage(message, message.getAllRecipients());

            // Transport对象:
           // Transport.send(message);
        } catch (AddressException e) {
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        }

    }
}

 

上面需要修改邮件发送者的邮箱和授权码,邮件接收者,邮件内容, 

 

posted @ 2020-06-11 10:57  小尾学长  阅读(968)  评论(0编辑  收藏  举报