通过邮箱的SMTP协议,获取qq邮箱中的smtp密钥后,就可以实现,我这里是发送的用户的订单信息。
首先要导入maven包
<!--javax.mail--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
然后在springboot项目中的properties填入邮箱和密钥
从前端获得要发送的邮箱、乘客的名字和该订单的车次号,然后从数据库查询相关订单的各种信息。
具体的代码:
@PostMapping("/sendEmail")@GetMapping("/sendEmail")@ResponseBodypublic Map<String, Object> login(@RequestBody JSONObject jsonObject){Map<String, Object> modelMap = new HashMap<>();String yourEmail=jsonObject.getString("yourEmail");String username=jsonObject.getString("username");String shareCarNum=jsonObject.getString("shareCarNum");OrderReturn orderReturn=orderService.shareEmail(username,shareCarNum);if(orderReturn!=null){modelMap.put("code", 200);Map<String, Object> dataMap = new HashMap<>();dataMap.put("message", "success");dataMap.put("entity", null);modelMap.put("data", dataMap);}else {modelMap.put("code", 200);Map<String, Object> dataMap = new HashMap<>();dataMap.put("message", "获取失败");dataMap.put("entity", null);modelMap.put("data", dataMap);}String trueName = orderReturn.getTrueName();String idCardNum = orderReturn.getIdCardNum();String orginLocation = orderReturn.getOrginLocation();String destinationLocation = orderReturn.getDestinationLocation();String startTime = orderReturn.getStartTime();String reachTime = orderReturn.getReachTime();Double ticketPrice = orderReturn.getTicketPrice();String status = orderReturn.getStatus();if(status=="1"){status="未支付";}else if(status=="2"){status="已支付";}else{status="已退票";}String s1 = "姓名:" + trueName + "\n"+ "身份证号:" + idCardNum + "\n"+ "起始站:" + orginLocation + "\n"+ "终点站:" + destinationLocation + "\n"+ "起始时间:" + startTime + "\n"+ "到达时间:" + reachTime + "\n"+ "票价:" + ticketPrice + "\n"+ "状态:" + status + "\n";SimpleMailMessage mailMessage = new SimpleMailMessage();mailMessage.setSubject("尊敬的乘客,您好!");mailMessage.setText(s1);mailMessage.setTo(yourEmail);mailMessage.setFrom("2423545283@");mailSender.send(mailMessage);return modelMap;}