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

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

        <!-- mail   -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>

        <!-- mvn测试用依赖 -->
        <dependency>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.0</version>
            <type>maven-plugin</type>
        </dependency>

二、编写 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 包名需要改成文件所在包

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值