10.基于Spring的Maven项目实现发送邮件功能

问题分析

现在我们有这样一个需求,就是当我们系统出现问题或bug的时候,让系统通过邮件发送日志信息给相关人员,那么此时,我们就需要实现一个让系统发送邮件的功能

解决步骤

1.pom jar包导入

  javax.mail
  mail
  1.4.1
2.xml配置

application-mail.xml配置





    
    
        
        

        
        
        
        
        
        
            
                
                true
                
                true
            
        
    

3.交给Spring管理

其实就是将发送邮件的xml配置文件引入到spring的配置文件中


这里需要说明一下,classpath后面是跟的我的一个关于实现这些功能专门的配置文件的文件夹,然后通配文件夹里面所有.xml的配置文件,当然,也可以这样写

这样配置也完全没有任何问题,看个人喜好哈,只是我喜欢把这些相关的配置文件同一放在一个文件夹里面,然后统一一起引入

4.代码实现

需要说明一下,邮件分为两种,一种是普通邮件,即文本信息,不含html代码或附件,另一个种就是包含html代码和附件的,这两种方式相同的是都需要在发送邮件的类里面引入发送邮件的核心对象

@Autowired
private JavaMailSender javaMailSender;
4.1 普通邮件

需要注意的是这里发送邮件的地址必须是applicaiton-mail.xml中所配置的username

    //获取邮箱对象
    SimpleMailMessage message = new SimpleMailMessage();

    //设置由哪个邮箱发出 这里自己定义
    message.setFrom("[email protected]");

    //设置标题
    message.setSubject("测试来了哦");
    //设置发送内容
    message.setText("我来了,你来了没");

    //设置发送地址 -- 发给谁
    message.setTo("[email protected]");

    //发送邮件
    javaMailSender.send(message);
4.1 复杂邮件
    //创建一个空邮件对象
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();

    //创建发送复杂邮件的工具类,并传入空邮件,设置是否有附件为true和编码集
    MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");

    //设置发送邮件的邮箱地址,必须和xml里面配置一致
    messageHelper.setFrom("[email protected]");

    //设置邮件标题
    messageHelper.setSubject("复杂邮件标题,就是我");

    //设置邮件里面的普通内容
    messageHelper.setText("我是复杂邮件,我又来了");

    //设置复杂邮件的html代码,并设置是否为html为true
    messageHelper.setText("

我是复杂邮件的html代码,能实现不?

",true); //添加发送邮件的附件,是一个图片 messageHelper.addAttachment("hah.png",new File("img/1.png")); //添加附件文件 messageHelper.addAttachment("mf文件",new File("s/login.jsp")); //抄送给谁 这里的参数可以是数组,即多个接收对象 messageHelper.setCc("[email protected]"); //发送给谁 这里的参数可以是数组,即多个接收对象 messageHelper.setTo("[email protected]"); //发送邮件 javaMailSender.send(mimeMessage);
5.邮箱配置

注意,大家不要以为现在就可以直接发送了,还需要大家花一毛钱才行,这个钱不是给我哈,也不是给邮箱或浏览器,而是给到运营商
,这里就以QQ邮箱为例:
第一步,点击邮箱首页左上角的设置
10.基于Spring的Maven项目实现发送邮件功能_第1张图片

第四步,会让你发送短信,这时候就可以直接发送短信,这里就到了收钱的地方,看吧,不是我收哈
10.基于Spring的Maven项目实现发送邮件功能_第2张图片
最后,当发送成功之后,就会收到一个授权码,记住它,然后填入你的application-mail.xml里面的password栏中,然后再运行我们的测试方法即可

你可能感兴趣的:(java,html)