spring boot 邮件发送

1、在pom.xml中添加maven依赖

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2、在application.properties文件中添加邮件相关配置

#邮件配置
spring.mail.host=邮件服务器地址
spring.mail.username=用户名
spring.mail.password=密码
spring.mail.default-encoding=UTF-8
#登录服务器是否需要认证
spring.mail.properties.mail.smtp.auth=true
#SSL证书Socket工厂
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
#使用SMTPS协议465端口
spring.mail.properties.mail.smtp.socketFactory.port=465
 
#显示在收件人邮箱里面的发件人名称
spring.mail.self.username=用户名

3、编写邮件发送代码:MailSendService.java

package com.ldy.bootv2.demo.service;

import java.io.File;
import java.util.List;

import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
 
/**
 * @类名: MailSender<br>
 * @描述: 邮件发送<br>
 */
@Service
public class MailSendService {
	
	@Autowired
	JavaMailSender mailSender;
	
	//发件人名称设置
	@Value("${spring.mail.self.username}")
	private String sendUser;
	
	public void sendEmail(String toMail, String title, String content) throws MessagingException {
		final MimeMessage mimeMessage = mailSender.createMimeMessage();
		final MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
		message.setFrom(sendUser);
		message.setTo(toMail);
		message.setSubject(title);
		message.setText(content);
		 
        mailSender.send(mimeMessage);
}
	
	/**
	 * @方法名: sendSimpleMail<br>
	 * @描述: 发送普通文本格式的邮件<br> 
	 * @param toMail 收件人,多个用英文格式逗号分隔
	 * @param replyTo 抄送人,多个用英文格式逗号分隔
	 * @param title 邮件主题
	 * @param content 邮件内容
	 * @param flies 附件
	 * @throws Exception
	 */
	public void sendSimpleMail(String toMail, String replyTo, String title, String content, List<File> files) throws Exception {
		final MimeMessage mimeMessage = mailSender.createMimeMessage();
		final MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
		helper.setFrom(sendUser);
		helper.setSubject(title);
		helper.setText(content);
		
		//设置多个收件人
		String[] toAddress = toMail.split(",");
		helper.setTo(toAddress);
		
		//设置多个抄送
		if(!StringUtils.isEmpty(replyTo)) {
			//helper.setReplyTo(replyTo);
			InternetAddress[] internetAddressCC = InternetAddress.parse(replyTo);  
			mimeMessage.setReplyTo(internetAddressCC);
		}
		
		//添加附件
		if(null != files) {
			for (File file : files) {
				helper.addAttachment(file.getName(), file);
			}
		}
		
		mailSender.send(mimeMessage);
	}
	
	/**
	 * @方法名: sendHtmlMail<br>
	 * @描述: 发送HTML格式的邮件<br>
	 * @param toMail 收件人,多个用英文格式逗号分隔
	 * @param replyTo 抄送人,多个用英文格式逗号分隔
	 * @param title 邮件主题
	 * @param htmlContent 邮件内容
	 * @param files 附件
	 * @throws Exception
	 */
	public void sendHtmlMail(String toMail, String replyTo, String title, String htmlContent, List<File> files) throws Exception {
		final MimeMessage mimeMessage = mailSender.createMimeMessage();
		final MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
		helper.setFrom(sendUser);
		helper.setSubject(title);
		helper.setText(htmlContent, true);
		
		//设置多个收件人
		String[] toAddress = toMail.split(",");
		helper.setTo(toAddress);
		
		//设置多个抄送
		if(!StringUtils.isEmpty(replyTo)) {
			//helper.setReplyTo(replyTo);
			InternetAddress[] internetAddressCC = InternetAddress.parse(replyTo);  
			mimeMessage.setRecipients(RecipientType.CC,internetAddressCC);
		}
		
		//添加附件
		if(null != files) {
			for (File file : files) {
				helper.addAttachment(file.getName(), file);
			}
		}
		
		mailSender.send(mimeMessage);
	}
	
}

完成上面的代码后,在发送邮件的java类里面注入MailSendService,直接调用对应的方法即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Spring Boot邮件发送功能来发送电子邮件。首先,你需要在项目的依赖中添加 Spring Boot 的邮件依赖。在 `pom.xml` 文件中添加以下代码: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` 接下来,你需要在配置文件中配置邮件相关的属性。在 `application.properties`(或 `application.yml`)文件中添加以下属性: ```properties # 邮件服务器主机 spring.mail.host=your-mail-host # 邮件服务器端口 spring.mail.port=your-mail-port # 邮件发送者用户 spring.mail.username=your-username # 邮件发送者密码 spring.mail.password=your-password # 邮件发送者地址 spring.mail.from=your-email-address ``` 现在,你可以在你的代码中使用 `JavaMailSender` 接口来发送邮件。你可以注入 `JavaMailSender` 接口的实例,并使用 `send()` 方法发送邮件。以下是一个简单的示例: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; @Service public class EmailService { @Autowired private JavaMailSender javaMailSender; public void sendEmail(String to, String subject, String text) { SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(text); javaMailSender.send(message); } } ``` 你可以在需要发送邮件的地方调用 `sendEmail()` 方法,并传入收件人地址、邮件主题和邮件内容。 这是使用 Spring Boot 发送邮件的基本步骤。你可以根据自己的需求进行进一步的定制和配置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值