Example usage for org.springframework.mail.javamail MimeMessageHelper setFrom

List of usage examples for org.springframework.mail.javamail MimeMessageHelper setFrom

Introduction

In this page you can find the example usage for org.springframework.mail.javamail MimeMessageHelper setFrom.

Prototype

public void setFrom(String from, String personal) throws MessagingException, UnsupportedEncodingException 

Source Link

Usage

From source file:com.springstudy.utils.email.MimeMailService.java

/**
 * ??MIME?./*  w  w w  .jav a  2 s .  c o m*/
 */
public boolean sendNotificationMail(com.gmk.framework.common.utils.email.Email email) {
    try {
        MimeMessage msg = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(msg, true, DEFAULT_ENCODING);
        //??????
        String from = Global.getConfig("productName");
        if (StringUtils.isNotEmpty(email.getFrom())) {
            from = from + "-" + email.getFrom();
        }
        helper.setFrom(Global.getConfig("mailFrom"), from);
        helper.setTo(email.getAddress());
        if (StringUtils.isNotEmpty(email.getCc())) {
            String cc[] = email.getCc().split(";");
            helper.setCc(cc);//?
        }
        //
        helper.setSubject(email.getSubject());
        //
        if (StringUtils.isNotEmpty(email.getTemplate())) {
            String content = generateContent(email.getTemplate(), email.getContentMap());
            helper.setText(content, true);
        } else {
            helper.setText(email.getContent());
        }
        //
        if (ListUtils.isNotEmpty(email.getAttachment())) {
            for (File file : email.getAttachment()) {
                helper.addAttachment(MimeUtility.encodeWord(file.getName()), file);
            }
        }
        mailSender.send(msg);
        logger.info("HTML??");
        return true;
    } catch (MessagingException e) {
        logger.error(email.getAddressee() + "-" + email.getSubject() + "-" + "", e);
    } catch (Exception e) {
        logger.error(email.getAddressee() + "-" + email.getSubject() + "-" + "??", e);
    }
    return false;
}

From source file:business.services.MailService.java

@Transactional
public void notifyScientificCouncil(@NotNull RequestRepresentation request) {
    log.info("Notify scientic council for request " + request.getProcessInstanceId() + ".");

    List<User> members = userService.findScientificCouncilMembers();
    for (User member : members) {
        log.info("Sending notification to user " + member.getUsername());
        try {/*from www.  j  a  v  a2s . c o m*/
            MimeMessageHelper message = new MimeMessageHelper(mailSender.createMimeMessage());
            message.setTo(member.getContactData().getEmail());
            message.setFrom(getFrom(), fromName);
            message.setReplyTo(replyAddress, replyName);
            message.setSubject(String.format("Nieuwe PALGA-aanvraag aan u voorgelegd, aanvraagnummer: %s",
                    request.getRequestNumber()));
            String requestLink = getLink("/#/request/view/" + request.getProcessInstanceId());
            message.setText(String.format(scientificCouncilNotificationTemplate, requestLink));
            mailSender.send(message.getMimeMessage());
        } catch (MessagingException e) {
            log.error(e.getMessage());
            throw new EmailError("Email error: " + e.getMessage());
        } catch (UnsupportedEncodingException e) {
            log.error(e.getMessage());
            throw new EmailError("Email error: " + e.getMessage());
        }
    }
}

From source file:business.services.MailService.java

public void notifyHubuser(User hubUser, List<LabRequestRepresentation> labRequests) {
    if (!hubUser.isHubUser()) {
        log.warn("The user is no hub user: " + hubUser.getUsername());
        return;/*www  .  j av  a  2  s .c om*/
    }
    List<String> codes = new ArrayList<>();
    List<String> snippets = new ArrayList<>();
    for (LabRequestRepresentation labRequest : labRequests) {
        codes.add(labRequest.getLabRequestCode());
        String link = getLink("/#/lab-request/view/" + labRequest.getId());
        String snippet = String.format(hubUserNotificationLabSnippet, link, // %1
                labRequest.getLabRequestCode(), // %2
                labRequest.getRequest().getTitle(), // %3
                labRequest.getLab().getNumber(), // %4
                labRequest.getLab().getName(), // %5
                labRequest.getRequesterName(), // %6
                labRequest.getRequest().getPathologistName() == null ? ""
                        : labRequest.getRequest().getPathologistName(), // %7
                labRequest.getRequesterLab().getNumber(), // %8
                labRequest.getRequesterLab().getName() // %9
        );
        snippets.add(snippet);
    }
    String labRequestCodes = String.join(", ", codes);
    String labRequestSnippets = String.join("\n", snippets);

    log.info("Notify hub user " + hubUser.getUsername() + " for lab requests " + labRequestCodes + ".");

    if (hubUser.getContactData() == null || hubUser.getContactData().getEmail() == null
            || hubUser.getContactData().getEmail().trim().isEmpty()) {
        log.warn("No email address set for hub user " + hubUser.getUsername());
        return;
    }
    log.info("Sending notification to " + hubUser.getContactData().getEmail());
    try {
        MimeMessageHelper message = new MimeMessageHelper(mailSender.createMimeMessage());
        message.setTo(hubUser.getContactData().getEmail());
        message.setFrom(getFrom(), fromName);
        message.setReplyTo(replyAddress, replyName);
        message.setSubject(
                String.format("PALGA-verzoek aan laboratoria, aanvraagnummers: %s", labRequestCodes));
        String body = String.format(hubUserNotificationTemplate, labRequestSnippets /* %1 */);
        message.setText(body);
        mailSender.send(message.getMimeMessage());
    } catch (MessagingException e) {
        log.error(e.getMessage());
        throw new EmailError("Email error: " + e.getMessage());
    } catch (UnsupportedEncodingException e) {
        log.error(e.getMessage());
        throw new EmailError("Email error: " + e.getMessage());
    }
}

