private void sendConfirmationEmail(User user, String baseUrl) { Thread thread = new Thread(() -> { try { final Token token = new Token(); final StringBuilder builder = new StringBuilder(); final String address = "ermdev.io@gmail.com"; final String recipientAddress = user.getEmail(); final String title = "Cloth Shop"; final String subject = "Account Details for " + user.getName() + " at " + title; token.setKey(String.valueOf(IdGenerator.randomUUID())); token.setExpiryDate(new DateHelper().setTimeNow().addTimeInMinute(DateHelper.DAY_IN_MINUTE).getDate()); tokenRepository.save(token); builder.append(baseUrl); builder.append("register/activate"); builder.append("?uid="); builder.append(user.getId()); builder.append("&tid="); builder.append(token.getKey()); MimeMailMessage mailMessage = new MimeMailMessage(mailSender.createMimeMessage()); mailMessage.setTo(recipientAddress); mailMessage.setSubject(subject); mailMessage.getMimeMessage().setFrom(new InternetAddress(address, title)); mailMessage.getMimeMessage().setContent(builder.toString(), "text/html"); mailSender.send(mailMessage.getMimeMessage()); } catch (Exception e) { e.printStackTrace(); } }); thread.start(); }