java邮件案例
-
引入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version>2.2.6.RELEASE</version> </dependency> -
配置邮件参数
spring: mail: host: smtp.qq.com username: 1497315494@qq.com password: omoouhbxawdpbaef default-encoding: UTF-8 properties: mail: smtp: socketFactory: class: javax.net.ssl.SSLSocketFactory port: 465 auth: true starttls: enable: true required: true -
创建线程池
@Bean public ThreadPoolTaskExecutor createThreadPoolTaskExecutor(){ ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor(); threadPoolTaskExecutor.setCorePoolSize(5); threadPoolTaskExecutor.setMaxPoolSize(10); return threadPoolTaskExecutor; } -
创建发邮件放方法
private final Logger logger= LoggerFactory.getLogger(this.getClass()); @Autowired private JavaMailSender javaMailSender; @Value("${spring.mail.username}") private String from; public void sendMail(String recipient,String subject,String content){ try { SimpleMailMessage simpleMailMessage=new SimpleMailMessage(); simpleMailMessage.setFrom(from); simpleMailMessage.setTo(recipient); simpleMailMessage.setSubject(subject); simpleMailMessage.setText(content); simpleMailMessage.setSentDate(new Date()); javaMailSender.send(simpleMailMessage); logger.info("发送成功"); }catch (Exception e){ logger.info("错误信息"+e); } } -
测试
@Autowired SendMail sendMail; @Autowired ThreadPoolTaskExecutor threadPoolTaskExecutor; @Test void contextLoads() { threadPoolTaskExecutor.execute(new Runnable() { @Override public void run() { sendMail.sendMail("1497315494@qq.com","test","hello world"); } }); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } }复杂邮件
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>社区网-账号激活</title> </head> <body> <div> <p> <b th:text="${email}"></b>,你好! </p> <p> 你正在注册社区网,这是一封激活邮件,请点击 <a th:href="${url}"><span style="color: #029789">激活链接</span></a> 激活你的社区账号! </p> </div> </body> </html>//激活邮件 Context context=new Context(); context.setVariable("email",user.getEmail()); String url= domain+"/user/activation/"+user.getId()+"/"+user.getActivationCode(); context.setVariable("url",url); String content =templateEngine.process("activation",context); mailClient.sendMail(user.getEmail(),"激活账号",content);

浙公网安备 33010602011771号