本文共 9684 字,大约阅读时间需要 32 分钟。
4.0.0 org.springframework.boot spring-boot-starter-parent 2.0.3.RELEASE com.wo springboot-jpa-thymeleaf-email 0.0.1-SNAPSHOT springboot-jpa-thymeleaf-email Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-devtools runtime true org.projectlombok lombok true org.springframework.boot spring-boot-starter-test test mysql mysql-connector-java org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-starter-mail org.springframework.boot spring-boot-maven-plugin
server: port: 8088spring: datasource: driver-class-name: com.mysql.jdbc.Driver username: root password: 123456 url: jdbc:mysql://127.0.0.1:3306/qf?useUnicode=true&characterEncoding=utf8&useSSL=false jpa: database: mysql show-sql: true generate-ddl: true mail: host: smtp.qq.com username: 自己的邮箱 password: 提供的发送密码 properties: smtp: auth: true starttls: enable: true required: true default-encoding: utf-8
@Data@Entity@Table(name = "admin")public class Admin { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; private String name; private String password; private String email;}
@Datapublic class AdminReq { private String email; private String code; private String name; private String password;}
public interface AdminRespository extends JpaRepository{ }
ListfindAll(); Admin findById(int id); void update(Admin admin); void delete(int id); //发送邮箱 String sendEmail(String mail, HttpServletRequest request); //注册 String regist(AdminReq adminReq,HttpServletRequest request);
@Servicepublic class AdminServiceImpl implements AdminService{ @Autowired AdminRespository adminRespository; //邮箱发送 @Autowired JavaMailSender javaMailSender; //获取配置中的邮箱发送者 @Value("${spring.mail.username}") private String from; @Override public ListfindAll() { return adminRespository.findAll(); } @Override public Admin findById(int id) { Optional byId = adminRespository.findById(id); if(byId.isPresent()){ Admin admin = byId.get(); return admin; } return null; } @Override public void update(Admin admin) { adminRespository.saveAndFlush(admin); } @Override public void delete(int id) { adminRespository.deleteById(id); } //发送验证码 @Override public String sendEmail(String mail, HttpServletRequest request) { SimpleMailMessage simpleMailMessage=new SimpleMailMessage(); //发送者 simpleMailMessage.setFrom(from); //接收者 simpleMailMessage.setTo(mail); //主题 simpleMailMessage.setSubject("注册验证"); //正文 int num=(int) ((Math.random() * 9 + 1) * 100000); String code=Integer.toString(num); System.out.println("****************验证码是"+num); simpleMailMessage.setText(code); //发送 javaMailSender.send(simpleMailMessage); //获取session,将验证码存入session HttpSession session=request.getSession(); session.setAttribute(mail,code); return "success"; } //注册 @Override public String regist(AdminReq adminReq, HttpServletRequest request) { String mail=adminReq.getEmail(); String code=adminReq.getCode(); //冲session获取到发送的验证码进行对比 HttpSession session=request.getSession(); String attribute = (String) session.getAttribute(mail); if (code.equals(attribute)) { //用户输入的验证码跟我们发的验证码一致 //将数据存到数据库中 Admin admin=new Admin(); //将第一个对象的值复制给第二个对象中 BeanUtils.copyProperties(adminReq,admin); adminRespository.saveAndFlush(admin); return "success"; } return "fail"; }}
@Controllerpublic class AdminController { @Autowired AdminService adminService; @RequestMapping("/") public ModelAndView fingAll(){ ListadminList = adminService.findAll(); ModelAndView modelAndView=new ModelAndView(); modelAndView.addObject("list",adminList); modelAndView.setViewName("index"); return modelAndView; } @RequestMapping("/findById") public ModelAndView findById(@RequestParam("id") Integer id){ Admin admin = adminService.findById(id); ModelAndView modelAndView=new ModelAndView(); modelAndView.addObject("admin",admin); modelAndView.setViewName("update"); return modelAndView; } @RequestMapping("/insertAndUpdate") public String insertAndUpdate(Admin admin){ adminService.update(admin); return "redirect:/"; } @RequestMapping("/goUpdate") public String goUpdate(Model model){ model.addAttribute("admin",new Admin()); return "update"; } @RequestMapping("/deleteById") public String deleteById(@RequestParam("id") int id){ adminService.delete(id); return "redirect:/"; } //发送邮箱 @RequestMapping("/sendMail") @ResponseBody public String sendMail(@RequestParam("mail") String mail, HttpServletRequest request){ return adminService.sendEmail(mail,request); } //注册页面 @RequestMapping("/go") public String goRegist(){ return "regist"; } //注册 @RequestMapping("/regist") public String regist(AdminReq adminReq,HttpServletRequest request){ String regist = adminService.regist(adminReq, request); if(regist.equals("success")){ return "success"; } return "redirect:/regist"; }}
@RunWith(SpringRunner.class)@SpringBootTestpublic class mailTest { @Autowired JavaMailSender javaMailSender; //获取配置中的邮箱发送者 @Value("${spring.mail.username}") private String from; @Test public void testSend(){ //声明 SimpleMailMessage simpleMailMessage=new SimpleMailMessage(); //发送者 simpleMailMessage.setFrom(from); //接收者 simpleMailMessage.setTo("******@qq.com"); //主题 simpleMailMessage.setSubject("注册验证"); //正文 simpleMailMessage.setText("123456"); //发送 javaMailSender.send(simpleMailMessage); } @Test public void testHtmlSend() throws MessagingException { MimeMessage mimeMessage = javaMailSender.createMimeMessage(); //声明simplemailMessage MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true); //发送者 mimeMessageHelper.setFrom(from); //接收者 mimeMessageHelper.setTo("*******@qq.com"); //内容主体 StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("这是html邮件"); mimeMessageHelper.setText(stringBuffer.toString(),true); //主题 mimeMessageHelper.setSubject("测试"); //发送 javaMailSender.send(mimeMessage); } @Test public void testFileSend() throws MessagingException { MimeMessage mimeMessage = javaMailSender.createMimeMessage(); //声明simplemailMessage MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true); //发送者 mimeMessageHelper.setFrom(from); //接收者 mimeMessageHelper.setTo("*****@qq.com"); //内容主体 StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("这是html邮件"); mimeMessageHelper.setText(stringBuffer.toString(),true); //放置附件 FileSystemResource fileSystemResource = new FileSystemResource(new File("E://1.jpg")); mimeMessageHelper.addAttachment("lxl.jpg",fileSystemResource); //主题 mimeMessageHelper.setSubject("测试"); //发送 javaMailSender.send(mimeMessage); }}
Title thymeleaf的首页面
增加
序号 | ID | name | password | 操作 | |
---|---|---|---|---|---|
修改| |删除 |
Title 用户邮箱: 验证码: 姓名: 密码:
转载地址:http://ccezi.baihongyu.com/