List of usage examples for org.springframework.mail.javamail MimeMessageHelper setTo
public void setTo(String[] to) 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);// ww w .j a v a2 s. 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.jasig.ssp.service.impl.MessageServiceImpl.java
@Override @Transactional(readOnly = false)// w w w.j ava 2 s . c o m public boolean sendMessage(@NotNull final Message message) throws ObjectNotFoundException, SendFailedException, UnsupportedEncodingException { LOGGER.info("BEGIN : sendMessage()"); LOGGER.info(addMessageIdToError(message) + "Sending message: {}", message.toString()); try { final MimeMessage mimeMessage = javaMailSender.createMimeMessage(); final MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage); // process FROM addresses InternetAddress from; String appName = configService.getByName("app_title").getValue(); //We used the configured outbound email address for every outgoing message //If a message was initiated by an end user, their name will be attached to the 'from' while //the configured outbound address will be the actual address used for example "Amy Aministrator (SSP) <myconfiguredaddress@foobar.com>" String name = appName + " Administrator"; if (message.getSender() != null && !message.getSender().getEmailAddresses().isEmpty() && !message.getSender().getId().equals(Person.SYSTEM_ADMINISTRATOR_ID)) { InternetAddress[] froms = getEmailAddresses(message.getSender(), "from:", message.getId()); if (froms.length > 0) { name = message.getSender().getFullName() + " (" + appName + ")"; } } from = new InternetAddress(configService.getByName("outbound_email_address").getValue(), name); if (!this.validateEmail(from.getAddress())) { throw new AddressException("Invalid from: email address [" + from.getAddress() + "]"); } mimeMessageHelper.setFrom(from); message.setSentFromAddress(from.toString()); mimeMessageHelper.setReplyTo(from); message.setSentReplyToAddress(from.toString()); // process TO addresses InternetAddress[] tos = null; if (message.getRecipient() != null && message.getRecipient().hasEmailAddresses()) { // NOPMD by jon.adams tos = getEmailAddresses(message.getRecipient(), "to:", message.getId()); } else { tos = getEmailAddresses(message.getRecipientEmailAddress(), "to:", message.getId()); } if (tos.length > 0) { mimeMessageHelper.setTo(tos); message.setSentToAddresses(StringUtils.join(tos, ",").trim()); } else { StringBuilder errorMsg = new StringBuilder(); errorMsg.append(addMessageIdToError(message) + " Message " + message.toString() + " could not be sent. No valid recipient email address found: '"); if (message.getRecipient() != null) { errorMsg.append(message.getRecipient().getPrimaryEmailAddress()); } else { errorMsg.append(message.getRecipientEmailAddress()); } LOGGER.error(errorMsg.toString()); throw new MessagingException(errorMsg.toString()); } // process BCC addresses try { InternetAddress[] bccs = getEmailAddresses(getBcc(), "bcc:", message.getId()); if (bccs.length > 0) { mimeMessageHelper.setBcc(bccs); message.setSentBccAddresses(StringUtils.join(bccs, ",").trim()); } } catch (Exception exp) { LOGGER.warn("Unrecoverable errors were generated adding carbon copy to message: " + message.getId() + "Attempt to send message still initiated.", exp); } // process CC addresses try { InternetAddress[] carbonCopies = getEmailAddresses(message.getCarbonCopy(), "cc:", message.getId()); if (carbonCopies.length > 0) { mimeMessageHelper.setCc(carbonCopies); message.setSentCcAddresses(StringUtils.join(carbonCopies, ",").trim()); } } catch (Exception exp) { LOGGER.warn("Unrecoverable errors were generated adding bcc to message: " + message.getId() + "Attempt to send message still initiated.", exp); } mimeMessageHelper.setSubject(message.getSubject()); mimeMessageHelper.setText(message.getBody()); mimeMessage.setContent(message.getBody(), "text/html"); send(mimeMessage); message.setSentDate(new Date()); messageDao.save(message); } catch (final MessagingException e) { LOGGER.error("ERROR : sendMessage() : {}", e); handleSendMessageError(message); throw new SendFailedException(addMessageIdToError(message) + "The message parameters were invalid.", e); } LOGGER.info("END : sendMessage()"); return true; }
From source file:org.mifosplatform.infrastructure.reportmailingjob.service.ReportMailingJobEmailServiceImpl.java
@Override public void sendEmailWithAttachment(ReportMailingJobEmailData reportMailingJobEmailData) { try {/*from w w w .j ava 2s.c o m*/ // get all ReportMailingJobConfiguration objects from the database this.reportMailingJobConfigurationDataCollection = this.reportMailingJobConfigurationReadPlatformService .retrieveAllReportMailingJobConfigurations(); JavaMailSenderImpl javaMailSenderImpl = new JavaMailSenderImpl(); javaMailSenderImpl.setHost(this.getReportSmtpServer()); javaMailSenderImpl.setPort(this.getRerportSmtpPort()); javaMailSenderImpl.setUsername(this.getReportSmtpUsername()); javaMailSenderImpl.setPassword(this.getReportSmtpPassword()); javaMailSenderImpl.setJavaMailProperties(this.getJavaMailProperties()); MimeMessage mimeMessage = javaMailSenderImpl.createMimeMessage(); // use the true flag to indicate you need a multipart message MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true); mimeMessageHelper.setTo(reportMailingJobEmailData.getTo()); mimeMessageHelper.setFrom(this.getReportSmtpFromAddress()); mimeMessageHelper.setText(reportMailingJobEmailData.getText()); mimeMessageHelper.setSubject(reportMailingJobEmailData.getSubject()); if (reportMailingJobEmailData.getAttachment() != null) { mimeMessageHelper.addAttachment(reportMailingJobEmailData.getAttachment().getName(), reportMailingJobEmailData.getAttachment()); } javaMailSenderImpl.send(mimeMessage); } catch (MessagingException e) { // handle the exception e.printStackTrace(); } }
From source file:org.openremote.modeler.service.impl.UserServiceImpl.java
/** * {@inheritDoc}//ww w .j a v a2 s .c o 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. ja v a 2s. c o 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 w w . j a v a2s . c o 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.openvpms.web.component.error.ErrorReporter.java
/** * Reports an error./*from ww w . j a v a2 s. c om*/ * * @param report the error report * @param replyTo the reply-to email address. May be {@code null} */ public void report(final ErrorReport report, String replyTo) { try { JavaMailSender sender = ServiceHelper.getMailSender(); MimeMessage message = sender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true); String subject = report.getVersion() + ": " + report.getMessage(); helper.setSubject(subject); helper.setFrom(from); helper.setTo(to); if (!StringUtils.isEmpty(replyTo)) { helper.setReplyTo(replyTo); } String text = getText(report); if (text != null) { helper.setText(text); } InputStreamSource source = new InputStreamSource() { public InputStream getInputStream() { return new ByteArrayInputStream(report.toXML().getBytes()); } }; helper.addAttachment("error-report.xml", source, DocFormats.XML_TYPE); sender.send(message); } catch (Throwable exception) { log.error(exception, exception); ErrorDialog.show(Messages.get("errorreportdialog.senderror")); } }
From source file:org.openvpms.web.component.mail.AbstractMailer.java
/** * Populates the mail message./*from w w w . ja va 2 s.com*/ * * @param helper the message helper * @throws MessagingException for any messaging error * @throws UnsupportedEncodingException if the character encoding is not supported */ protected void populateMessage(MimeMessageHelper helper) throws MessagingException, UnsupportedEncodingException { helper.setFrom(getFrom()); String[] to = getTo(); if (to != null && to.length != 0) { helper.setTo(to); } String[] cc = getCc(); if (cc != null && cc.length != 0) { helper.setCc(cc); } String[] bcc = getBcc(); if (bcc != null && bcc.length != 0) { helper.setBcc(bcc); } helper.setSubject(getSubject()); if (body != null) { helper.setText(body); } else { helper.setText(""); } for (Document attachment : attachments) { addAttachment(helper, attachment); } }
From source file:org.openvpms.web.workspace.reporting.reminder.ReminderEmailProcessor.java
/** * Processes a list of reminder events.//from w ww . ja va2s . co m * * @param events the events * @param shortName the report archetype short name, used to select the document template if none specified * @param documentTemplate the document template to use. May be {@code null} */ protected void process(List<ReminderEvent> events, String shortName, DocumentTemplate documentTemplate) { ReminderEvent event = events.get(0); Contact contact = event.getContact(); DocumentTemplateLocator locator = new ContextDocumentTemplateLocator(documentTemplate, shortName, getContext()); documentTemplate = locator.getTemplate(); if (documentTemplate == null) { throw new ReportingException(ReminderMissingDocTemplate); } try { EmailAddress from = addresses.getAddress(event.getCustomer()); IMObjectBean bean = new IMObjectBean(contact); String to = bean.getString("emailAddress"); MimeMessage message = sender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setValidateAddresses(true); helper.setFrom(from.getAddress(), from.getName()); helper.setTo(to); String subject = documentTemplate.getEmailSubject(); if (StringUtils.isEmpty(subject)) { subject = documentTemplate.getName(); } String body = documentTemplate.getEmailText(); if (StringUtils.isEmpty(body)) { throw new ReportingException(TemplateMissingEmailText, documentTemplate.getName()); } helper.setText(body); final Document reminder = createReport(events, documentTemplate); final DocumentHandler handler = handlers.get(reminder.getName(), reminder.getArchetypeId().getShortName(), reminder.getMimeType()); helper.setSubject(subject); helper.addAttachment(reminder.getName(), new InputStreamSource() { public InputStream getInputStream() { return handler.getContent(reminder); } }); sender.send(message); } catch (ArchetypeServiceException exception) { throw exception; } catch (ReminderProcessorException exception) { throw exception; } catch (ReportingException exception) { throw exception; } catch (Throwable exception) { throw new ReportingException(FailedToProcessReminder, exception, exception.getMessage()); } }
From source file:org.openvpms.web.workspace.reporting.statement.StatementEmailProcessor.java
/** * Processes a statement./* w w w. j ava2 s.co m*/ * * @param statement the event to process * @throws OpenVPMSException for any error */ public void process(Statement statement) { try { MimeMessage message = sender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true); List<Contact> contacts = statement.getContacts(); if (contacts.isEmpty()) { throw new StatementProcessorException(NoContact, statement.getCustomer()); } Contact contact = contacts.get(0); IMObjectBean bean = new IMObjectBean(contact); if (!bean.isA(ContactArchetypes.EMAIL)) { throw new StatementProcessorException(NoContact, statement.getCustomer()); } String to = bean.getString("emailAddress"); EmailAddress email = addresses.getAddress(statement.getCustomer()); helper.setFrom(email.getAddress(), email.getName()); helper.setTo(to); helper.setSubject(emailSubject); helper.setText(emailText); Iterable<IMObject> objects = getActs(statement); Reporter reporter = ReporterFactory.create(objects, template, TemplatedReporter.class); reporter.setParameters(getParameters(statement)); reporter.setFields(fields); final Document doc = reporter.getDocument(DocFormats.PDF_TYPE, true); final DocumentHandler handler = handlers.get(doc.getName(), doc.getArchetypeId().getShortName(), doc.getMimeType()); helper.addAttachment(doc.getName(), new InputStreamSource() { public InputStream getInputStream() { return handler.getContent(doc); } }); sender.send(message); if (!statement.isPreview() && !statement.isPrinted()) { setPrinted(statement); } } catch (ArchetypeServiceException exception) { throw exception; } catch (StatementProcessorException exception) { throw exception; } catch (Throwable exception) { throw new StatementProcessorException(exception, FailedToProcessStatement, exception.getMessage()); } }