这是我参与11月更文挑战的第20天,活动详情查看:2021最后一次更文挑战
了解邮件服务器,传输协议
邮件服务器与传输协议: 要在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。
SMTP服务器地址: 一般是 smtp.xxx.com,比如163邮箱是smtp.163.com,qq邮箱是smtp.qq.com,这里用的是 qq 的邮箱。
SMTP协议: 通常处理用户邮件发送请求的服务器称之为SMTP服务器(邮件发送服务器)。
POP3协议: 通常把处理用户邮件接收请求的服务器称之为POP3服务器(邮件接收服务器)。
发送QQ邮箱实现
QQ 邮箱开启 POP3/SMTP 服务,获取 QQ 邮箱授权码
导入相关 jar 包依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>5.3.8</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
发送邮件工具类,只能发送简单文本邮件
package utils;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import java.util.Properties;
public class EmailUtils {
private static final JavaMailSenderImpl sender = new JavaMailSenderImpl();
static {
//服务器
sender.setHost("smtp.qq.com");
//协议
sender.setProtocol("smtps");
//端口号
sender.setPort(465);
//邮箱账号
sender.setUsername("*********@qq.com");
//邮箱授权码
sender.setPassword("************");
//编码
sender.setDefaultEncoding("Utf-8");
Properties p = new Properties();
p.setProperty("mail.smtp.ssl.enable", "true");
sender.setJavaMailProperties(p);
}
/**
* 发送邮件
*
* @param subject
* @param text
* @return
*/
public static boolean sendEmail(String subject, String text) {
try {
SimpleMailMessage message = new SimpleMailMessage();
//设置邮件标题
message.setSubject(subject);
//设置邮件正文
message.setText(text);
//设置邮件发送人
message.setFrom("************");
//设置邮件接收人
message.setTo("************");
//发送邮件
sender.send(message);
return true;
} catch (Exception e) {
return false;
}
}
}
测试类
import org.junit.Test;
import utils.EmailUtils;
public class MailTest {
@Test
public void send() {
EmailUtils.sendEmail("test", "test");
}
}
发送成功