List of usage examples for org.springframework.mail.javamail MimeMessageHelper setText
public void setText(String plainText, String htmlText) throws MessagingException
From source file:MailSender.java
public void sendUserPassword(User user, String clearText) { // major: well, sender is null, so no email is going out...silently. Just a debug message. // This means that the initial configuration is not able to create a sender. // This control should no be here and the methods that handle jndi or configFile should throw a // ConfigurationException if the sender is not created. if (sender == null) { logger.debug("mail sender is null, not sending new user / password change notification"); return;/* w w w . j a va 2 s .c o m*/ } logger.debug("attempting to send mail for user password"); String localeString = user.getLocale(); Locale locale = null; if (localeString == null) { locale = defaultLocale; } else { locale = StringUtils.parseLocaleString(localeString); } // major: there is a bit of code duplication with the method send. // Apparently it seems that just the body is changing but the rest is // really similar. As suggested above the way a message is created should be // refactored in a collaborator. This method should just send a message. MimeMessage message = sender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, "UTF-8"); try { helper.setTo(user.getEmail()); helper.setSubject(prefix + " " + fmt("loginMailSubject", locale)); StringBuffer sb = new StringBuffer(); sb.append("<p>" + fmt("loginMailGreeting", locale) + " " + user.getName() + ",</p>"); sb.append("<p>" + fmt("loginMailLine1", locale) + "</p>"); sb.append("<table class='jtrac'>"); 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>"); helper.setText(addHeaderAndFooter(sb), true); helper.setSentDate(new Date()); // helper.setCc(from); helper.setFrom(from); sendInNewThread(message); // major: generic exception, method too long, I don't understand what could fail. } 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. j a v a 2 s.co m*/ * @see com.mobileman.projecth.business.MailManager#sendResetCredientialsEmail(User, String) */ @Override public void sendResetCredientialsEmail(final User user, final String serverDnsName) { if (log.isDebugEnabled()) { log.debug("sendResetCredientialsEmail(" + user.getId() + ", " + serverDnsName + ") - start"); } MimeMessagePreparator preparator = new MimeMessagePreparator() { @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.setTo(user.getUserAccount().getEmail()); messageHelper.setFrom("mitglied@projecth.com"); messageHelper.setSubject("Passwort zurcksetzen"); String tmpServerDnsName = serverDnsName; if (tmpServerDnsName == null || tmpServerDnsName.trim().length() == 0) { tmpServerDnsName = "projecth.de"; } Map<String, Object> model = new HashMap<String, Object>(); model.put("user", user); model.put("dns_server_name", tmpServerDnsName); String htmlMessage = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "reset-credentials-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("sendResetCredientialsEmail(" + user.getId() + ") - end"); } }
From source file:com.mobileman.projecth.business.impl.MailManagerImpl.java
/** * {@inheritDoc}/*from w w w.j av a 2 s . co m*/ * @see com.mobileman.projecth.business.MailManager#sendActivationEmail(User, String) */ @Override public void sendActivationEmail(final User user, final String serverDnsName) { if (log.isDebugEnabled()) { log.debug("sendActivationEmail(" + user + ", " + serverDnsName + ") - 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.setTo(user.getUserAccount().getEmail()); messageHelper.setFrom("mitglied@projecth.com"); messageHelper.setSubject("Ihre Anmeldung bei projecth"); String tmpServerDnsName = serverDnsName; if (tmpServerDnsName == null || tmpServerDnsName.trim().length() == 0) { tmpServerDnsName = "projecth.de"; } Map<String, Object> model = new HashMap<String, Object>(); model.put("user", user); model.put("dns_server_name", tmpServerDnsName); String htmlMessage = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "sign-up-activation-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("sendActivationEmail(User) - returns"); //$NON-NLS-1$ } }
From source file:net.triptech.metahive.service.EmailSenderService.java
/** * Send an email message using the configured Spring sender. On success * record the sent message in the datastore for reporting purposes * * @param email the email//from w w w . j av a 2 s. c o m * @param attachments the attachments * @throws ServiceException the service exception */ public final void send(final SimpleMailMessage email, TreeMap<String, Object> attachments) throws ServiceException { // Check to see whether the required fields are set (to, from, message) if (email.getTo() == null) { throw new ServiceException("Error sending email: Recipient " + "address required"); } if (StringUtils.isBlank(email.getFrom())) { throw new ServiceException("Error sending email: Email requires " + "a from address"); } if (StringUtils.isBlank(email.getText())) { throw new ServiceException("Error sending email: No email " + "message specified"); } if (mailSender == null) { throw new ServiceException("The JavaMail sender has not " + "been configured"); } // Prepare the email message MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = null; boolean htmlMessage = false; if (StringUtils.containsIgnoreCase(email.getText(), "<html")) { htmlMessage = true; try { helper = new MimeMessageHelper(message, true, "UTF-8"); } catch (MessagingException me) { throw new ServiceException("Error preparing email for sending: " + me.getMessage()); } } else { helper = new MimeMessageHelper(message); } try { helper.setTo(email.getTo()); helper.setFrom(email.getFrom()); helper.setSubject(email.getSubject()); if (email.getCc() != null) { helper.setCc(email.getCc()); } if (email.getBcc() != null) { helper.setBcc(email.getBcc()); } if (htmlMessage) { String plainText = email.getText(); try { ConvertHtmlToText htmlToText = new ConvertHtmlToText(); plainText = htmlToText.convert(email.getText()); } catch (Exception e) { logger.error("Error converting HTML to plain text: " + e.getMessage()); } helper.setText(plainText, email.getText()); } else { helper.setText(email.getText()); } if (email.getSentDate() != null) { helper.setSentDate(email.getSentDate()); } else { helper.setSentDate(Calendar.getInstance().getTime()); } } catch (MessagingException me) { throw new ServiceException("Error preparing email for sending: " + me.getMessage()); } // Append any attachments (if an HTML email) if (htmlMessage && attachments != null) { for (String id : attachments.keySet()) { Object reference = attachments.get(id); if (reference instanceof File) { try { FileSystemResource res = new FileSystemResource((File) reference); helper.addInline(id, res); } catch (MessagingException me) { logger.error("Error appending File attachment: " + me.getMessage()); } } if (reference instanceof URL) { try { UrlResource res = new UrlResource((URL) reference); helper.addInline(id, res); } catch (MessagingException me) { logger.error("Error appending URL attachment: " + me.getMessage()); } } } } // Send the email message try { mailSender.send(message); } catch (MailException me) { logger.error("Error sending email: " + me.getMessage()); throw new ServiceException("Error sending email: " + me.getMessage()); } }
From source file:com.globocom.grou.report.ReportService.java
private void notifyByMail(Test test, String email, Map<String, Double> result) throws Exception { MimeMessagePreparator messagePreparator = mimeMessage -> { MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage); messageHelper.setTo(email);//w w w . ja v a2 s. c om messageHelper.setFrom(MAIL_FROM); messageHelper.setSubject(getSubject(test)); Context context = new Context(); context.setVariable("project", test.getProject()); context.setVariable("name", test.getName()); HashMap<String, Object> testContext = new HashMap<>(); testContext.put("dashboard", test.getDashboard()); testContext.put("loaders", test.getLoaders().stream().map(Loader::getName).collect(Collectors.toSet())); testContext.put("properties", test.getProperties()); testContext.put("id", test.getId()); testContext.put("created", test.getCreatedDate().toString()); testContext.put("lastModified", test.getLastModifiedDate().toString()); testContext.put("durationTimeMillis", test.getDurationTimeMillis()); context.setVariable("testContext", mapper.writeValueAsString(testContext).split("\\R")); Set<String> tags = test.getTags(); context.setVariable("tags", tags); context.setVariable("metrics", new TreeMap<>(result)); String content = templateEngine.process("reportEmail", context); messageHelper.setText(content, true); }; try { emailSender.send(messagePreparator); LOGGER.info( "Test " + test.getProject() + "." + test.getName() + ": sent notification to email " + email); } catch (MailException e) { LOGGER.error(e.getMessage(), e); } }
From source file:it.jugpadova.blo.EventBo.java
private void sendConfirmationEmail(final Event event, final Participant participant, final String baseUrl) { MimeMessagePreparator preparator = new MimeMessagePreparator() { @SuppressWarnings(value = "unchecked") public void prepare(MimeMessage mimeMessage) throws Exception { MimeMessageHelper message = new MimeMessageHelper(mimeMessage); message.setTo(participant.getEmail()); message.setFrom(conf.getConfirmationSenderEmailAddress()); message.setSubject("Please confirm event registration"); Map model = new HashMap(); model.put("participant", participant); model.put("event", event); model.put("baseUrl", baseUrl); model.put("confirmationCode", URLEncoder.encode(participant.getConfirmationCode(), "UTF-8")); model.put("email", URLEncoder.encode(participant.getEmail(), "UTF-8")); String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "it/jugpadova/registration-confirmation.vm", model); message.setText(text, true); }//from ww w .j ava2 s . c o m }; this.mailSender.send(preparator); }
From source file:org.jnap.core.email.Email.java
public void prepare(MimeMessage mimeMessage) throws Exception { final EmailAccountInfo acc = getAccountInfo(); boolean multipart = StringUtils.isNotBlank(getHtmlText()) || (getInlineResources() != null && getInlineResources().size() > 0) || (getAttachments() != null && getAttachments().size() > 0); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, multipart); if (acc.getFromName() != null) { helper.setFrom(acc.getFromEmailAddress(), acc.getFromName()); } else {/*from w w w. j a va 2 s. c om*/ this.setFrom(acc.getFromEmailAddress()); } helper.setTo(getTo()); if (getCc() != null) { helper.setCc(getCc()); } if (getBcc() != null) { helper.setBcc(getBcc()); } helper.setSentDate(new Date()); mimeMessage.setSubject(getMessage(getSubject()), this.encoding); // sender info if (acc != null && StringUtils.isNotBlank(acc.getFromName())) { helper.setFrom(acc.getFromEmailAddress(), getMessage(acc.getFromName())); } else { helper.setFrom(acc.getFromEmailAddress()); } if (acc != null && StringUtils.isNotBlank(acc.getReplyToEmailAddress())) { if (StringUtils.isNotBlank(acc.getReplyToName())) { helper.setReplyTo(acc.getReplyToEmailAddress(), acc.getReplyToName()); } else { helper.setReplyTo(acc.getReplyToEmailAddress()); } } final boolean hasHtmlText = StringUtils.isNotBlank(getHtmlText()); final boolean hasText = StringUtils.isNotBlank(getText()); if (hasHtmlText && hasText) { helper.setText(getText(), getHtmlText()); } else if (hasHtmlText || hasText) { helper.setText(hasHtmlText ? getHtmlText() : getText()); } // set headers final Map<String, String> mailHeaders = this.getHeaders(); for (String header : mailHeaders.keySet()) { mimeMessage.addHeader(header, mailHeaders.get(header)); } // add inline resources final Map<String, Resource> inlineRes = this.getInlineResources(); if (inlineRes != null) { for (String cid : inlineRes.keySet()) { helper.addInline(cid, inlineRes.get(cid)); } } // add attachments final Map<String, Resource> attachments = this.getAttachments(); if (attachments != null) { for (String attachmentName : attachments.keySet()) { helper.addAttachment(attachmentName, attachments.get(attachmentName)); } } }
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 ww w .ja v a2s . com } 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.jaspersoft.jasperserver.api.engine.scheduling.quartz.ReportExecutionJobMailNotificationImpl.java
protected void embedOutput(MimeMessageHelper messageHelper, ReportOutput output) throws MessagingException, JobExecutionException { /***//from w w w. j a v a 2 s .c o m try { BufferedReader in = new BufferedReader(new FileReader("C:/Users/ichan/Desktop/employee.html")); StringBuffer strBuffer = new StringBuffer(); String strLine; while ((strLine = in.readLine()) != null) { strBuffer = strBuffer.append(strLine + "\n"); } content = strBuffer.toString(); } catch (Exception ex) { ex.printStackTrace(); } System.out.println("CONTENT = " + content); ****/ // modify content to use inline images StringBuffer primaryPage = new StringBuffer(new String(output.getData().getData())); for (Iterator it = output.getChildren().iterator(); it.hasNext();) { ReportOutput child = (ReportOutput) it.next(); String childName = child.getFilename(); // NOTE: add the ".dat" extension to all image resources // email client will automatically append ".dat" extension to all the files with no extension // should do it in JasperReport side if (output.getFileType().equals(ContentResource.TYPE_HTML)) { if (primaryPage == null) primaryPage = new StringBuffer(new String(output.getData().getData())); int fromIndex = 0; while ((fromIndex = primaryPage.indexOf("src=\"" + childName + "\"", fromIndex)) > 0) { primaryPage.insert(fromIndex + 5, "cid:"); } } } messageHelper.setText(primaryPage.toString(), true); // add inline images after setting the text in the main body for (Iterator it = output.getChildren().iterator(); it.hasNext();) { ReportOutput child = (ReportOutput) it.next(); String childName = child.getFilename(); DataContainerResource dataContainerResource = new DataContainerResource(child.getData()); dataContainerResource.setFilename(childName); messageHelper.addInline(childName, dataContainerResource); } }
From source file:org.jasig.portlet.blackboardvcportlet.service.impl.MailTemplateServiceImpl.java
public void sendMail(final MailTask mt) { try {/* w w w.ja v a2s .c o m*/ MimeMessagePreparator messagePreparator = new MimeMessagePreparator() { public void prepare(MimeMessage mimeMessage) throws Exception { MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true); if (mt.getMeetingInvite() != null) { CalendarOutputter outputter = new CalendarOutputter(); ByteArrayOutputStream os = new ByteArrayOutputStream(); outputter.setValidating(false); outputter.output(mt.getMeetingInvite(), os); message.addAttachment("invite.ics", new ByteArrayResource(os.toByteArray())); } message.setFrom(mt.getFrom() != null ? mt.getFrom() : defaultFromAddress); if (mt.getTo() != null) { String[] toArray = mt.getTo().toArray(new String[mt.getTo().size()]); message.setTo(toArray); } if (mt.getSubject() != null) { message.setSubject(mt.getSubject()); } else { switch (mt.getTemplate()) { case MODERATOR: message.setSubject(moderatorSubject); break; case INTERNAL_PARTICIPANT: message.setSubject(internalParticipantSubject); break; case EXTERNAL_PARTICIPANT: message.setSubject(externalParticipantSubject); break; case SESSION_DELETION: message.setSubject(sessionDeletionSubject); break; default: message.setSubject(""); } } message.setText(buildEmailMessage(mt), false); } }; mailSender.send(messagePreparator); } catch (Exception e) { logger.error("Issue with sending email", e); } }