List of usage examples for org.springframework.mail.javamail MimeMessageHelper MimeMessageHelper
public MimeMessageHelper(MimeMessage mimeMessage, int multipartMode, @Nullable String encoding) throws MessagingException
From source file:com.epam.ta.reportportal.util.email.EmailService.java
/** * Restore password email/*ww w . ja va 2s. c o m*/ * * @param subject * @param recipients * @param url */ public void sendRestorePasswordEmail(final String subject, final String[] recipients, final String url, final String login) { MimeMessagePreparator preparator = mimeMessage -> { URL logoImg = this.getClass().getClassLoader().getResource(LOGO); MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "utf-8"); message.setSubject(subject); message.setTo(recipients); setFrom(message); Map<String, Object> email = new HashMap<>(); email.put("login", login); email.put("url", url); String text = templateEngine.merge("restore-password-template.vm", email); message.setText(text, true); message.addInline("logoimg", new UrlResource(logoImg)); }; this.send(preparator); }
From source file:com.mobileman.projecth.business.impl.MailManagerImpl.java
/** * {@inheritDoc}//from w w w. j ava2 s . c om * @see com.mobileman.projecth.business.MailManager#sendMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String) */ @Override public void sendMessage(final String senderEmail, final String receiverEmail, final String subject, final String body) { if (log.isDebugEnabled()) { log.debug("sendMessage(" + senderEmail + ", " + receiverEmail + ", " + subject + ", " + body + ") - start"); } MimeMessagePreparator preparator = new MimeMessagePreparator() { /** * {@inheritDoc} * @see org.springframework.mail.javamail.MimeMessagePreparator#prepare(javax.mail.internet.MimeMessage) */ @Override public void prepare(MimeMessage mimeMessage) throws Exception { if (log.isDebugEnabled()) { log.debug("$MimeMessagePreparator.prepare(MimeMessage) - start"); //$NON-NLS-1$ } MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, EMAIL_ENCODING); messageHelper.setSentDate(new Date()); messageHelper.setSubject(subject); messageHelper.setTo(receiverEmail); if (senderEmail == null || senderEmail.trim().length() == 0) { messageHelper.setFrom("projecth@projecth.com"); } else { messageHelper.setFrom(senderEmail); } String textMessage = HTMLTextParser.htmlToText(body); messageHelper.setText(textMessage, body); if (log.isDebugEnabled()) { log.debug("$MimeMessagePreparator.prepare(MimeMessage) - returns"); //$NON-NLS-1$ } } }; this.mailSender.send(preparator); if (log.isDebugEnabled()) { log.debug("sendMessage(...) - end"); } }
From source file:com.epam.ta.reportportal.util.email.EmailService.java
public void sendConfirmationEmail(CreateUserRQFull req, String basicUrl) { MimeMessagePreparator preparator = mimeMessage -> { URL logoImg = this.getClass().getClassLoader().getResource(LOGO); MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "utf-8"); message.setSubject("Welcome to Report Portal"); message.setTo(req.getEmail());/*from ww w . ja v a2 s . c om*/ setFrom(message); Map<String, Object> email = new HashMap<>(); email.put("url", basicUrl); email.put("login", normalizeUsername(req.getLogin())); email.put("password", req.getPassword()); String text = templateEngine.merge("create-user-template.vm", email); message.setText(text, true); message.addInline("logoimg", new UrlResource(logoImg)); }; this.send(preparator); }
From source file:eu.trentorise.smartcampus.citizenportal.service.EmailService.java
public void sendMailWithInline(final String recipientName, final String recipientEmail, final String imageResourceName, final byte[] imageBytes, final String imageContentType, final Locale locale) throws MessagingException { // Prepare the evaluation context final Context ctx = new Context(locale); ctx.setVariable("name", recipientName); ctx.setVariable("subscriptionDate", new Date()); ctx.setVariable("hobbies", Arrays.asList("Cinema", "Sports", "Music")); ctx.setVariable("imageResourceName", imageResourceName); // so that we can reference it from HTML // Prepare message using a Spring helper final MimeMessage mimeMessage = this.mailSender.createMimeMessage(); final MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true /* multipart */, "UTF-8"); message.setSubject("Example HTML email with inline image"); message.setFrom("thymeleaf@example.com"); message.setTo(recipientEmail);//from w w w .j a v a 2s .c o m // Create the HTML body using Thymeleaf final String htmlContent = this.templateEngine.process("email-inlineimage.html", ctx); message.setText(htmlContent, true /* isHtml */); // Add the inline image, referenced from the HTML code as "cid:${imageResourceName}" final InputStreamSource imageSource = new ByteArrayResource(imageBytes); message.addInline(imageResourceName, imageSource, imageContentType); // Send mail this.mailSender.send(mimeMessage); }
From source file:org.wallride.service.UserService.java
@CacheEvict(value = WallRideCacheConfiguration.USER_CACHE, allEntries = true) public User updatePassword(PasswordUpdateRequest request, PasswordResetToken passwordResetToken) { User user = userRepository.findOneForUpdateById(request.getUserId()); if (user == null) { throw new IllegalArgumentException("The user does not exist"); }//from ww w . jav a2s. c o m PasswordEncoder passwordEncoder = new StandardPasswordEncoder(); user.setLoginPassword(passwordEncoder.encode(request.getPassword())); user.setUpdatedAt(LocalDateTime.now()); user.setUpdatedBy(passwordResetToken.getUser().toString()); user = userRepository.saveAndFlush(user); passwordResetTokenRepository.delete(passwordResetToken); try { Blog blog = blogService.getBlogById(Blog.DEFAULT_ID); String blogTitle = blog.getTitle(LocaleContextHolder.getLocale().getLanguage()); ServletUriComponentsBuilder builder = ServletUriComponentsBuilder.fromCurrentContextPath(); if (blog.isMultiLanguage()) { builder.path("/{language}"); } builder.path("/login"); Map<String, Object> urlVariables = new LinkedHashMap<>(); urlVariables.put("language", request.getLanguage()); urlVariables.put("token", passwordResetToken.getToken()); String loginLink = builder.buildAndExpand(urlVariables).toString(); Context ctx = new Context(LocaleContextHolder.getLocale()); ctx.setVariable("passwordResetToken", passwordResetToken); ctx.setVariable("resetLink", loginLink); MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8"); // true = multipart message.setSubject(MessageFormat.format( messageSourceAccessor.getMessage("PasswordChangedSubject", LocaleContextHolder.getLocale()), blogTitle)); message.setFrom(mailProperties.getProperties().get("mail.from")); message.setTo(passwordResetToken.getEmail()); String htmlContent = templateEngine.process("password-changed", ctx); message.setText(htmlContent, true); // true = isHtml mailSender.send(mimeMessage); } catch (MessagingException e) { throw new ServiceException(e); } return user; }
From source file:gr.abiss.calipso.mail.MailSender.java
/** * /*w ww . j a v a 2 s . c o m*/ * @param email * @param subject * @param messageBody * @param attachments * @param encryption * @param keyStorePath */ public void send(String email, String subject, String messageBody, Map<String, DataSource> attachments, boolean html) { // prepare message try { MimeMessage message = sender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); if (html) { helper.setText(addHeaderAndFooter(messageBody), true); } else { helper.setText(messageBody, false); } helper.setSubject(subject); helper.setSentDate(new Date()); helper.setFrom(from); // set TO helper.setTo(email); if (MapUtils.isNotEmpty(attachments)) { for (String attachmentFilename : attachments.keySet()) { DataSource in = attachments.get(attachmentFilename); if (in != null) { helper.addAttachment(attachmentFilename, in); } } } //logger.info("Sending email: "+subject+"\n"+messageBody); sendInNewThread(message); } catch (Exception e) { logger.error("failed to prepare e-mail", e); } }
From source file:com.mobileman.projecth.business.impl.MailManagerImpl.java
/** * {@inheritDoc}//from w ww. j a va 2s. c o m * @see com.mobileman.projecth.business.MailManager#sendTellAFriendMessage(java.lang.String, java.lang.String, java.lang.String, java.lang.String) */ @Override public void sendTellAFriendMessage(final String senderName, final String senderEmail, final String receiverEmails, final String body) { if (log.isDebugEnabled()) { log.debug("sendMessage(" + senderName + ", " + senderEmail + ", " + receiverEmails + ", " + body + ") - start"); } if (senderEmail == null || senderEmail.trim().length() == 0) { throw new MailException(MailException.Reason.SENDER_EMAIL_MISSING); } if (receiverEmails == null || receiverEmails.trim().length() == 0) { throw new MailException(MailException.Reason.SENDER_EMAIL_MISSING); } final String[] senderData = { "", "", "" }; final String[] receivers = receiverEmails.split("[,]"); for (int i = 0; i < receivers.length; i++) { final int idx = i; MimeMessagePreparator preparator = new MimeMessagePreparator() { /** * {@inheritDoc} * @see org.springframework.mail.javamail.MimeMessagePreparator#prepare(javax.mail.internet.MimeMessage) */ @Override public void prepare(MimeMessage mimeMessage) throws Exception { if (log.isDebugEnabled()) { log.debug("$MimeMessagePreparator.prepare(MimeMessage) - start"); //$NON-NLS-1$ } MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, EMAIL_ENCODING); messageHelper.setSentDate(new Date()); Map<String, Object> model = new HashMap<String, Object>(); model.put("body-text", body); String htmlMessage = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "tell-a-friend-email-body.vm", model); String textMessage = HTMLTextParser.htmlToText(htmlMessage); messageHelper.setText(textMessage, htmlMessage); senderData[0] = htmlMessage; senderData[1] = textMessage; senderData[2] = "Mitteilung von projecth"; messageHelper.setSubject(senderData[2]); messageHelper.setTo(receivers[idx]); messageHelper.setFrom(getSystemAdminEmail()); if (log.isDebugEnabled()) { log.debug("$MimeMessagePreparator.prepare(MimeMessage) - returns"); //$NON-NLS-1$ } } }; this.mailSender.send(preparator); } this.mailSender.send(new MimeMessagePreparator() { @Override public void prepare(MimeMessage mimeMessage) throws Exception { MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, EMAIL_ENCODING); messageHelper.setSentDate(new Date()); messageHelper.setText(senderData[1], senderData[0]); messageHelper.setSubject(senderData[2]); messageHelper.setTo(senderEmail); messageHelper.setFrom(getSystemAdminEmail()); } }); if (log.isDebugEnabled()) { log.debug("sendMessage(...) - end"); } }
From source file:gr.abiss.calipso.mail.MailSender.java
public void sendUserPassword(User user, String clearText) { if (sender == null) { logger.warn("mail sender is null, not sending new user / password change notification"); return;//from w w w . j a v a 2 s . c o m } if (logger.isDebugEnabled()) { logger.debug("attempting to send mail for user password"); } Locale locale = getUserLocale(user); try { MimeMessage message = sender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); helper.setTo(user.getEmail()); helper.setSubject(prefix + " " + fmt("loginMailSubject", locale)); StringBuffer sb = new StringBuffer(); String greeting = fmt("loginMailGreeting", locale); if (org.apache.commons.lang.StringUtils.isNotBlank(greeting)) { sb.append("<p>" + fmt("loginMailGreeting", locale) + " " + user.getName() + ",</p>"); } sb.append("<p>" + fmt("loginMailLine1", locale) + "</p>"); sb.append("<table class='calipsoService'>"); sb.append("<tr><th style='background: #CCCCCC'>" + fmt("loginName", locale) + ": </th><td style='border: 1px solid black'>" + user.getLoginName() + " </td></tr>"); sb.append("<tr><th style='background: #CCCCCC'>" + fmt("password", locale) + ": </th><td style='border: 1px solid black'>" + clearText + " </td></tr>"); sb.append("</table>"); sb.append("<p>" + fmt("loginMailLine2", locale) + "</p>"); sb.append("<p><a href='" + url + "'>" + url + "</a></p>"); sb.append("<p>" + fmt("loginMailLine3", locale) + "</p>"); helper.setText(addHeaderAndFooter(sb), true); helper.setSentDate(new Date()); // helper.setCc(from); helper.setFrom(from); sendInNewThread(message); } catch (Exception e) { logger.error("failed to prepare e-mail", e); } }
From source file:com.mobileman.projecth.business.impl.MailManagerImpl.java
/** * {@inheritDoc}/*from w w w . ja v a2 s .co m*/ * @see com.mobileman.projecth.business.MailManager#sendResetCredientialsEmail(User, String) */ @Override public void sendNewDiseaseGroupRequestEmail(final String diseaseName, final String emailAddress, final UserType userType) { if (log.isDebugEnabled()) { log.debug("sendNewDiseaseGroupRequestEmail(" + diseaseName + ", " + emailAddress + ", " + userType + ") - start"); } final Map<String, Object> model = new HashMap<String, Object>(); model.put("disease_name", diseaseName); model.put("sender_email", emailAddress); model.put("sender_user_type", (UserType.P.equals(userType) ? "Patient" : "Arzt")); MimeMessagePreparator preparator = new MimeMessagePreparator() { @Override public void prepare(MimeMessage mimeMessage) throws Exception { if (log.isDebugEnabled()) { log.debug("$MimeMessagePreparator.prepare(MimeMessage) - start"); //$NON-NLS-1$ } String subject = MessageFormat.format("Neue Gesundheitsgruppe anmelden: {0}", diseaseName); MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, EMAIL_ENCODING); messageHelper.setSentDate(new Date()); messageHelper.setTo("mitglied@projecth.com"); messageHelper.setFrom(emailAddress); messageHelper.setSubject(subject); String htmlMessage = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "request-new-disease-group-system-email-body.vm", model); String textMessage = HTMLTextParser.htmlToText(htmlMessage); messageHelper.setText(textMessage, htmlMessage); if (log.isDebugEnabled()) { log.debug("$MimeMessagePreparator.prepare(MimeMessage) - returns"); //$NON-NLS-1$ } } }; this.mailSender.send(preparator); preparator = new MimeMessagePreparator() { @Override public void prepare(MimeMessage mimeMessage) throws Exception { if (log.isDebugEnabled()) { log.debug("$MimeMessagePreparator.prepare(MimeMessage) - start"); //$NON-NLS-1$ } String subject = MessageFormat.format("Anfrage zur Erweiterung von projecth mit {0}", diseaseName); MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, EMAIL_ENCODING); messageHelper.setSentDate(new Date()); messageHelper.setTo(emailAddress); messageHelper.setFrom("gesundheitsgruppen@projecth.com"); messageHelper.setSubject(subject); String htmlMessage = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "request-new-disease-group-sender-email-body.vm", model); String textMessage = HTMLTextParser.htmlToText(htmlMessage); messageHelper.setText(textMessage, htmlMessage); if (log.isDebugEnabled()) { log.debug("$MimeMessagePreparator.prepare(MimeMessage) - returns"); //$NON-NLS-1$ } } }; this.mailSender.send(preparator); if (log.isDebugEnabled()) { log.debug("sendNewDiseaseGroupRequestEmail(...) - end"); } }
From source file:org.wallride.service.UserService.java
@CacheEvict(value = WallRideCacheConfiguration.USER_CACHE, allEntries = true) public List<UserInvitation> inviteUsers(UserInvitationCreateRequest form, BindingResult result, AuthorizedUser authorizedUser) throws MessagingException { String[] recipients = StringUtils.commaDelimitedListToStringArray(form.getInvitees()); LocalDateTime now = LocalDateTime.now(); List<UserInvitation> invitations = new ArrayList<>(); for (String recipient : recipients) { UserInvitation invitation = new UserInvitation(); invitation.setEmail(recipient);/*from ww w. j a va 2 s . c o m*/ invitation.setMessage(form.getMessage()); invitation.setExpiredAt(now.plusHours(72)); invitation.setCreatedAt(now); invitation.setCreatedBy(authorizedUser.toString()); invitation.setUpdatedAt(now); invitation.setUpdatedBy(authorizedUser.toString()); invitation = userInvitationRepository.saveAndFlush(invitation); invitations.add(invitation); } Blog blog = blogService.getBlogById(Blog.DEFAULT_ID); for (UserInvitation invitation : invitations) { String websiteTitle = blog.getTitle(LocaleContextHolder.getLocale().getLanguage()); String signupLink = ServletUriComponentsBuilder.fromCurrentContextPath().path("/_admin/signup") .queryParam("token", invitation.getToken()).buildAndExpand().toString(); final Context ctx = new Context(LocaleContextHolder.getLocale()); ctx.setVariable("websiteTitle", websiteTitle); ctx.setVariable("authorizedUser", authorizedUser); ctx.setVariable("signupLink", signupLink); ctx.setVariable("invitation", invitation); final MimeMessage mimeMessage = mailSender.createMimeMessage(); final MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8"); // true = multipart message.setSubject(MessageFormat.format( messageSourceAccessor.getMessage("InvitationMessageTitle", LocaleContextHolder.getLocale()), authorizedUser.toString(), websiteTitle)); message.setFrom(authorizedUser.getEmail()); message.setTo(invitation.getEmail()); final String htmlContent = templateEngine.process("user-invite", ctx); message.setText(htmlContent, true); // true = isHtml mailSender.send(mimeMessage); } return invitations; }