List of usage examples for org.springframework.mail.javamail MimeMessageHelper setText
public void setText(String plainText, String htmlText) throws MessagingException
From source file:org.jasig.portal.portlets.account.UserAccountHelper.java
public void sendLoginToken(HttpServletRequest request, ILocalAccountPerson account) { IPerson person = personManager.getPerson(request); final Locale[] userLocales = localeStore.getUserLocales(person); LocaleManager localeManager = new LocaleManager(person, userLocales); Locale locale = localeManager.getLocales()[0]; IPortalUrlBuilder builder = urlProvider.getPortalUrlBuilderByPortletFName(request, "reset-password", UrlType.RENDER);//from w ww.j a v a 2s .co m IPortletUrlBuilder portletUrlBuilder = builder.getTargetedPortletUrlBuilder(); portletUrlBuilder.addParameter("username", account.getName()); portletUrlBuilder.addParameter("loginToken", (String) account.getAttributeValue("loginToken")); portletUrlBuilder.setPortletMode(PortletMode.VIEW); portletUrlBuilder.setWindowState(WindowState.MAXIMIZED); StringBuffer url = new StringBuffer(); url.append(request.getScheme()); url.append("://").append(request.getServerName()); int port = request.getServerPort(); if (port != 80 && port != 443) { url.append(":").append(port); } url.append(builder.getUrlString()); log.debug("Sending password reset instructions to user with url " + url.toString()); String emailAddress = (String) account.getAttributeValue("mail"); final STGroup group = new STGroupDir(templateDir, '$', '$'); final ST template = group.getInstanceOf(passwordResetTemplate); template.add("displayName", person.getAttribute("displayName")); template.add("url", url.toString()); MimeMessage message = mailSender.createMimeMessage(); String body = template.render(); try { MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setTo(emailAddress); helper.setText(body, true); helper.setSubject(messageSource.getMessage("reset.your.password", new Object[] {}, locale)); helper.setFrom(portalEmailAddress, messageSource.getMessage("portal.name", new Object[] {}, locale)); log.debug("Sending message to " + emailAddress + " from " + Arrays.toString(message.getFrom()) + " subject " + message.getSubject()); this.mailSender.send(message); } catch (MailException e) { log.error("Unable to send password reset email ", e); } catch (MessagingException e) { log.error("Unable to send password reset email ", e); } catch (UnsupportedEncodingException e) { log.error("Unable to send password reset email ", e); } }
From source file:org.kuali.coeus.common.impl.mail.KcEmailServiceImpl.java
public void sendEmailWithAttachments(String from, Set<String> toAddresses, String subject, Set<String> ccAddresses, Set<String> bccAddresses, String body, boolean htmlMessage, List<EmailAttachment> attachments) { if (mailSender != null) { if (CollectionUtils.isEmpty(toAddresses) && CollectionUtils.isEmpty(ccAddresses) && CollectionUtils.isEmpty(bccAddresses)) { return; }/*from www . j a v a2 s . c om*/ MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = null; try { helper = new MimeMessageHelper(message, true, DEFAULT_ENCODING); helper.setFrom(from); if (StringUtils.isNotBlank(subject)) { helper.setSubject(subject); } else { LOG.warn("Sending message with empty subject."); } if (isEmailTestEnabled()) { helper.setText(getTestMessageBody(body, toAddresses, ccAddresses, bccAddresses), true); String toAddress = getEmailNotificationTestAddress(); if (StringUtils.isNotBlank(getEmailNotificationTestAddress())) { helper.addTo(toAddress); } } else { helper.setText(body, htmlMessage); if (CollectionUtils.isNotEmpty(toAddresses)) { for (String toAddress : toAddresses) { try { helper.addTo(toAddress); } catch (Exception ex) { LOG.warn("Could not set to address:", ex); } } } if (CollectionUtils.isNotEmpty(ccAddresses)) { for (String ccAddress : ccAddresses) { try { helper.addCc(ccAddress); } catch (Exception ex) { LOG.warn("Could not set to address:", ex); } } } if (CollectionUtils.isNotEmpty(bccAddresses)) { for (String bccAddress : bccAddresses) { try { helper.addBcc(bccAddress); } catch (Exception ex) { LOG.warn("Could not set to address:", ex); } } } } if (CollectionUtils.isNotEmpty(attachments)) { for (EmailAttachment attachment : attachments) { try { helper.addAttachment(attachment.getFileName(), new ByteArrayResource(attachment.getContents()), attachment.getMimeType()); } catch (Exception ex) { LOG.warn("Could not set to address:", ex); } } } executorService.execute(() -> mailSender.send(message)); } catch (MessagingException ex) { LOG.error("Failed to create mime message helper.", ex); } } else { LOG.info( "Failed to send email due to inability to obtain valid email mailSender, please check your configuration."); } }
From source file:org.kuali.kra.service.impl.KcEmailServiceImpl.java
public void sendEmailWithAttachments(String from, Set<String> toAddresses, String subject, Set<String> ccAddresses, Set<String> bccAddresses, String body, boolean htmlMessage, List<EmailAttachment> attachments) { JavaMailSender sender = createSender(); if (sender != null) { MimeMessage message = sender.createMimeMessage(); MimeMessageHelper helper = null; try {/* www . j a v a 2 s . c o m*/ helper = new MimeMessageHelper(message, true, DEFAULT_ENCODING); helper.setFrom(from); if (CollectionUtils.isNotEmpty(toAddresses)) { for (String toAddress : toAddresses) { helper.addTo(toAddress); } } if (StringUtils.isNotBlank(subject)) { helper.setSubject(subject); } else { LOG.warn("Sending message with empty subject."); } helper.setText(body, htmlMessage); if (CollectionUtils.isNotEmpty(ccAddresses)) { for (String ccAddress : ccAddresses) { helper.addCc(ccAddress); } } if (CollectionUtils.isNotEmpty(bccAddresses)) { for (String bccAddress : bccAddresses) { helper.addBcc(bccAddress); } } if (CollectionUtils.isNotEmpty(attachments)) { for (EmailAttachment attachment : attachments) { helper.addAttachment(attachment.getFileName(), new ByteArrayResource(attachment.getContents()), attachment.getMimeType()); } } sender.send(message); } catch (MessagingException ex) { LOG.error("Failed to create mime message helper.", ex); } catch (Exception e) { LOG.error("Failed to send email.", e); } } else { LOG.info( "Failed to send email due to inability to obtain valid email sender, please check your configuration."); } }
From source file:org.openremote.modeler.service.impl.UserServiceImpl.java
/** * {@inheritDoc}/*from w ww. ja v a2s.co m*/ */ public boolean sendRegisterActivationEmail(final User user) { if (user == null || user.getOid() == 0 || StringUtils.isEmpty(user.getEmail()) || StringUtils.isEmpty(user.getUsername()) || StringUtils.isEmpty(user.getPassword())) { return false; } MimeMessagePreparator preparator = new MimeMessagePreparator() { @SuppressWarnings("unchecked") public void prepare(MimeMessage mimeMessage) throws Exception { MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8"); message.setSubject("OpenRemote Boss 2.0 Account Registration Confirmation"); message.setTo(user.getEmail()); message.setFrom(mailSender.getUsername()); Map model = new HashMap(); model.put("user", user); String rpwd = user.getRawPassword(); StringBuffer maskPwd = new StringBuffer(); maskPwd.append(rpwd.substring(0, 1)); for (int i = 0; i < rpwd.length() - 2; i++) { maskPwd.append("*"); } maskPwd.append(rpwd.substring(rpwd.length() - 1)); model.put("maskPassword", maskPwd.toString()); model.put("webapp", configuration.getWebappServerRoot()); model.put("aid", new Md5PasswordEncoder().encodePassword(user.getUsername(), user.getPassword())); String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, Constants.REGISTRATION_ACTIVATION_EMAIL_VM_NAME, "UTF-8", model); message.setText(text, true); } }; try { this.mailSender.send(preparator); log.info("Sent 'Modeler Account Registration Confirmation' email to " + user.getEmail()); return true; } catch (MailException e) { log.error("Can't send 'Modeler Account Registration Confirmation' email", e); return false; } }
From source file:org.openremote.modeler.service.impl.UserServiceImpl.java
public boolean sendInvitation(final User invitee, final User currentUser) { if (invitee == null || invitee.getOid() == 0 || StringUtils.isEmpty(invitee.getEmail())) { return false; }//from w ww . j a v a2 s .co m MimeMessagePreparator preparator = new MimeMessagePreparator() { @SuppressWarnings("unchecked") public void prepare(MimeMessage mimeMessage) throws Exception { MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8"); message.setSubject("Invitation to Share an OpenRemote Boss 2.0 Account"); message.setTo(invitee.getEmail()); message.setFrom(mailSender.getUsername()); Map model = new HashMap(); model.put("uid", invitee.getOid()); model.put("role", invitee.getRole()); model.put("cid", currentUser.getOid()); model.put("host", currentUser.getEmail()); model.put("webapp", configuration.getWebappServerRoot()); model.put("aid", new Md5PasswordEncoder().encodePassword(invitee.getEmail(), currentUser.getPassword())); String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, Constants.REGISTRATION_INVITATION_EMAIL_VM_NAME, "UTF-8", model); message.setText(text, true); } }; try { this.mailSender.send(preparator); log.info("Sent 'Modeler Account Invitation' email to " + invitee.getEmail()); return true; } catch (MailException e) { log.error("Can't send 'Modeler Account Invitation' email", e); return false; } }
From source file:org.openremote.modeler.service.impl.UserServiceImpl.java
public User forgetPassword(String username) { final User user = genericDAO.getByNonIdField(User.class, "username", username); final String passwordToken = UUID.randomUUID().toString(); MimeMessagePreparator preparator = new MimeMessagePreparator() { @SuppressWarnings("unchecked") public void prepare(MimeMessage mimeMessage) throws Exception { MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, "UTF-8"); message.setSubject("OpenRemote Password Assistance"); message.setTo(user.getEmail()); message.setFrom(mailSender.getUsername()); Map model = new HashMap(); model.put("webapp", configuration.getWebappServerRoot()); model.put("username", user.getUsername()); model.put("uid", user.getOid()); model.put("aid", passwordToken); String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, Constants.FORGET_PASSWORD_EMAIL_VM_NAME, "UTF-8", model); message.setText(text, true); }//from w ww .j a v a2 s. co m }; try { this.mailSender.send(preparator); log.info("Sent 'Reset password' email to " + user.getEmail()); user.setToken(passwordToken); updateUser(user); return user; } catch (MailException e) { log.error("Can't send 'Reset password' email", e); return null; } }
From source file:org.osaf.cosmo.scheduler.EmailNotifier.java
protected void sendEmail(final String[] emailAddresses, final String subject, final String text, final boolean isHtml) { if (log.isDebugEnabled()) { log.debug("sending email to:"); for (String s : emailAddresses) log.debug(s);/* www . j a va 2 s . c o m*/ log.debug(subject); log.debug(text); } for (final String address : emailAddresses) { try { mailSender.send(new MimeMessagePreparator() { public void prepare(MimeMessage mimeMessage) throws MessagingException { String fromAddr = properties.get(PROPERTY_FROM_ADDRESS); String fromHandle = properties.get(PROPERTY_FROM_HANDLE); MimeMessageHelper message = new MimeMessageHelper(mimeMessage); message.setFrom("\"" + fromHandle + "\" <" + fromAddr + ">"); message.setTo(address.trim()); message.setSubject(subject); message.setText(text, isHtml); } }); } catch (MailAuthenticationException e) { log.error(e.getMessage()); } catch (MailException e) { log.info("failed to send email to " + address + ": " + e.getMessage()); } } }
From source file:org.oscarehr.renal.web.RenalAction.java
public ActionForward sendPatientLetterAsEmail(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String demographicNo = request.getParameter("demographic_no"); String error = ""; boolean success = true; JSONObject json = new JSONObject(); final Demographic d = demographicDao.getDemographic(demographicNo); if (d == null) { error = "Patient not found."; success = false;/*from w w w. j a v a 2s . c o m*/ } if (d.getEmail() == null || d.getEmail().length() == 0 || d.getEmail().indexOf("@") == -1) { error = "No valid email address found for patient."; success = false; } if (success) { try { String documentDir = oscar.OscarProperties.getInstance().getProperty("DOCUMENT_DIR", ""); File f = new File(documentDir, "orn_patient_letter.txt"); String template = IOUtils.toString(new FileInputStream(f)); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); VelocityContext velocityContext = VelocityUtils.createVelocityContextWithTools(); velocityContext.put("patient", d); velocityContext.put("currentDate", sdf.format(new Date())); Provider mrp = null; if (d.getProviderNo() != null && d.getProviderNo().length() > 0) { mrp = providerDao.getProvider(d.getProviderNo()); } else { mrp = providerDao.getProvider(OscarProperties.getInstance().getProperty("orn.default_mrp", "")); } velocityContext.put("mrp", mrp); final String mrp1 = mrp.getFullName(); final String letter = VelocityUtils.velocityEvaluate(velocityContext, template); JavaMailSender mailSender = (JavaMailSender) SpringUtils.getBean("mailSender"); MimeMessagePreparator preparator = new MimeMessagePreparator() { public void prepare(MimeMessage mimeMessage) throws Exception { MimeMessageHelper message = new MimeMessageHelper(mimeMessage); message.setTo(d.getEmail()); message.setSubject(OscarProperties.getInstance().getProperty("orn.email.subject", "Important Message from " + mrp1)); message.setFrom(OscarProperties.getInstance().getProperty("orn.email.from", "no-reply@oscarmcmaster.org")); message.setText(letter, true); } }; mailSender.send(preparator); } catch (IOException e) { MiscUtils.getLogger().error("Error", e); success = false; error = e.getMessage(); } finally { OscarAuditLogger.getInstance().log("create", "CkdPatientLetter", Integer.valueOf(demographicNo), ""); OscarAuditLogger.getInstance().log("email", "CkdPatientLetter", Integer.valueOf(demographicNo), ""); } } json.put("success", String.valueOf(success)); json.put("error", error); try { json.write(response.getWriter()); } catch (IOException e) { MiscUtils.getLogger().error("error", e); } return null; }
From source file:org.patientview.monitoring.ImportMonitor.java
public static void sendEmail(String from, String[] to, String[] bcc, String subject, String body) { if (StringUtils.isBlank(from)) { throw new IllegalArgumentException("Cannot send mail missing 'from'"); }//from www . j a v a 2 s .c o m if ((to == null || to.length == 0) && (bcc == null || bcc.length == 0)) { throw new IllegalArgumentException("Cannot send mail missing recipients"); } if (StringUtils.isBlank(subject)) { throw new IllegalArgumentException("Cannot send mail missing 'subject'"); } if (StringUtils.isBlank(body)) { throw new IllegalArgumentException("Cannot send mail missing 'body'"); } ApplicationContext context = new ClassPathXmlApplicationContext( new String[] { "classpath*:context-standalone.xml" }); JavaMailSender javaMailSender = (JavaMailSender) context.getBean("javaMailSender"); MimeMessage message = javaMailSender.createMimeMessage(); MimeMessageHelper messageHelper; try { messageHelper = new MimeMessageHelper(message, true); messageHelper.setTo(to); if (bcc != null && bcc.length > 0) { Address[] bccAddresses = new Address[bcc.length]; for (int i = 0; i < bcc.length; i++) { bccAddresses[i] = new InternetAddress(bcc[i]); } message.addRecipients(Message.RecipientType.BCC, bccAddresses); } messageHelper.setFrom(from); messageHelper.setSubject(subject); messageHelper.setText(body, false); // Note: the second param indicates to send plaintext javaMailSender.send(messageHelper.getMimeMessage()); LOGGER.info("Sent an email about Importer issues. From: {} To: {}", from, Arrays.toString(to)); } catch (Exception e) { LOGGER.error("Could not send email: {}", e); } }
From source file:org.springframework.integration.samples.mailattachments.MimeMessageParsingTest.java
/** * This test will create a Mime Message that in return contains another * mime message. The nested mime message contains an attachment. * * The root message consist of both HTML and Text message. * *//*w w w. java2 s . co m*/ @Test public void testProcessingOfNestedEmailAttachments() { final JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); mailSender.setPort(this.wiserPort); final MimeMessage rootMessage = mailSender.createMimeMessage(); try { final MimeMessageHelper messageHelper = new MimeMessageHelper(rootMessage, true); messageHelper.setFrom("testfrom@springintegration.org"); messageHelper.setTo("testto@springintegration.org"); messageHelper.setSubject("Parsing of Attachments"); messageHelper.setText("Spring Integration Rocks!", "Spring Integration <b>Rocks</b>!"); final String pictureName = "picture.png"; final ByteArrayResource byteArrayResource = getFileData(pictureName); messageHelper.addInline("picture12345", byteArrayResource, "image/png"); } catch (MessagingException e) { throw new MailParseException(e); } mailSender.send(rootMessage); final List<WiserMessage> wiserMessages = wiser.getMessages(); Assert.assertTrue(wiserMessages.size() == 1); boolean foundTextMessage = false; boolean foundPicture = false; boolean foundHtmlMessage = false; for (WiserMessage wiserMessage : wiserMessages) { List<EmailFragment> emailFragments = new ArrayList<EmailFragment>(); try { final MimeMessage mailMessage = wiserMessage.getMimeMessage(); EmailParserUtils.handleMessage(null, mailMessage, emailFragments); } catch (MessagingException e) { throw new IllegalStateException("Error while retrieving Mime Message."); } Assert.assertTrue(emailFragments.size() == 3); for (EmailFragment emailFragment : emailFragments) { if ("<picture12345>".equals(emailFragment.getFilename())) { foundPicture = true; } if ("message.txt".equals(emailFragment.getFilename())) { foundTextMessage = true; } if ("message.html".equals(emailFragment.getFilename())) { foundHtmlMessage = true; } } Assert.assertTrue(foundPicture); Assert.assertTrue(foundTextMessage); Assert.assertTrue(foundHtmlMessage); } }