栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot实现邮箱简单内容发送(可以自己进行邮箱维护并发送多个人员)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot实现邮箱简单内容发送(可以自己进行邮箱维护并发送多个人员)

一、pom.xml


	
	
	
    
        org.springframework.boot
        spring-boot-starter-mail
    

二、配置yml文件(这一步仅是为了能使email这个包生效,发送的邮箱可以根据下面的实现方法自行调整)
1、QQ邮箱配置(支持SSL安全发送):

#邮箱配置
spring:
  mail:
    default-encoding: UTF-8
    host: smtp.qq.com
    username: 邮箱
    password: 授权码
    # 端口号465或587,但是经过我的测试,发现只有587能用
    port: 587
    # 使用SSL方式
    properties:
      mail:
        smtp:
          socketFactory:
            class: javax.net.ssl.SSLSocketFactory

2、163邮箱配置(支持SSL安全发送):

spring:
  mail:
    default-encoding: UTF-8
    host: smtp.163.com
    username: 邮箱
    password: 授权码
    # 端口号465或944,但是经过我的测试,发现两个都能用
    port: 944
    # 使用SSL方式
    properties:
      mail:
        smtp:
          socketFactory:
            class: javax.net.ssl.SSLSocketFactory

qq邮箱和163邮箱授权码跟端口如何获取跟查看,请看本文章最后的参考链接

三、实现代码(Controller层)

public JavaMailSenderImpl getJavaMailSender(Map map) {
        // 邮件发送者
        JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
        javaMailSender.setHost(map.get("EMAILTYPE").toString());
        //5、SMTP服务器: 默认端口 163邮箱与qq邮箱端口不一样
        if (map.get("EMAILTYPE").toString().equals("smtp.163.com")){
            javaMailSender.setPort(25);
        }else if (map.get("EMAILTYPE").toString().equals("smtp.qq.com")){
            javaMailSender.setPort(587);
        }

        //6、//发送邮件协议名称
        javaMailSender.setProtocol("smtp");
        //7、编码格式
        javaMailSender.setDefaultEncoding("UTF-8");
        javaMailSender.setUsername(map.get("EMAILURL").toString());
        javaMailSender.setPassword(map.get("EMAILPWD").toString());
        //8、创建连接对象,连接到邮箱服务器
        Properties properties = new Properties();
        //发送服务器需要身份验证,要采用指定用户名密码的方式去认证
        properties.put("mail.smtp.auth", true);
        properties.put("mail.smtp.starttls.enable", true);
        //9、添加连接对象到邮件对象中
        javaMailSender.setJavaMailProperties(properties);
        return javaMailSender;
    }

    //声明一个Message对象(代表一封邮件),从session中创建
    private MimeMessage getMimeMessage(String username, String toEmail, String subject, String text, JavaMailSenderImpl javaMailSender) throws MessagingException {

        MimeMessage mimeMessage = javaMailSender.createMimeMessage();

        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
        //发件人
        mimeMessageHelper.setFrom(username);
        //收件人  : 可以发送给多个收件人,该方法有一个重载的 数组形参
        mimeMessageHelper.setTo(toEmail);
        //邮件主题
        mimeMessageHelper.setSubject(subject);
        //邮件内容
        mimeMessageHelper.setText(text, true);

        return mimeMessage;
    }

    @RequestMapping("/sendMail")
    @ResponseBody
    public Map sendMail(HttpServletRequest request, HttpServletResponse response) throws Exception{
        Map mapOut = new HashMap<>();
        //获取参数 我这里是封装好的方法,请按自己的方法修改
        Map mapArgu = CFunc.PackArguToMap(request, response);
        //从数据库中取得邮箱  这里不多展示  自己写死邮箱都可以
        Map email = firstTrialService.getEmailDetail();
        if (email==null){
            mapOut.put("status","error");
            mapOut.put("message","发件邮箱不存在,请进行维护");
            return mapOut;
        }
        String username = email.get("EMAILURL").toString();
        
        
        String toEmail = "发送邮箱的email";
        
        String subject = "标题";
        String text = "内容";
        

        //发送邮件
        JavaMailSenderImpl javaMailSender = getJavaMailSender(email);
        MimeMessage mimeMessage = getMimeMessage(username, toEmail, subject, text, javaMailSender);
        javaMailSender.send(mimeMessage);

        mapOut.put("status","ok");
        return mapOut;
    }

参考链接:
https://blog.csdn.net/qq_42449963/article/details/123285035
https://www.csdn.net/tags/OtDaUg2sMjA3MzYtYmxvZwO0O0OO0O0O.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1013703.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号