0、相关协议

1、SpringBoot整合JavaMail

STEP1:加入JavaMail起步依赖

<dependency&gt;    
	<groupId&gt;org.springframework.boot</groupId&gt;    
	<artifactId&gt;spring-boot-starter-mail</artifactId&gt;
</dependency&gt;

STEP2:相关配置:

spring:  
  mail:    
    host: smtp.qq.com  # 发邮件smtp协议,后面.运营
    username: *********@qq.com    
    password: *********  # 不是邮箱密码,是下面获取一个授权码

注意password,不是邮箱登录密码,是一个授权码,获取方式,在QQ邮箱中是【设置】-【邮箱账号】-【开启

在这里插入图片描述

发送验证短信

在这里插入图片描述

然后在上个页面保存更改,(记得点保存更改复制这个授权码就是password的值,即可配置邮件客户端成功

在这里插入图片描述
其他类型的邮箱获取方式类似,比如163:

在这里插入图片描述

STEP3:注入JavaMailSender对象定义发送邮件的接口

@Autowired    
private JavaMailSender javaMailSender;   

整合完成,下面按简单邮件和复杂邮件来写。简单即普通文本复杂超链接附件等。

2、发送简单邮件

以下用QQ邮箱给163邮箱发一个简单文本的邮件:

//定义接口
public interface SendMailService{

	void sendMail();
}
//实现

@Service
public class SendMailServiceImpl implements SendMailService { 

	@Autowired    
	private JavaMailSender javaMailSender;   

	//这些值也可以不硬编码,写在配置文件中@Value取值
	private String from = "********@qq.com";	 // 发送
	private String to = "********@126.com";	 // 接收
	private String subject = "测试邮件";		 // 邮件主题   
	private String text = "测试邮件正文";	 	// 邮件内容
		    
	@Override    
	public void sendMail() {       
		SimpleMailMessage mailMessage = new SimpleMailMessage();  
		//mailMessage.setFrom(from); 
		//from后面加个名字比如xxx公司,不然发送发一串邮箱数字,谁知道你是谁      
		mailMessage.setFrom(from + "别名");   
		//这里的to是个可变长String,即可发送多人
		mailMessage.setTo(to);        
		mailMessage.setSubject(subject);        
		mailMessage.setText(text);
		//mailMessage.setSendDate();        //设置发送时间
		//其他设置自行set
		javaMailSender.send(mailMessage);     //发送
	}
	
}

写个测试类看下效果

在这里插入图片描述
联不通:

在这里插入图片描述

我在公司内网写的,网络不通,不是25端口被禁的原因,在外网可以pingsmtp.qq.com这个host的。先跳过了。

3、发送复杂邮件

正文为html比如超链接或者图片。以及发送附件

//超链接
private String text = "<a href='https://www.baidu.com/'>百度</a>";

//图片
private String img = "<img src='https://pic35.photophoto.cn/20150511/0034034892281415_b.jpg' />";

@Override
public void sendMail() {    
	try {        
		MimeMessage mimeMessage = javaMailSender.createMimeMessage(); 
		//第二个参数,即是否允许添加部件
		//我后面要添加各种附件,所以这里必须是true       
		MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);       
		mimeMessageHelper.setFrom(from);       
		mimeMessageHelper.setTo(to);        
		mimeMessageHelper.setSubject(subject);
		//不加true默认当普通文本true即按html解析        
		mimeMessageHelper.setText(text,true);  
		
		//添加附件
		File file1 = new File("logo.png"); 
		File file2 = new File("D:\myboot.jar"); 
		//如果是手写文件名,记得添加个后缀比如.png,方便在邮件里可预览 
		mimeMessageHelper.addAttachment(file1.getName(),file1);  
		mimeMessageHelper.addAttachment("一个jar包.jar",file2);    
		javaMailSender.send(mimeMessage);    
	} catch (Exception e) {       
		e.printStackTrace();   
	}
}

注意点:

原文地址:https://blog.csdn.net/llg___/article/details/133593862

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_42686.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注