From source file:business.services.MailService.java

public void sendActivationEmail(@NotNull ActivationLink link) {
    // Send email to user
    try {//from   ww  w  .j  ava 2s  .c om
        MimeMessageHelper message = new MimeMessageHelper(mailSender.createMimeMessage());
        String recipient = link.getUser().getUsername();
        message.setTo(recipient);
        message.setFrom(getFrom(), fromName);
        message.setReplyTo(replyAddress, replyName);
        message.setSubject("PALGA-account activeren / Activate PALGA account");
        String activationLink = getLink("/#/activate/" + link.getToken());
        message.setText(String.format(activationEmailTemplate, activationLink));
        mailSender.send(message.getMimeMessage());
        log.info("Activation link token generated for " + recipient + ": " + link.getToken());
    } catch (MessagingException e) {
        log.error(e.getMessage());
        throw new EmailError("Email error: " + e.getMessage());
    } catch (UnsupportedEncodingException e) {
        log.error(e.getMessage());
        throw new EmailError("Email error: " + e.getMessage());
    }
}

From source file:business.services.MailService.java

public void sendPasswordRecoveryToken(NewPasswordRequest npr) {
    try {/*from   w  ww . j av  a 2s.  c om*/
        MimeMessageHelper message = new MimeMessageHelper(mailSender.createMimeMessage());
        String recipient = npr.getUser().getContactData().getEmail();
        message.setTo(recipient);
        message.setFrom(getFrom(), fromName);
        message.setReplyTo(replyAddress, replyName);
        message.setSubject(passwordRecoverySubject);
        String passwordRecoveryLink = getLink("/#/login/reset-password/" + npr.getToken());
        message.setText(String.format(passwordRecoveryTemplate, passwordRecoveryLink));
        log.info("Sending password recovery token to " + recipient + ".");
        mailSender.send(message.getMimeMessage());
    } catch (MessagingException e) {
        log.error(e.getMessage());
        throw new EmailError("Email error: " + e.getMessage());
    } catch (UnsupportedEncodingException e) {
        log.error(e.getMessage());
        throw new EmailError("Email error: " + e.getMessage());
    }
}

From source file:business.services.MailService.java

public void notifyLab(@NotNull LabRequestRepresentation labRequest) {
    log.info("Notify lab for lab request " + labRequest.getId() + ".");

    Lab lab = labRequest.getLab();//  ww  w. j  a  v a2 s  . c o m
    if (lab.getEmailAddresses() == null || lab.getEmailAddresses().isEmpty()) {
        log.warn("No email address set for lab " + lab.getNumber());
        return;
    }
    String recipients = String.join(", ", lab.getEmailAddresses());
    log.info("Sending notification to " + recipients);
    try {
        MimeMessageHelper message = new MimeMessageHelper(mailSender.createMimeMessage());
        for (String email : lab.getEmailAddresses()) {
            message.addTo(email);
        }
        message.setFrom(getFrom(), fromName);
        message.setReplyTo(replyAddress, replyName);
        message.setSubject(String.format("PALGA-verzoek aan laboratorium, aanvraagnummer: %s",
                labRequest.getLabRequestCode()));
        String labRequestLink = getLink("/#/lab-request/view/" + labRequest.getId());
        String body = String.format(labNotificationTemplate, labRequestLink, // %1
                labRequest.getLabRequestCode(), // %2
                labRequest.getRequest().getTitle(), // %3
                labRequest.getRequesterName(), // %4
                labRequest.getRequest().getPathologistName() == null ? ""
                        : labRequest.getRequest().getPathologistName(), // %5
                labRequest.getRequesterLab().getName() // %6
        );
        message.setText(body);
        mailSender.send(message.getMimeMessage());
    } catch (MessagingException e) {
        log.error(e.getMessage());
        throw new EmailError("Email error: " + e.getMessage());
    } catch (UnsupportedEncodingException e) {
        log.error(e.getMessage());
        throw new EmailError("Email error: " + e.getMessage());
    }
}

From source file:org.jresponder.message.MessageRefImpl.java

/**
 * Render a message in the context of a particular subscriber
 * and subscription.//from   w  ww  . j a va2  s.  c  o  m
 */
@Override
public boolean populateMessage(MimeMessage aMimeMessage, SendConfig aSendConfig, Subscriber aSubscriber,
        Subscription aSubscription) {

    try {

        // prepare context
        Map<String, Object> myRenderContext = new HashMap<String, Object>();
        myRenderContext.put("subscriber", aSubscriber);
        myRenderContext.put("subscription", aSubscription);
        myRenderContext.put("config", aSendConfig);
        myRenderContext.put("message", this);

        // render the whole file
        String myRenderedFileContents = TextRenderUtil.getInstance().render(fileContents, myRenderContext);

        // now parse again with Jsoup
        Document myDocument = Jsoup.parse(myRenderedFileContents);

        String myHtmlBody = "";
        String myTextBody = "";

        // html body
        Elements myBodyElements = myDocument.select("#htmlbody");
        if (!myBodyElements.isEmpty()) {
            myHtmlBody = myBodyElements.html();
        }

        // text body
        Elements myJrTextBodyElements = myDocument.select("#textbody");
        if (!myJrTextBodyElements.isEmpty()) {
            myTextBody = TextUtil.getInstance().getWholeText(myJrTextBodyElements.first());
        }

        // now build the actual message
        MimeMessage myMimeMessage = aMimeMessage;
        // wrap it in a MimeMessageHelper - since some things are easier with that
        MimeMessageHelper myMimeMessageHelper = new MimeMessageHelper(myMimeMessage);

        // set headers

        // subject
        myMimeMessageHelper.setSubject(TextRenderUtil.getInstance()
                .render((String) propMap.get(MessageRefProp.JR_SUBJECT.toString()), myRenderContext));

        // TODO: implement DKIM, figure out subetha

        String mySenderEmailPattern = aSendConfig.getSenderEmailPattern();
        String mySenderEmail = TextRenderUtil.getInstance().render(mySenderEmailPattern, myRenderContext);
        myMimeMessage.setSender(new InternetAddress(mySenderEmail));

        myMimeMessageHelper.setTo(aSubscriber.getEmail());

        // from
        myMimeMessageHelper.setFrom(
                TextRenderUtil.getInstance()
                        .render((String) propMap.get(MessageRefProp.JR_FROM_EMAIL.toString()), myRenderContext),
                TextRenderUtil.getInstance()
                        .render((String) propMap.get(MessageRefProp.JR_FROM_NAME.toString()), myRenderContext));

        // see how to set body

        // if we have both text and html, then do multipart
        if (myTextBody.trim().length() > 0 && myHtmlBody.trim().length() > 0) {

            // create wrapper multipart/alternative part
            MimeMultipart ma = new MimeMultipart("alternative");
            myMimeMessage.setContent(ma);
            // create the plain text
            BodyPart plainText = new MimeBodyPart();
            plainText.setText(myTextBody);
            ma.addBodyPart(plainText);
            // create the html part
            BodyPart html = new MimeBodyPart();
            html.setContent(myHtmlBody, "text/html");
            ma.addBodyPart(html);
        }

        // if only HTML, then just use that
        else if (myHtmlBody.trim().length() > 0) {
            myMimeMessageHelper.setText(myHtmlBody, true);
        }

        // if only text, then just use that
        else if (myTextBody.trim().length() > 0) {
            myMimeMessageHelper.setText(myTextBody, false);
        }

        // if neither text nor HTML, then the message is being skipped,
        // so we just return null
        else {
            return false;
        }

        return true;

    } catch (MessagingException e) {
        throw new RuntimeException(e);
    } catch (UnsupportedEncodingException e) {
        throw new RuntimeException(e);
    }

}

From source file:com.sfs.dao.EmailMessageDAOImpl.java

/**
 * Send an email message using the configured Spring sender. On success
 * record the sent message in the datastore for reporting purposes
 *
 * @param emailMessage the email message
 *
 * @throws SFSDaoException the SFS dao exception
 *//* w  w  w.  ja v  a  2s. c o m*/
public final void send(final EmailMessageBean emailMessage) throws SFSDaoException {

    // Check to see whether the required fields are set (to, from, message)
    if (StringUtils.isBlank(emailMessage.getTo())) {
        throw new SFSDaoException("Error recording email: Recipient " + "address required");
    }
    if (StringUtils.isBlank(emailMessage.getFrom())) {
        throw new SFSDaoException("Error recording email: Email requires " + "a return address");
    }
    if (StringUtils.isBlank(emailMessage.getMessage())) {
        throw new SFSDaoException("Error recording email: No email " + "message specified");
    }
    if (javaMailSender == null) {
        throw new SFSDaoException("The EmailMessageDAO has not " + "been configured");
    }

    // Prepare the email message
    MimeMessage message = javaMailSender.createMimeMessage();
    MimeMessageHelper helper = null;
    if (emailMessage.getHtmlMessage()) {
        try {
            helper = new MimeMessageHelper(message, true, "UTF-8");
        } catch (MessagingException me) {
            throw new SFSDaoException("Error preparing email for sending: " + me.getMessage());
        }
    } else {
        helper = new MimeMessageHelper(message);
    }
    if (helper == null) {
        throw new SFSDaoException("The MimeMessageHelper cannot be null");
    }
    try {
        if (StringUtils.isNotBlank(emailMessage.getTo())) {
            StringTokenizer tk = new StringTokenizer(emailMessage.getTo(), ",");
            while (tk.hasMoreTokens()) {
                String address = tk.nextToken();
                helper.addTo(address);
            }
        }
        if (StringUtils.isNotBlank(emailMessage.getCC())) {
            StringTokenizer tk = new StringTokenizer(emailMessage.getCC(), ",");
            while (tk.hasMoreTokens()) {
                String address = tk.nextToken();
                helper.addCc(address);
            }
        }
        if (StringUtils.isNotBlank(emailMessage.getBCC())) {
            StringTokenizer tk = new StringTokenizer(emailMessage.getBCC(), ",");
            while (tk.hasMoreTokens()) {
                String address = tk.nextToken();
                helper.addBcc(address);
            }
        }
        if (StringUtils.isNotBlank(emailMessage.getFrom())) {
            if (StringUtils.isNotBlank(emailMessage.getFromName())) {
                try {
                    helper.setFrom(emailMessage.getFrom(), emailMessage.getFromName());
                } catch (UnsupportedEncodingException uee) {
                    dataLogger.error("Error setting email from", uee);
                }
            } else {
                helper.setFrom(emailMessage.getFrom());
            }
        }
        helper.setSubject(emailMessage.getSubject());
        helper.setPriority(emailMessage.getPriority());
        if (emailMessage.getHtmlMessage()) {
            final String htmlText = emailMessage.getMessage();
            String plainText = htmlText;
            try {
                ConvertHtmlToText htmlToText = new ConvertHtmlToText();
                plainText = htmlToText.convert(htmlText);
            } catch (Exception e) {
                dataLogger.error("Error converting HTML to plain text: " + e.getMessage());
            }
            helper.setText(plainText, htmlText);
        } else {
            helper.setText(emailMessage.getMessage());
        }
        helper.setSentDate(emailMessage.getSentDate());

    } catch (MessagingException me) {
        throw new SFSDaoException("Error preparing email for sending: " + me.getMessage());
    }

    // Append any attachments (if an HTML email)
    if (emailMessage.getHtmlMessage()) {
        for (String id : emailMessage.getAttachments().keySet()) {
            final Object reference = emailMessage.getAttachments().get(id);

            if (reference instanceof File) {
                try {
                    FileSystemResource res = new FileSystemResource((File) reference);
                    helper.addInline(id, res);
                } catch (MessagingException me) {
                    dataLogger.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) {
                    dataLogger.error("Error appending URL attachment: " + me.getMessage());
                }
            }
        }
    }

    // If not in debug mode send the email
    if (!debugMode) {
        deliver(emailMessage, message);
    }
}

From source file:org.apereo.portal.portlets.account.EmailPasswordResetNotificationImpl.java

@Override
public void sendNotification(URL resetUrl, ILocalAccountPerson account, Locale locale) {
    log.debug("Sending password reset instructions to user with url {}", resetUrl.toString());

    try {/*w w w.  j  a  v  a 2  s. c o m*/
        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        String email = (String) account.getAttributeValue(ILocalAccountPerson.ATTR_MAIL);
        String subject = messageSource.getMessage(subjectMessageKey, new Object[] {}, locale);
        String body = formatBody(resetUrl, account, locale);

        helper.addTo(email);
        helper.setText(body, true);
        helper.setSubject(subject);
        helper.setFrom(portalEmailAddress, messageSource.getMessage("portal.name", new Object[] {}, locale));

        log.debug("Sending message to {} from {} subject {}", email, Arrays.toString(message.getFrom()),
                message.getSubject());
        this.mailSender.send(helper.getMimeMessage());

    } catch (Exception e) {
        log.error("Unable to send password reset email", e);
    }
}

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  .  ja v a  2 s.  c om*/
    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);
    }
}