List of usage examples for org.springframework.mail.javamail MimeMessageHelper setBcc
public void setBcc(String[] bcc) throws MessagingException
From source file:de.whs.poodle.services.EmailService.java
public void sendMail(Instructor from, String toUsername, List<String> bccUsernames, boolean senderBcc, String subject, String text, boolean setNoReply) throws MessagingException { if (bccUsernames == null) bccUsernames = new ArrayList<>(); if (toUsername == null && bccUsernames.isEmpty()) { log.info("sendMail(): no recipients, aborting."); return;/*from w ww . j a v a 2 s. com*/ } // may be empty if bccUsernames was not specified List<String> bccEmails = getEmailsForUsernames(bccUsernames); String fromEmail = getEmailForUsername(from.getUsername()); // create "from" as "FirstName LastName <email@w-hs.de>" String fromStr = String.format("%s %s <%s>", from.getFirstName(), from.getLastName(), fromEmail); if (senderBcc) bccEmails.add(fromEmail); // create MimeMessage MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, "UTF-8"); helper.setSubject("[Poodle] " + subject); helper.setFrom(fromStr); if (toUsername != null) { String toEmail = getEmailForUsername(toUsername); helper.setTo(toEmail); } if (!bccEmails.isEmpty()) helper.setBcc(bccEmails.toArray(new String[0])); if (setNoReply) helper.setReplyTo(poodle.getEmailNoReplyAddress()); helper.setText(text); mailSender.send(mimeMessage); }
From source file:org.opentides.eventhandler.EmailHandler.java
public void sendEmail(String[] to, String[] cc, String[] bcc, String replyTo, String subject, String body, File[] attachments) {/* w w w . j a va 2s. c o m*/ try { MimeMessage mimeMessage = javaMailSender.createMimeMessage(); MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true); mimeMessageHelper.setTo(toInetAddress(to)); InternetAddress[] ccAddresses = toInetAddress(cc); if (ccAddresses != null) mimeMessageHelper.setCc(ccAddresses); InternetAddress[] bccAddresses = toInetAddress(bcc); if (bccAddresses != null) mimeMessageHelper.setBcc(bccAddresses); if (!StringUtil.isEmpty(replyTo)) mimeMessageHelper.setReplyTo(replyTo); Map<String, Object> templateVariables = new HashMap<String, Object>(); templateVariables.put("message-title", subject); templateVariables.put("message-body", body); StringWriter writer = new StringWriter(); VelocityEngineUtils.mergeTemplate(velocityEngine, mailVmTemplate, "UTF-8", templateVariables, writer); mimeMessageHelper.setFrom(new InternetAddress(this.fromEmail, this.fromName)); mimeMessageHelper.setSubject(subject); mimeMessageHelper.setText(writer.toString(), true); // check for attachment if (attachments != null && attachments.length > 0) { for (File attachment : attachments) { mimeMessageHelper.addAttachment(attachment.getName(), attachment); } } /** * The name of the identifier should be image * the number after the image name is the counter * e.g. <img src="cid:image1" /> */ if (imagesPath != null && imagesPath.size() > 0) { int x = 1; for (String path : imagesPath) { FileSystemResource res = new FileSystemResource(new File(path)); String imageName = "image" + x; mimeMessageHelper.addInline(imageName, res); x++; } } javaMailSender.send(mimeMessage); } catch (MessagingException e) { _log.error(e, e); } catch (UnsupportedEncodingException uee) { _log.error(uee, uee); } }
From source file:org.toobsframework.email.SmtpMailSender.java
public void sendEmail(EmailBean email) throws MailException, MessagingException { JavaMailSender javaMailSender = (JavaMailSender) javaMailSenders.get(email.getMailSenderKey()); if (javaMailSender == null) { throw new MessagingException(email.getMailSenderKey() + " is an invalid mailSenderKey"); }/* w w w . j av a 2 s . co m*/ if (this.getMailProperties() != null) { ((JavaMailSenderImpl) javaMailSender).setJavaMailProperties(this.getMailProperties()); } try { String[] recipients = this.processRecipients(email.getRecipients()); String[] bccs = new String[email.getBccs().size()]; for (int i = 0; i < recipients.length; i++) { MimeMessage message = null; MimeMessageHelper helper = null; String thisRecipient = recipients[i]; switch (email.getType()) { case EmailBean.MESSAGE_TYPE_TEXT: message = javaMailSender.createMimeMessage(); helper = new MimeMessageHelper(message, false, "us-ascii"); helper.setSubject(email.getEmailSubject()); helper.setFrom(email.getEmailSender()); helper.setTo(thisRecipient); helper.setBcc((String[]) email.getBccs().toArray(bccs)); helper.setText(email.getMessageText(), false); log.info("Sending message " + message.toString()); javaMailSender.send(message); break; case EmailBean.MESSAGE_TYPE_HTML: message = javaMailSender.createMimeMessage(); helper = new MimeMessageHelper(message, true, "us-ascii"); helper.setSubject(email.getEmailSubject()); helper.setFrom(email.getEmailSender()); helper.setTo(thisRecipient); helper.setBcc((String[]) email.getBccs().toArray(bccs)); helper.setText(email.getMessageText(), email.getMessageHtml()); log.info("Sending message " + message.toString()); javaMailSender.send(message); break; } } } catch (Exception e) { log.error("Mail exception " + e.getMessage(), e); throw new MessagingException(e.getMessage()); } }
From source file:hornet.framework.mail.MailServiceImpl.java
/** * Adds the extra smtp field.//from ww w .j av a2 s . co m * * @param paramMap * the param map * @param helper * the helper * @throws MessagingException * the messaging exception */ protected void addExtraSmtpField(final Map<String, Object> paramMap, final MimeMessageHelper helper) throws MessagingException { if (paramMap != null) { if (paramMap.containsKey(SMTP_HEADER_REPLYTO)) { helper.setReplyTo((String) paramMap.get(SMTP_HEADER_REPLYTO)); } if (paramMap.containsKey(SMTP_HEADER_BCC)) { helper.setBcc((String) paramMap.get(SMTP_HEADER_BCC)); } if (paramMap.containsKey(SMTP_HEADER_CC)) { helper.setCc((String) paramMap.get(SMTP_HEADER_CC)); } if (paramMap.containsKey(SMTP_HEADER_PRIORITY)) { helper.setPriority((Integer) paramMap.get(SMTP_HEADER_PRIORITY)); } if (paramMap.containsKey(SMTP_HEADER_RETURNPATH)) { ((SMTPMessage) helper.getMimeMessage()) .setEnvelopeFrom((String) paramMap.get(SMTP_HEADER_RETURNPATH)); } if (paramMap.containsKey(SMTP_ATTACHMENT_CONTENU)) { helper.addAttachment((String) paramMap.get(SMTP_ATTACHMENT_NOM), (InputStreamSource) paramMap.get(SMTP_ATTACHMENT_CONTENU)); } } }
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. ja v a2 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:csns.util.EmailUtils.java
public boolean sendHtmlMail(Email email) { MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message); try {//from w w w. j a v a 2s . c o m message.setContent(getHtml(email), "text/html"); helper.setSubject(email.getSubject()); helper.setFrom(email.getAuthor().getPrimaryEmail()); helper.setCc(email.getAuthor().getPrimaryEmail()); String addresses[] = getAddresses(email.getRecipients(), email.isUseSecondaryEmail()) .toArray(new String[0]); if (addresses.length > 1) { helper.setTo(appEmail); helper.setBcc(addresses); } else helper.setTo(addresses); mailSender.send(message); logger.info(email.getAuthor().getUsername() + " sent email to " + StringUtils.arrayToCommaDelimitedString(addresses)); return true; } catch (MessagingException e) { logger.warn("Fail to send MIME message", e); } return false; }
From source file:jp.co.opentone.bsol.linkbinder.service.notice.impl.SendMailServiceImpl.java
public boolean sendMail(EmailNotice emailNotice) { MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message); try {/* ww w . j a va 2s. c om*/ helper.setSubject(emailNotice.getMhSubject()); helper.setText(emailNotice.getMailBody()); String[] addresses = convertEmpNoToMailAddress(emailNotice.getMhTo()); if (addresses.length == 0) { LOG.warn( "to???????????????????" + "??????email_notice.id = {}", emailNotice.getId()); return false; } helper.setBcc(addresses); // String [] from = convertEmpNoToMailAddress(emailNotice.getMhFrom()); // if (from.length == 0) { // LOG.warn("from???????????????????" // + "??????email_notice.id = {}", emailNotice.getId()); // return false; // } helper.setFrom(emailNotice.getMhFrom()); mailSender.send(message); return true; } catch (MessagingException e) { LOG.warn("??????", e); return false; } }
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// w w w .j a va2 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.glaf.mail.MailSenderImpl.java
public void send(JavaMailSender javaMailSender, MailMessage mailMessage) throws Exception { if (StringUtils.isEmpty(mailMessage.getMessageId())) { mailMessage.setMessageId(UUID32.getUUID()); }//from w w w .ja v a2 s. c o m mailHelper = new MxMailHelper(); MimeMessage mimeMessage = javaMailSender.createMimeMessage(); MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true); if (StringUtils.isNotEmpty(mailMessage.getFrom())) { messageHelper.setFrom(mailMessage.getFrom()); mailFrom = mailMessage.getFrom(); } else { if (StringUtils.isEmpty(mailFrom)) { mailFrom = MailProperties.getString("mail.mailFrom"); } messageHelper.setFrom(mailFrom); } logger.debug("mailFrom:" + mailFrom); if (mailMessage.getTo() != null) { messageHelper.setTo(mailMessage.getTo()); } if (mailMessage.getCc() != null) { messageHelper.setCc(mailMessage.getCc()); } if (mailMessage.getBcc() != null) { messageHelper.setBcc(mailMessage.getBcc()); } if (mailMessage.getReplyTo() != null) { messageHelper.setReplyTo(mailMessage.getReplyTo()); } String mailSubject = mailMessage.getSubject(); if (mailSubject == null) { mailSubject = ""; } if (mailSubject != null) { // mailSubject = MimeUtility.encodeText(new // String(mailSubject.getBytes(), encoding), encoding, "B"); mailSubject = MimeUtility.encodeWord(mailSubject); } mimeMessage.setSubject(mailSubject); Map<String, Object> dataMap = mailMessage.getDataMap(); if (dataMap == null) { dataMap = new java.util.HashMap<String, Object>(); } String serviceUrl = SystemConfig.getServiceUrl(); logger.debug("mailSubject:" + mailSubject); logger.debug("serviceUrl:" + serviceUrl); if (serviceUrl != null) { String loginUrl = serviceUrl + "/mx/login"; String mainUrl = serviceUrl + "/mx/main"; logger.debug("loginUrl:" + loginUrl); dataMap.put("loginUrl", loginUrl); dataMap.put("mainUrl", mainUrl); } mailMessage.setDataMap(dataMap); if (StringUtils.isEmpty(mailMessage.getContent())) { Template template = TemplateContainer.getContainer().getTemplate(mailMessage.getTemplateId()); if (template != null) { String templateType = template.getTemplateType(); logger.debug("templateType:" + templateType); // logger.debug("content:" + template.getContent()); if (StringUtils.equals(templateType, "eml")) { if (template.getContent() != null) { Mail m = mailHelper.getMail(template.getContent().getBytes()); String content = m.getContent(); if (StringUtils.isNotEmpty(content)) { template.setContent(content); try { Writer writer = new StringWriter(); TemplateUtils.evaluate(mailMessage.getTemplateId(), dataMap, writer); String text = writer.toString(); writer.close(); writer = null; mailMessage.setContent(text); } catch (Exception ex) { ex.printStackTrace(); throw new RuntimeException(ex); } } } } else { try { String text = TemplateUtils.process(dataMap, template.getContent()); mailMessage.setContent(text); } catch (Exception ex) { ex.printStackTrace(); throw new RuntimeException(ex); } } } } if (StringUtils.isNotEmpty(mailMessage.getContent())) { String text = mailMessage.getContent(); if (StringUtils.isNotEmpty(callbackUrl)) { String href = callbackUrl + "?messageId=" + mailMessage.getMessageId(); text = mailHelper.embedCallbackScript(text, href); mailMessage.setContent(text); logger.debug(text); messageHelper.setText(text, true); } messageHelper.setText(text, true); } logger.debug("mail body:" + mailMessage.getContent()); Collection<Object> files = mailMessage.getFiles(); if (files != null && !files.isEmpty()) { Iterator<Object> iterator = files.iterator(); while (iterator.hasNext()) { Object object = iterator.next(); if (object instanceof java.io.File) { java.io.File file = (java.io.File) object; FileSystemResource resource = new FileSystemResource(file); String name = file.getName(); name = MailTools.chineseStringToAscii(name); messageHelper.addAttachment(name, resource); logger.debug("add attachment:" + name); } else if (object instanceof DataSource) { DataSource dataSource = (DataSource) object; String name = dataSource.getName(); name = MailTools.chineseStringToAscii(name); messageHelper.addAttachment(name, dataSource); logger.debug("add attachment:" + name); } else if (object instanceof DataFile) { DataFile dataFile = (DataFile) object; if (StringUtils.isNotEmpty(dataFile.getFilename())) { String name = dataFile.getFilename(); name = MailTools.chineseStringToAscii(name); InputStreamSource inputStreamSource = new MxMailInputSource(dataFile); messageHelper.addAttachment(name, inputStreamSource); logger.debug("add attachment:" + name); } } } } mimeMessage.setSentDate(new java.util.Date()); javaMailSender.send(mimeMessage); logger.info("-----------------------------------------"); logger.info("????"); logger.info("-----------------------------------------"); }