zoukankan      html  css  js  c++  java
  • SSM整合框架实现发送邮件功能

    1.导入发送邮件的依赖

      <!--    发送邮件jar包-->
        <!--spring支持-->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context-support</artifactId>
          <version>5.0.0.RELEASE</version>
        </dependency>
        <!--邮件发送-->
        <dependency>
          <groupId>com.sun.mail</groupId>
          <artifactId>javax.mail</artifactId>
          <version>1.6.1</version>
        </dependency>

    2.发送邮件的账号开启POP3/SMTP/IMAP/SMIP服务

    3.spring-mybatis.xml配置文件中添加发送邮件所需的配置信息

     <!--邮件配置-->
        <context:property-placeholder location="classpath:email.properties" ignore-unresolvable="true"/>
    
        <!--配置邮件接口-->
        <bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
            <property name="host" value="${mail.smtp.host}"/>
            <property name="username" value="${mail.smtp.username}"/>
            <property name="password" value="${mail.smtp.password}"/>
            <property name="defaultEncoding" value="${mail.smtp.defaultEncoding}"/>
            <property name="javaMailProperties">
                <props>
                    <prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
                    <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop>
                </props>
            </property>
        </bean>

    4.创建email.properties      接上 配置邮件接口  

    #服务器主机名 smtp.xx.com
    mail.smtp.host=smtp.qq.com
    mail.smtp.username=开启服务的邮箱号@qq.com
    #密码/客户端授权码
    mail.smtp.password=开启服务的邮箱号的密钥
    #编码字符
    mail.smtp.defaultEncoding=utf-8
    #是否进行用户名密码校验
    mail.smtp.auth=true
    #设置超时时间
    mail.smtp.timeout=20000

    5.在控制层测试

    package com.mvo.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;
    
    /**
     * 测试邮件发送controller
     */
    @Controllerpublic class SendMailController {
        @Autowired
        private JavaMailSender javaMailSender;//在spring中配置的邮件发送的bean
    
        @RequestMapping("sendMailTest")
        public Object sendMailTest(){
            MimeMessage mMessage=javaMailSender.createMimeMessage();//创建邮件对象
            MimeMessageHelper mMessageHelper;
            Properties prop = new Properties();
            String from;
            try {
                //从配置文件中拿到发件人邮箱地址
                prop.load(this.getClass().getResourceAsStream("/email.properties"));
                from = prop.get("mail.smtp.username")+"";
                mMessageHelper=new MimeMessageHelper(mMessage,true);
                mMessageHelper.setFrom(from);//发件人邮箱
                mMessageHelper.setTo("收件人邮箱号@qq.com");//收件人邮箱
                mMessageHelper.setSubject("ssm框架测试邮件发送");//邮件的主题
                mMessageHelper.setText("<p>这是使用spring,springmvc,mybatis整合框架的邮件功能发送的一封邮件,测试</p>",true);//邮件的文本内容,true表示文本以html格式打开
                File file=new File("C:\Users\lcl\Pictures\Saved Pictures\blog.csdn.net_Mr__Viking_article_details_81090046.png");//在邮件中添加一张图片 
                FileSystemResource resource=new FileSystemResource(file);
                //mMessageHelper.addInline("fengye", resource);//这里指定一个id,在上面引用  
                //mMessageHelper.addAttachment("QQ截图20200721221932.png", resource);//在邮件中添加一个附件  
                javaMailSender.send(mMessage);//发送邮件
            } catch (MessagingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return "发送成功";
        }
    }

     --》启动项目 --》输入地址测试

    6.效果图

  • 相关阅读:
    C#使用Task创建任务
    Java编程思想学习(二)一切都是对象
    Java编程思想学习(一)对象导论中多态的理解
    【源码】sql__备份数据库1__bak数据库__存储过程
    【源码】自己写的Msg
    【情感】女人永远是期望男人主动的
    sql函数 手机品牌
    【源码】继承pagebase 权限判断
    【源码】Sql Server 2005 如何自动备份数据库
    sql 将smslog拆分3天3月内,3月外表
  • 原文地址:https://www.cnblogs.com/lin02/p/13358158.html
Copyright © 2011-2022 走看看