Guest User

Untitled

a guest
Dec 16th, 2018
1,271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.75 KB | None | 0 0
  1. mail:
  2. host: smtp.gmail.com
  3. port: 587
  4. username: myuser@gmail.com
  5. password: mypass
  6. protocol: smtp
  7. tls: true
  8. properties.mail.smtp:
  9. auth: true
  10. starttls.enable: true
  11. #ssl.trust: smtp.gmail.com
  12. starttls.required: true
  13. jhipster:
  14. mail: # specific JHipster mail property, for standard properties see MailProperties
  15. from: myuser@gmail.com
  16. base-url: http://127.0.0.1:8080
  17.  
  18. package com.pfg.easyschedule.service;
  19.  
  20. import com.pfg.easyschedule.domain.User;
  21.  
  22. import io.github.jhipster.config.JHipsterProperties;
  23.  
  24. import org.apache.commons.lang3.CharEncoding;
  25. import org.slf4j.Logger;
  26. import org.slf4j.LoggerFactory;
  27. import org.springframework.boot.autoconfigure.mail.MailProperties;
  28. import org.springframework.context.MessageSource;
  29. import org.springframework.mail.javamail.JavaMailSender;
  30. import org.springframework.mail.javamail.MimeMessageHelper;
  31. import org.springframework.scheduling.annotation.Async;
  32. import org.springframework.stereotype.Service;
  33. import org.thymeleaf.context.Context;
  34. import org.thymeleaf.spring4.SpringTemplateEngine;
  35.  
  36. import javax.inject.Inject;
  37. import javax.mail.internet.MimeMessage;
  38. import java.util.Locale;
  39. import java.util.Map;
  40.  
  41. /**
  42. * Service for sending e-mails.
  43. * <p>
  44. * We use the @Async annotation to send e-mails asynchronously.
  45. * </p>
  46. */
  47. @Service
  48. public class MailService {
  49.  
  50. private final Logger log = LoggerFactory.getLogger(MailService.class);
  51. private static final String USER = "user";
  52. private static final String BASE_URL = "baseUrl";
  53. private final JHipsterProperties jHipsterProperties;
  54. private final JavaMailSender javaMailSender;
  55. private final MessageSource messageSource;
  56. private final SpringTemplateEngine templateEngine;
  57.  
  58.  
  59. public MailService(JHipsterProperties jHipsterProperties, JavaMailSender javaMailSender,
  60. MessageSource messageSource, SpringTemplateEngine templateEngine) {
  61.  
  62. this.jHipsterProperties = jHipsterProperties;
  63. this.javaMailSender = javaMailSender;
  64. this.messageSource = messageSource;
  65. this.templateEngine = templateEngine;
  66. }
  67.  
  68. @Async
  69. public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
  70. log.debug("Send e-mail[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",
  71. isMultipart, isHtml, to, subject, content);
  72.  
  73. // Prepare message using a Spring helper
  74. MimeMessage mimeMessage = javaMailSender.createMimeMessage();
  75. try {
  76. MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, CharEncoding.UTF_8);
  77. message.setTo(to);
  78. message.setFrom(jHipsterProperties.getMail().getFrom());
  79. message.setSubject(subject);
  80. message.setText(content, isHtml);
  81. javaMailSender.send(mimeMessage);
  82. log.debug("Sent e-mail to User '{}'", to);
  83. } catch (Exception e) {
  84. log.warn("E-mail could not be sent to user '{}'", to, e);
  85. }
  86. }
  87.  
  88. @Async
  89. public void sendActivationEmail(User user) {
  90. log.debug("Sending activation e-mail to '{}'", user.getEmail());
  91. Locale locale = Locale.forLanguageTag(user.getLangKey());
  92. Context context = new Context(locale);
  93. context.setVariable(USER, user);
  94. context.setVariable(BASE_URL, jHipsterProperties.getMail().getBaseUrl());
  95. String content = templateEngine.process("activationEmail", context);
  96. String subject = messageSource.getMessage("email.activation.title", null, locale);
  97. sendEmail(user.getEmail(), subject, content, false, true);
  98. }
  99.  
  100. @Async
  101. public void sendCreationEmail(User user) {
  102. log.debug("Sending creation e-mail to '{}'", user.getEmail());
  103. Locale locale = Locale.forLanguageTag(user.getLangKey());
  104. Context context = new Context(locale);
  105. context.setVariable(USER, user);
  106. context.setVariable(BASE_URL, jHipsterProperties.getMail().getBaseUrl());
  107. String content = templateEngine.process("creationEmail", context);
  108. String subject = messageSource.getMessage("email.activation.title", null, locale);
  109. sendEmail(user.getEmail(), subject, content, false, true);
  110. }
  111.  
  112. @Async
  113. public void sendPasswordResetMail(User user) {
  114. log.debug("Sending password reset e-mail to '{}'", user.getEmail());
  115. Locale locale = Locale.forLanguageTag(user.getLangKey());
  116. Context context = new Context(locale);
  117. context.setVariable(USER, user);
  118. context.setVariable(BASE_URL, jHipsterProperties.getMail().getBaseUrl());
  119. String content = templateEngine.process("passwordResetEmail", context);
  120. String subject = messageSource.getMessage("email.reset.title", null, locale);
  121. sendEmail(user.getEmail(), subject, content, false, true);
  122. }
  123. }
  124.  
  125. @RestController
  126.  
  127. private final Logger log =
  128. LoggerFactory.getLogger(MyClassResource.class);
  129.  
  130. @Autowired
  131. EntityManager entityManager;
  132. @Autowired
  133. MailService mailService;
  134. @PostMapping ("/myurl")
  135. @Timed
  136. public ResponseEntity<Boolean> mymethod(@RequestBody myObject data) {
  137. mailService.sendEmail(
  138. "emailTo@gmail.com",
  139. "message from spring",
  140. "hi world. this message is from spring",
  141. true,
  142. true
  143. );
  144. }
  145.  
  146. c....MailService : E-mail could not be sent to user 'emailTo@gmail.com'
  147.  
  148. org.springframework.mail.MailSendException: Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. w125sm9354452wmb.45 - gsmtp
  149.  
  150. at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:474)
  151. at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:345)
  152. at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340)
  153. .........
Add Comment
Please, Sign In to add comment