Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.spduniversity.lms.config.JHipsterProperties;
- import com.spduniversity.lms.domain.User;
- import com.spduniversity.lms.web.rest.dto.UserRegistrationDTO;
- import org.apache.commons.lang.CharEncoding;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.context.MessageSource;
- import org.springframework.mail.javamail.JavaMailSenderImpl;
- 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;
- /**
- * 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 static final String PASSWORD = "password";
- @Inject
- private JHipsterProperties jHipsterProperties;
- @Inject
- private JavaMailSenderImpl javaMailSender;
- @Inject
- private MessageSource messageSource;
- @Inject
- private SpringTemplateEngine 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 '{}', exception is: {}", to, e.getMessage());
- }
- }
- @Async
- public void sendActivationEmail(User user, String baseUrl) {
- 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, baseUrl);
- String content = templateEngine.process("activationEmail", context);
- String subject = messageSource.getMessage("email.activation.title", null, locale);
- sendEmail(user.getEmail(), subject, content, false, true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement