美文网首页
SpringBoot使用JavaMailSender实现邮件发送

SpringBoot使用JavaMailSender实现邮件发送

作者: 雨落地筝 | 来源:发表于2018-08-10 16:55 被阅读0次

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

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

    二、邮件发送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实现邮件发送

          本文链接:https://www.haomeiwen.com/subject/yvhlbftx.html