private static final String EMAIL_KEY = “16位的授权码”;
public static void sendEmail(EmailModel emailModel) throws Exception {
Properties prop = new Properties();
prop.setProperty(“mail.host”, “smtp.qq.com”);
// 设置QQ邮件服务器
prop.setProperty(“mail.transport.protocol”, “smtp”); // 邮件发送协议
prop.setProperty(“mail.smtp.auth”, “true”); // 需要验证用户名密码
// 关于QQ邮箱,还要设置SSL加密,加上以下代码即可
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put(“mail.smtp.ssl.enable”, “true”);
prop.put(“mail.smtp.ssl.socketFactory”, sf);
//使用JavaMail发送邮件的5个步骤
//创建定义整个应用程序所需的环境信息的 Session 对象
Session session = Session.getDefaultInstance(prop, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
//发件人邮件用户名、授权码
return new PasswordAuthentication(EMAIL_SEND, EMAIL_KEY);
}
});
//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
//2、通过session得到transport对象
Transport ts = session.getTransport();
//3、使用邮箱的用户名和授权码连上邮件服务器
ts.connect(“smtp.qq.com”, EMAIL_SEND, EMAIL_KEY);
//4、创建邮件
//创建邮件对象
MimeMessage message = new MimeMessage(session);
//指明邮件的发件人
message.setFrom(new InternetAddress(EMAIL_SEND));
//指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
message.setRecipient(Message.RecipientType.TO, new InternetAddress(emailModel.getEmailReciver()));
//邮件的标题
message.setSubject(emailModel.getTitle());
//邮件的文本内容
message.setContent(emailModel.getMessage(), “text/html;charset=UTF-8”);
//5、发送邮件
ts.sendMessage(message, message.getAllRecipients());
// re=ts
ts.close();
}
}
不会获取邮箱检验码的点击此处
emailModel
public class EmailModel {
private String title;//邮件标题
private String message;//邮件内容
private String emailReciver;//邮件的收件人
public EmailModel(String title, String message, String emailReciver) {
this.title = title;
this.message = message;
this.emailReciver = emailReciver;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getEmailReciver() {
return emailReciver;
}
public void setEmailReciver(String emailReciver) {
this.emailReciver = emailReciver;
}
}
如何使用呢,我们可以创建一个工具类MailUtils
public class MailUtils {
private static final JavaSocket javaSocket = new JavaSocket();
/**
-
发送邮件
-
发送成功:true
-
发送失败:fasle
-
@param title 邮件主题
-
@param message 邮件内容
-
@return
*/
public static Boolean senEmail(String title, String message, String emailReceiver) {
Boolean re = false;
try {
javaSocket.sendEmail(new EmailModel(title, message, emailReceiver));
re = true;
} catch (Exception e) {
re = false;
e.printStackTrace();
}
return re;
}
public static void main(String[] args) {
Boolean re = senEmail(“测试数据”, “测试内容”, “649623649”);
System.out.println(re);
}
}
上面只是实现了发送纯文本类型的邮件,更多类型的邮件服务可以参考以下方式:
import java.io.File;
import javax.mail.Transport;
import javax.mail.internet.MimeMessage;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.test.context.junit4.SpringRunner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SocketTest {
@Autowired
private JavaMailSenderImpl mailSender;
private Logger logger = LoggerFactory.getLogger(this.getClass());
/**
- 发送包含简单文本的邮件
*/
@Test
public void sendTxtMail() {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
// 设置收件人,寄件人
String receiver=“177@qq.com”;
simpleMailMessage.setTo(new String[] {receiver});
simpleMailMessage.setFrom(“176@163.com”);
simpleMailMessage.setSubject(“Spring Boot Mail 邮件测试【文本】”);
simpleMailMessage.setText(“这里是一段简单文本测试邮件。!!!!!请忽略!!!!!”);
// 发送邮件
mailSender.send(simpleMailMessage);
logger.info(“邮件已经发送到账户”+receiver);
System.out.println(“邮件已发送”);
}
/**
-
发送包含HTML文本的邮件
-
@throws Exception
*/
@Test
public void sendHtmlMail() throws Exception {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);
String receiver=“177@qq.com”;//接收者账户
String postCount=“176@163.com”;//发送者账户
mimeMessageHelper.setTo(receiver);
mimeMessageHelper.setFrom(“176@163.com”);
mimeMessageHelper.setSubject(“Spring Boot Mail 邮件测试【HTML】”);
StringBuilder sb = new StringBuilder();
sb.append(“”);
sb.append(“
spring 邮件测试
hello!this is spring mail test。
”);sb.append(“”);
// 启用html
mimeMessageHelper.setText(sb.toString(), true);
// 发送邮件
mailSender.send(mimeMessage);
logger.info(“邮件已经从”+postCount+“->发送到账户”+receiver);
System.out.println(“邮件已发送”);
}
/**
-
发送包含内嵌图片的邮件
-
@throws Exception
*/
@Test
public void sendAttachedImageMail() throws Exception {
MimeMessage mimeMessage = mailSender.createMimeMessage();
// multipart模式
最后
小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。
关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。
这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!
ntln(“邮件已发送”);
}
/**
-
发送包含内嵌图片的邮件
-
@throws Exception
*/
@Test
public void sendAttachedImageMail() throws Exception {
MimeMessage mimeMessage = mailSender.createMimeMessage();
// multipart模式
最后
小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。
关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。
[外链图片转存中…(img-9rQ4Nest-1718720145715)]
这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!