投稿 资料上传 搜索
您现在的位置是: 首页 > 文章 > 正文

springboot邮箱发送案例

介绍

    springboot实现邮件发送功能很简单,因为springboot默认增加邮件功能的实现,只需要引入spring-boot-starter-mail依赖,就可以简单实现邮件发送功能。在当下发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息都需要用到。本文就争对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;
}


}

转载于:

文章标签:
阿里云服务器采购季
给作者打赏,鼓励TA抓紧创作!
评论