Maven项目 邮件验证码 的简单实现

一、pom.xml 文件添加如下依赖

        
        
            javax.mail
            mail
            1.4.7
        

        
        
            org.apache.maven.plugins
            maven-surefire-plugin
            2.22.0
            maven-plugin
        

二、编写 MailSender.java 的 component 文件

package com.netease.enzo.component;

import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.springframework.stereotype.Component;


/**
 * 提供邮件发送服务
 */
@Component
public class MailSender {
    private static String FromEmail = "你的邮箱@sina.com";
    private static String EmailPassword = "你的邮箱密码";
    private static String EmailSMTPhost = "smtp.sina.com";
    
    public static void sendMail(String toEmail , String identifyCode){
        Properties props = new Properties();
        
        \\设置邮件Debug功能
        props.setProperty("smtp.debug", "true");

        \\设置是否开启邮件认证功能
        props.setProperty("mail.smtp.auth", "true");

        \\设置SMTP端口
        props.put("mail.smtp.port", 25);

        \\设置邮件传输的协议
        props.setProperty("mail.transport.protocol", "smtp");

        \\设置发送验证邮件的邮箱
        props.setProperty("mail.smtp.host", EmailSMTPhost);

        Session session = Session.getInstance(props);
        session.setDebug(true);

        Message msg = new MimeMessage(session);
        try {
			msg.setSubject("邮件主题");
			msg.setText(identifyCode);
			msg.setSentDate(new Date());
			msg.setFrom(new InternetAddress(FromEmail,"你想要的发送昵称","UTF-8"));

			Transport transport = session.getTransport();
			transport.connect(EmailSMTPhost,FromEmail,EmailPassword);

			transport.sendMessage(msg, new Address[] {new InternetAddress(toEmail)});

			transport.close();
		} catch (UnsupportedEncodingException | MessagingException e) {
			e.printStackTrace();
		}
    }
}

三、编写 MailTest.java 对邮件发送进行测试

package com.netease.enzo.test;

import com.mobileai.dxc.component.MailSender;

import org.junit.Test;

public class MailTest{

    @Test
    public void testMail(){
        String toEmail = "你需要发送到的邮箱地址";
        String identifyCode = "验证码";
        
        \\调用静态方法
        MailSender mSender = new MailSender();
        mSender.sendMail(toEmail, identifyCode);
    }
}

四、在控制台输入

mvn test -Dtest=MailTest

五、附录

        1、package 包名需要改成文件所在包

你可能感兴趣的:(java,web)