首页 > 编程语言 >java+rest方式写一个邮件发送接口

java+rest方式写一个邮件发送接口

时间:2023-06-21 14:14:32浏览次数:75  
标签:java rest session import mail message com 邮件

 

 1  <!--发邮件-->
 2         <dependency>
 3             <groupId>org.springframework.boot</groupId>
 4             <artifactId>spring-boot-starter-mail</artifactId>
 5         </dependency>
 6 
 7         <dependency>
 8             <groupId>javax.mail</groupId>
 9             <artifactId>mail</artifactId>
10             <version>1.4.5</version>
11         </dependency>
 1 package com.example.demo.tools;
 2 
 3 import com.alibaba.fastjson.JSONObject;
 4 import org.springframework.web.bind.annotation.*;
 5 
 6 import java.util.LinkedHashMap;
 7 import java.util.Map;
 8 import java.util.Properties;
 9 import javax.mail.Message;
10 import javax.mail.Session;
11 import javax.mail.Transport;
12 import javax.mail.internet.InternetAddress;
13 import javax.mail.internet.MimeMessage;
14 
15 /**
16  * 邮件预警
17  *
18  * @author liuwenlong
19  * @create 2021-10-14 12:46:19
20  */
21 
22 @RestController
23 @RequestMapping("tools")
24 @SuppressWarnings("all")
25 public class Mail {
26 
27     @GetMapping("test")
28     public String PermitAll() {
29         return "Success";
30     }
31 
32     /**
33      * 发送邮件功能
34      *
35      * @param recipient 收件人
36      * @param Subject   主题
37      * @param content   内容
38      * @throws Exception
39 
40      */
41     @PostMapping(value = "SendMail", produces = "application/json;charset=UTF-8")
42     public Map<String, String> SendMail(@RequestBody JSONObject body) throws Exception {
43 
44         String recipient = body.getJSONObject("data").getString("recipient");
45         String Subject =  body.getJSONObject("data").getString("Subject");
46         String content =  body.getJSONObject("data").getString("content");
47 
48         Properties prop = new Properties();
49         prop.setProperty("mail.host", "smtp.163.com");
50         prop.setProperty("mail.transport.protocol", "smtp");
51         prop.setProperty("mail.smtp.auth", "true");
52         //使用JavaMail发送邮件的5个步骤
53         //1、创建session
54         Session session = Session.getInstance(prop);
55         //开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
56         session.setDebug(true);
57         //2、通过session得到transport对象
58         Transport ts = session.getTransport();
59         //3、使用邮箱的用户名和密码连上邮件服务器,发送邮件时,发件人需要提交邮箱的用户名和密码给smtp服务器,用户名和密码都通过验证之后才能够正常发送邮件给收件人。
60         ts.connect("smtp.163.com", "×××××××××××@163.com", "×××××××××××");
61         //4、创建邮件
62         //创建邮件对象
63         MimeMessage message = new MimeMessage(session);
64         //指明邮件的发件人
65         message.setFrom(new InternetAddress("×××××××××××@163.com"));
66         //指明邮件的收件人
67         message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient));
68         //邮件的标题
69         message.setSubject(Subject);
70         //邮件的文本内容
71         message.setContent(content, "text/html;charset=UTF-8");
72 
73         //5、发送邮件
74         ts.sendMessage(message, message.getAllRecipients());
75         ts.close();
76 
77         Map<String, String> map = new LinkedHashMap<>();
78         map.put("sign", "0");
79         map.put("message", "成功");
80         return map;
81     }
82 
83 }

调用

 邮件接收

 

标签:java,rest,session,import,mail,message,com,邮件
From: https://www.cnblogs.com/lwl80/p/17496065.html

相关文章

  • javascript WebUploader 分块上传
    ​ 前言文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好的办法,毕竟很少有人会忍受,当文件上传到一半中断后,继续上传却只能重头开始上传,这种让人不爽的体验。那有没有......
  • JAVA之树的详解
    JAVA之树的详解度:每一个结点的子节点数量树高:树的总层数根节点:最顶层的节点左子节点:左下方的节点右子节点:右下方的节点二叉查找树特点每一个节点上最多有两个子节点任意节点左子树上的值都小于当前节点任意节点右子树的值都大于当前节点添加节点规则小的存......
  • JavaScript异步编程:异步的数据收集方法
    我们先尝试在不借助任何工具函数的情况下来解决这个问题。笔者能想到的最简单的方法是:因前一个readFile的回调运行下一个readFile,同时跟踪记录迄今已触发的回调次数,并最终显示输出。下面是笔者的实现结果。Asyncjs/seriesByHand.jsvarfs=require('fs');process.chdir('recipes'......
  • JavaScript版本的策略模式
    俗话说,条条大路通罗马。在美剧《越狱》中,主角MichaelScofield就设计了两条越狱的道路。这两条道路都可以到达靠近监狱外墙的医务室。同样,在现实中,很多时候也有多种途径到达同一个目的地。比如我们要去某个地方旅游,可以根据具体的实际情况来选择出行的线路。如果没有时间但是不在乎......
  • JavaScript王国里的鸭子合唱团
    编程语言按照数据类型大体可以分为两类,一类是静态类型语言,另一类是动态类型语言。静态类型语言在编译时便已确定变量的类型,而动态类型语言的变量类型要到程序运行的时候,待变量被赋予某个值之后,才会具有某种类型。静态类型语言的优点首先是在编译时就能发现类型不匹配的错误,编辑......
  • Java SE和Java EE应用的性能调优
    凡事预则立,不预则废,和许多事情一样,Java性能调优的成功,离不开行动计划、方法或策略以及特定的领域背景知识。为了在Java性能调优工作中有所成就,你得超越“花似雾中看”的状态,进入“悠然见南山”或者已然是“一览众山小”的境界。这三个境界的说法可能让你有些糊涂吧,下面进一步解释......
  • Java乐观锁实现文章点击量、收藏计数、点赞计数
    Java乐观锁实现文章点击量、收藏计数、点赞计数......
  • 基于JAVA出差报销管理系统
    如今公司与企业规模不断扩大,出差管理在公司人事中的地位很重要。我们应该使用现代信息技术,研发基于Web技术的出差管理系统,这样可以节省人工管理成本,提高相关工作者的工作效率,推动公司与事业部的管理的信息化进程,进而进一步提升公司的核心竞争力。本文从公司/企业出差管理的实......
  • Java学习之注册中心Zookeeper
    Zookeeper是什么ZooKeeper是一个用于维护配置信息、命名、提供分布式同步和提供组服务的集中式服务,它常作为一个注册中心服务用于分布式项目。Zookeeper拥有以下几个重要特性顺序一致性:来自客户端的相关指令会按照顺序执行,不会出现乱序的情况,客户端发送到服务的指令1->2->3->4,......
  • 【Java】使用 validation 完成自定义校验注解
    总括:validation让我们简化了开发过程,可以使用简单的一个注解就实现了很多常见的检验数据的功能,同时支持自定义注解。spring-boot-starter-validation是由SpringBoot整合的一套用于处理 validation的约定化自动配置启动器。Spring系列框架通过简单的安装依赖即可直接使用......