温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么实现springboot邮箱发送

发布时间:2021-11-02 14:07:49 来源:亿速云 阅读:150 作者:iii 栏目:编程语言

这篇文章主要介绍“怎么实现springboot邮箱发送”,在日常操作中,相信很多人在怎么实现springboot邮箱发送问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么实现springboot邮箱发送”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

步骤一:添加依赖,在pom.xml文件中加入spring-boot-starter-mail依赖

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

步骤二:获取各大邮箱授权

    例如:获取QQ邮箱授权

        QQ邮箱->设置->账户->POP3/SMTP服务:开启服务后会获得QQ的授权码. 

# JavaMailSender 邮件发送的配置

spring.mail.host=smtp.qq.com
spring.mail.username=用户qq邮箱
#QQ邮箱的授权码
spring.mail.password=授权码
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.default-encoding=UTF-8

第三步:实现邮件发送功能

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

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

/**
* @author XXXXXX
*
*/
@Service
public class MailSendService
{
@Autowired
private JavaMailSender mailSender;

/**日志打印.*/
private Logger logger = Logger.getLogger(MailSendService.class);

/**
* 发送简单邮件
* @param fromPos 发送地址
* @param toPos 目的地址
* @param subject 邮件主题
* @param text 邮件内容
* @return 发送是否成功
*/
public boolean sendSimpleMail(String fromPos, String toPos, String subject, String text){
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom(fromPos);
//可添加多个目的地址
msg.setTo(toPos);
msg.setSubject(subject);
msg.setText(text);
//msg.setBcc(bcc) 密送地址
//msg.setCc(cc) 抄送地址
try
{
mailSender.send(msg);
}
catch (Exception e)
{
logger.error("发送简单邮件失败.", e);
return false;
}
return true;
}

/**
* 发送带有附件的邮件
* @param fromPos 发送地址
* @param toPos 目的地址
* @param subject 邮件主题
* @param file 附件
* @return 发送是否成功
*/
public boolean sendAttachFileMail(String fromPos, String toPos, String subject,             String text, FileSystemResource file){
MimeMessage msg = mailSender.createMimeMessage();
try
{
//MimeMessageHelper构造器,如果要发送附件邮件,必须指定multipart参数为true
MimeMessageHelper helper  = new MimeMessageHelper(msg, true);
helper.setFrom(fromPos);
helper.setTo(toPos);
helper.setSubject(subject);
helper.setText(text);
helper.addAttachment(file.getFilename(), file);
mailSender.send(msg);
}
catch (MessagingException e)
{
logger.error("发送附件邮件失败.", e);
return false;
}

return true;
}

/**
* 发送静态资源的文件,如:图片
* @param fromPos 发送地址
* @param toPos 目的地址
* @param subject 邮件主题
* @param file 附件
* @return 发送是否成功
*/
public boolean sendInlineMail(String fromPos, String toPos, String subject,             FileSystemResource file){
MimeMessage msg = mailSender.createMimeMessage();
try
{
//MimeMessageHelper构造器,如果要发送附件邮件,必须指定multipart参数为true
MimeMessageHelper helper  = new MimeMessageHelper(msg, true);
helper.setFrom(fromPos);
helper.setTo(toPos);
helper.setSubject(subject);
helper.setText("<html><body>静态资源:<img src='cid:pic' /></body></html>", true);
helper.addInline("pic", file);
mailSender.send(msg);
}
catch (MessagingException e)
{
logger.error("发送附件邮件失败.", e);
return false;
}

return true;
}


}

到此,关于“怎么实现springboot邮箱发送”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI