SpringBoot使用JavaMailSender实现邮件发送

本文采用的是Spring的JavaMailSender接口实现邮件发送与开发。这是一个很通用的工具接口,尤其是在springboot中只需要引入一个maven依赖,无需任何配置就可以从容地进行开发工作,简单快捷高效。

一、在springboot的pom.xml中加入maven依赖

SpringBoot使用JavaMailSender实现邮件发送_第1张图片

二、邮件发送service层接口

/**

 * 邮件Service

 *@author Segoul

 */

public interface MailService {

       /**

        * 发送HTML页面的邮件(包括普通邮件)

        *@param mailTo  邮件接收地址

        *@param title  邮件标题

        *@param content  邮件内容

        */

       void sendHtmlMail(StringmailTo, Stringtitle, Stringcontent);


       /**

        * 发送带有附件的邮件

        *@param mailTo  邮件接收地址

        *@param title  邮件标题

        *@param content  邮件内容

        *@param filePath  文件地址

        *@param fileName  文件名称

        *@param fileType  文件类型后缀

        */

       void sendAttachMail(StringmailTo,Stringtitle,Stringcontent,

                        StringfilePath,StringfileName,StringfileType);

}


三、邮件发送service实现

import com.zlwon.rpc.MailService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.core.io.FileSystemResource;

import org.springframework.mail.javamail.JavaMailSender;

import org.springframework.mail.javamail.MimeMessageHelper;

import org.springframework.stereotype.Service;

import javax.mail.internet.MimeMessage;

import java.io.File;

/**

 * 邮件ServiceImpl

 *@author Segoul

 */

@Service

public class MailServiceImpl implements MailService {

       @Autowired

       private JavaMailSender mailSender;


       @Value("${spring.mail.username}")

       private String sender; //发送者


       /**

        * 发送HTML页面的邮件(包括普通邮件)

        *@param mailTo  邮件接收地址

        *@param title  邮件标题

        *@param content  邮件内容

        */

       public void sendHtmlMail(StringmailTo, Stringtitle, Stringcontent){

             //配置邮件基本信息

             MimeMessage message = null;

             try{

                   message = mailSender.createMimeMessage();

                    MimeMessageHelper helper = new MimeMessageHelper(message,true);


                   helper.setFrom(sender);

                   helper.setTo(mailTo);

                   helper.setSubject(title);

                   helper.setText(content,true);

             }catch(Exceptione) {

                   e.printStackTrace();

             }


             //发送邮件

             mailSender.send(message);

       }


       /**

        * 发送带有附件的邮件

        *@param mailTo  邮件接收地址

        *@param title  邮件标题

        *@param content  邮件内容

        *@param filePath  文件地址

        *@param fileName  文件名称

        *@param fileType  文件类型后缀

        */

       public void sendAttachMail(StringmailTo,Stringtitle,Stringcontent,

                StringfilePath,StringfileName,StringfileType){

             //配置邮件基本信息

             MimeMessage message = null;

             try{

                 message = mailSender.createMimeMessage();

                 MimeMessageHelper helper = new MimeMessageHelper(message,true);

                 helper.setFrom(sender);

                 helper.setTo(mailTo);

                 helper.setSubject(title);

                 helper.setText(content,true);

                 FileSystemResource file = new FileSystemResource(new File(filePath));

                 helper.addAttachment(fileName+"."+fileType,file);

             }catch(Exceptione) {

                 e.printStackTrace();

             }


             //发送邮件

            mailSender.send(message);

       }

}

你可能感兴趣的:(SpringBoot使用JavaMailSender实现邮件发送)