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