SSM的spring发送邮件

简介:近期公司项目需要做发送邮件这一功能,为此进行研究一番,以下是具体操作。
1.导入jar包,在spring项目中添加以下两个jar包,使用maven直接配置依赖信息



      org.springframework
      spring-context-support
      5.0.0.RELEASE



      com.sun.mail
      javax.mail
      1.6.1

2.配置邮件服务器等信息:
先在邮箱中设置开启smtp和pop3服务然后拿到授权码


image.png

3.编写mail.properties文件

#服务器主机名 smtp.xx.com
mail.smtp.host=smtp.163.com
[email protected]
#密码/客户端授权码
mail.smtp.password=XXXXXXXXX
#编码字符
mail.smtp.defaultEncoding=utf-8
#是否进行用户名密码校验
mail.smtp.auth=true
#设置超时时间
mail.smtp.timeout=20000

4.配置spring-mybatis.xml,在配置文件中导入properties文件的属性。
ignore-unresolvable="true"属性是配置文件中存在多个property-placeholder时出现解析不了的占位符进行忽略掉。

      

5.注入一个邮件发送的bean接口



     
     
     
     
     
         
             ${mail.smtp.auth}
             ${mail.smtp.timeout}
         
     

6.编写一个测试类来测试一下:

package com.ssm.controller;
 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.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
 /** * created by viking on * 测试邮件发送controller
 */
@RestController
@RequestMapping("mail")
public class SendMailController {
   @Autowired
    private JavaMailSender javaMailSender;//在spring中配置的邮件发送的bean
   @RequestMapping("send")
    public Object sendMail03(){
  MimeMessage mMessage=javaMailSender.createMimeMessage();//创建邮件对象
        MimeMessageHelper mMessageHelper;
        Properties prop = new Properties();
        String from;
        try {
            //从配置文件中拿到发件人邮箱地址
            prop.load(this.getClass().getResourceAsStream("/config/mail.properties"));
            from = prop.get("mail.smtp.username")+"";
            mMessageHelper=new MimeMessageHelper(mMessage,true);
            mMessageHelper.setFrom(from);//发件人邮箱
            mMessageHelper.setTo("[email protected]");//收件人邮箱
            mMessageHelper.setSubject("Spring的邮件发送");//邮件的主题
            mMessageHelper.setText("

这是使用spring的邮件功能发送的一封邮件


" + "打开
" + "",true);//邮件的文本内容,true表示文本以html格式打开 File file=new File("F:/img/xx.png");//在邮件中添加一张图片 FileSystemResource resource=new FileSystemResource(file); mMessageHelper.addInline("fengye", resource);//这里指定一个id,在上面引用 mMessageHelper.addAttachment("xx.png", resource);//在邮件中添加一个附件 javaMailSender.send(mMessage);//发送邮件 } catch (MessagingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return "发送成功"; } }

7.运行测试下:


image.png

参考此文章
https://blog.csdn.net/Mr__Viking/article/details/81090046
以下扩展:
https://blog.csdn.net/qq_24047659/article/details/88378645?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-6&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-6

https://blog.csdn.net/wang_97/article/details/79851437?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-20&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-20

你可能感兴趣的:(SSM的spring发送邮件)