springBoot集成javaMail

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)文件,每一个分支里面会有详细的介绍。

image

这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(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)!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值