Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mail:
- host: smtp.gmail.com
- port: 587
- username: myuser@gmail.com
- password: mypass
- protocol: smtp
- tls: true
- properties.mail.smtp:
- auth: true
- starttls.enable: true
- #ssl.trust: smtp.gmail.com
- starttls.required: true
- jhipster:
- mail: # specific JHipster mail property, for standard properties see MailProperties
- from: myuser@gmail.com
- base-url: http://127.0.0.1:8080
- package com.pfg.easyschedule.service;
- import com.pfg.easyschedule.domain.User;
- import io.github.jhipster.config.JHipsterProperties;
- import org.apache.commons.lang3.CharEncoding;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.boot.autoconfigure.mail.MailProperties;
- import org.springframework.context.MessageSource;
- import org.springframework.mail.javamail.JavaMailSender;
- import org.springframework.mail.javamail.MimeMessageHelper;
- import org.springframework.scheduling.annotation.Async;
- import org.springframework.stereotype.Service;
- import org.thymeleaf.context.Context;
- import org.thymeleaf.spring4.SpringTemplateEngine;
- import javax.inject.Inject;
- import javax.mail.internet.MimeMessage;
- import java.util.Locale;
- import java.util.Map;
- /**
- * Service for sending e-mails.
- * <p>
- * We use the @Async annotation to send e-mails asynchronously.
- * </p>
- */
- @Service
- public class MailService {
- private final Logger log = LoggerFactory.getLogger(MailService.class);
- private static final String USER = "user";
- private static final String BASE_URL = "baseUrl";
- private final JHipsterProperties jHipsterProperties;
- private final JavaMailSender javaMailSender;
- private final MessageSource messageSource;
- private final SpringTemplateEngine templateEngine;
- public MailService(JHipsterProperties jHipsterProperties, JavaMailSender javaMailSender,
- MessageSource messageSource, SpringTemplateEngine templateEngine) {
- this.jHipsterProperties = jHipsterProperties;
- this.javaMailSender = javaMailSender;
- this.messageSource = messageSource;
- this.templateEngine = templateEngine;
- }
- @Async
- public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) {
- log.debug("Send e-mail[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",
- isMultipart, isHtml, to, subject, content);
- // Prepare message using a Spring helper
- MimeMessage mimeMessage = javaMailSender.createMimeMessage();
- try {
- MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, CharEncoding.UTF_8);
- message.setTo(to);
- message.setFrom(jHipsterProperties.getMail().getFrom());
- message.setSubject(subject);
- message.setText(content, isHtml);
- javaMailSender.send(mimeMessage);
- log.debug("Sent e-mail to User '{}'", to);
- } catch (Exception e) {
- log.warn("E-mail could not be sent to user '{}'", to, e);
- }
- }
- @Async
- public void sendActivationEmail(User user) {
- log.debug("Sending activation e-mail to '{}'", user.getEmail());
- Locale locale = Locale.forLanguageTag(user.getLangKey());
- Context context = new Context(locale);
- context.setVariable(USER, user);
- context.setVariable(BASE_URL, jHipsterProperties.getMail().getBaseUrl());
- String content = templateEngine.process("activationEmail", context);
- String subject = messageSource.getMessage("email.activation.title", null, locale);
- sendEmail(user.getEmail(), subject, content, false, true);
- }
- @Async
- public void sendCreationEmail(User user) {
- log.debug("Sending creation e-mail to '{}'", user.getEmail());
- Locale locale = Locale.forLanguageTag(user.getLangKey());
- Context context = new Context(locale);
- context.setVariable(USER, user);
- context.setVariable(BASE_URL, jHipsterProperties.getMail().getBaseUrl());
- String content = templateEngine.process("creationEmail", context);
- String subject = messageSource.getMessage("email.activation.title", null, locale);
- sendEmail(user.getEmail(), subject, content, false, true);
- }
- @Async
- public void sendPasswordResetMail(User user) {
- log.debug("Sending password reset e-mail to '{}'", user.getEmail());
- Locale locale = Locale.forLanguageTag(user.getLangKey());
- Context context = new Context(locale);
- context.setVariable(USER, user);
- context.setVariable(BASE_URL, jHipsterProperties.getMail().getBaseUrl());
- String content = templateEngine.process("passwordResetEmail", context);
- String subject = messageSource.getMessage("email.reset.title", null, locale);
- sendEmail(user.getEmail(), subject, content, false, true);
- }
- }
- @RestController
- private final Logger log =
- LoggerFactory.getLogger(MyClassResource.class);
- @Autowired
- EntityManager entityManager;
- @Autowired
- MailService mailService;
- @PostMapping ("/myurl")
- @Timed
- public ResponseEntity<Boolean> mymethod(@RequestBody myObject data) {
- mailService.sendEmail(
- "emailTo@gmail.com",
- "message from spring",
- "hi world. this message is from spring",
- true,
- true
- );
- }
- c....MailService : E-mail could not be sent to user 'emailTo@gmail.com'
- org.springframework.mail.MailSendException: Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. w125sm9354452wmb.45 - gsmtp
- at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:474)
- at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:345)
- at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340)
- .........
Add Comment
Please, Sign In to add comment