Example usage for org.springframework.mail SimpleMailMessage setText

List of usage examples for org.springframework.mail SimpleMailMessage setText

Introduction

In this page you can find the example usage for org.springframework.mail SimpleMailMessage setText.

Prototype

@Override
    public void setText(String text) 

Source Link

Usage

From source file:com.traffitruck.web.HtmlController.java

@RequestMapping(value = "/forgotPassword", method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
ModelAndView forgotPassword(@RequestParam("username") String username) {
    if (username != null) {
        LoadsUser loadsUser = dao.getUser(username);
        if (loadsUser != null) {
            Random random = new Random();
            StringBuilder newPassword = new StringBuilder();
            for (int i = 0; i < 8; ++i)
                newPassword.append(random.nextInt(10));
            Map<String, Object> model = new HashMap<>();
            model.put("email", loadsUser.getEmail());
            ResetPassword rp = new ResetPassword();
            rp.setCreationDate(new Date());
            rp.setUsername(username);//from  w w w.  j  av a  2s . c  om
            rp.setUuid(String.valueOf(newPassword));
            dao.newResetPassword(rp);
            SimpleMailMessage msg = new SimpleMailMessage();
            msg.setTo(loadsUser.getEmail());
            msg.setSubject("forgot password");
            msg.setFrom("no-reply@traffitruck.com");
            String message = "   ?   ?-\n"
                    + "?? ?  ? ?  ? ?  \n"
                    + "   ?- ? " + newPassword + "\n"
                    + "   15 \n"
                    + " ?     \n";

            msg.setText(message);
            mailSender.send(msg);
            return new ModelAndView("forgot_password_explain", model);
        }
    }
    Map<String, Object> model = new HashMap<>();
    model.put("error", "notfound");
    return new ModelAndView("forgot_password", model);
}

From source file:com.ephesoft.dcma.mail.service.MailServiceImpl.java

@Override
public void sendTextMail(final MailMetaData mailMetaData, final String text) {
    if (suppressMail) {
        LOGGER.info(/*from   w ww .  j av a2 s. co  m*/
                "Message suppress switch is on in dcma-mail.properties file. Error mail notfication cann't be send");
        return;
    }
    setMailProperties();
    final SimpleMailMessage mailMessage = new SimpleMailMessage();
    if (mailMetaData.getFromAddress() != null) {
        mailMessage.setFrom(EphesoftStringUtil.concatenate(mailMetaData.getFromName(),
                MailConstants.LESS_SYMBOL, mailMetaData.getFromAddress(), MailConstants.GREATER_SYMBOL));
    }
    if (null != mailMetaData.getSubject()) {
        mailMessage.setSubject(mailMetaData.getSubject());
    }
    if (mailMetaData.getCcAddresses() != null && mailMetaData.getCcAddresses().size() > 0) {
        mailMessage.setCc((String[]) mailMetaData.getCcAddresses()
                .toArray(new String[mailMetaData.getCcAddresses().size()]));
    }
    if (mailMetaData.getBccAddresses() != null && mailMetaData.getBccAddresses().size() > 0) {
        mailMessage.setBcc((String[]) mailMetaData.getBccAddresses()
                .toArray(new String[mailMetaData.getBccAddresses().size()]));
    }
    if (mailMetaData.getToAddresses() != null && mailMetaData.getToAddresses().size() > 0) {
        mailMessage.setTo((String[]) mailMetaData.getToAddresses()
                .toArray(new String[mailMetaData.getToAddresses().size()]));
    }
    mailMessage.setText(text);
    try {
        mailSender.send(mailMessage);
    } catch (MailException mailException) {
        LOGGER.error("Eror while sending mail to configured mail account", mailException);
        throw new SendMailException(
                EphesoftStringUtil.concatenate("Error sending mail: ", mailMetaData.toString()), mailException);
    }
    LOGGER.info("mail sent successfully");
}

From source file:edu.washington.iam.registry.ws.RelyingPartyController.java

@RequestMapping(value = "/rp", method = RequestMethod.DELETE)
public ModelAndView deleteRelyingParty(@RequestParam(value = "id", required = true) String id,
        @RequestParam(value = "mdid", required = true) String mdid,
        @RequestParam(value = "role", required = false) String role,
        @RequestParam(value = "xsrf", required = false) String paramXsrf, InputStream in,
        HttpServletRequest request, HttpServletResponse response) {

    RPSession session = processRequestInfo(request, response, false);
    if (session == null)
        return (emptyMV());

    log.info("DELETE for: " + id);
    int status = 200;

    if (session.isBrowser && !(paramXsrf != null && paramXsrf.equals(session.xsrfCode))) {
        log.info("got invalid xsrf=" + paramXsrf + ", expected+" + session.xsrfCode);
        return emptyMV("invalid session (xsrf)");
    }/*from   w w  w.  jav  a2 s . c om*/

    ModelAndView mv = emptyMV("OK dokey delete rp");

    try {
        if (!userCanEdit(session, id)) {
            status = 401;
            mv.addObject("alert", "You are not the owner.");
        } else {
            status = proxyManager.removeRelyingParty(id);
            status = filterPolicyManager.removeEditableRelyingParty(id);
            status = rpManager.removeRelyingParty(id, mdid);
        }
    } catch (FilterPolicyException e) {
        mv.addObject("alert", "delete of filter policy failed:\n" + e.getCause());
        response.setStatus(500);
        return mv;
    } catch (DNSVerifyException e) {
        mv.addObject("alert", "Could not verify ownership:\n" + e.getCause());
        response.setStatus(500);
        return mv;
    }
    SimpleMailMessage msg = new SimpleMailMessage(this.templateMessage);
    msg.setTo(mailTo);
    msg.setText(
            "User '" + session.remoteUser + "' deleted metadata for '" + id + "'.\nRequest status: " + status);
    try {
        this.mailSender.send(msg);
    } catch (MailException ex) {
        log.error("sending mail: " + ex.getMessage());
    }

    response.setStatus(status);
    return mv;
}

From source file:edu.washington.iam.registry.ws.RelyingPartyController.java

@RequestMapping(value = "/rp/attrReq", method = RequestMethod.PUT)
public ModelAndView putRelyingPartyAttrReq(@RequestParam(value = "id", required = true) String id,
        InputStream in, HttpServletRequest request, HttpServletResponse response) {

    RPSession session = processRequestInfo(request, response, false);
    if (session == null)
        return (emptyMV());
    log.info("PUT request for: " + id);
    int status = 200;

    ModelAndView mv = emptyMV("OK dokey");

    try {//  w  w  w  .  j a v a2 s.  co  m
        if (!userCanEdit(session, id)) {
            status = 401;
            mv.addObject("alert", "You are not an owner of that entity.");
        }
    } catch (DNSVerifyException e) {
        mv.addObject("alert", "Could not verify ownership:\n" + e.getCause());
        response.setStatus(500);
        return mv;
    }

    Document doc = null;
    try {
        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = builderFactory.newDocumentBuilder();
        doc = builder.parse(in);
    } catch (Exception e) {
        log.info("parse error: " + e);
        status = 400;
        mv.addObject("alert", "The posted document was not valid:\n" + e);
    }
    if (doc != null) {
        StringBuffer txt = new StringBuffer(
                "[ Assign to Identity and Access Management. ]\n\nEntity Id: " + id + "\n");
        txt.append("User:      " + session.remoteUser + "\n\nRequesting:\n");
        List<Element> attrs = XMLHelper.getElementsByName(doc.getDocumentElement(), "Add");
        log.debug(attrs.size() + " adds");
        for (int i = 0; i < attrs.size(); i++)
            txt.append("  Add new attribute: " + attrs.get(i).getAttribute("id") + "\n\n");
        attrs = XMLHelper.getElementsByName(doc.getDocumentElement(), "Drop");
        log.debug(attrs.size() + " drops");
        for (int i = 0; i < attrs.size(); i++)
            txt.append("  Drop existing attribute: " + attrs.get(i).getAttribute("id") + "\n\n");
        Element mele = XMLHelper.getElementByName(doc.getDocumentElement(), "Comments");
        if (mele != null)
            txt.append("\nComment:\n\n" + mele.getTextContent() + "\n\n");
        txt.append("Quick link:\n\n   " + spRegistryUrl + "#a" + id + "\n");

        SimpleMailMessage msg = new SimpleMailMessage(this.templateMessage);
        /* production to RT system */
        msg.setTo(requestMailTo);
        msg.setSubject("IdP attribute request for " + id);
        msg.setFrom(session.remoteUser + "@uw.edu");
        msg.setText(txt.toString());
        try {
            this.mailSender.send(msg);
        } catch (MailException ex) {
            log.error("sending mail: " + ex.getMessage());
            status = 500;
        }

    }
    response.setStatus(status);
    return mv;
}

From source file:edu.washington.iam.registry.ws.RelyingPartyController.java

@RequestMapping(value = "/rp/attr", method = RequestMethod.PUT)
public ModelAndView putRelyingPartyAttributes(@RequestParam(value = "id", required = true) String id,
        @RequestParam(value = "policyId", required = true) String policyId,
        @RequestParam(value = "xsrf", required = false) String paramXsrf, InputStream in,
        HttpServletRequest request, HttpServletResponse response) {

    RPSession session = processRequestInfo(request, response, false);
    if (session == null)
        return (emptyMV());
    log.info("PUT update attrs for " + id + " in " + policyId);
    int status = 200;

    /**//ww w  .jav a2s  .com
           if (session.isBrowser && !(paramXsrf!=null && paramXsrf.equals(session.xsrfCode))) {
               log.info("got invalid xsrf=" + paramXsrf + ", expected+" + session.xsrfCode);
               return emptyMV("invalid session (xsrf)");
           }
     **/

    ModelAndView mv = emptyMV("OK dokey");

    if (!session.isAdmin) {
        status = 401;
        mv.addObject("alert", "You are not permitted to update attriubtes.");
        response.setStatus(status);
        return mv;
    }

    Document doc = null;
    try {
        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = builderFactory.newDocumentBuilder();
        doc = builder.parse(in);
    } catch (Exception e) {
        log.info("parse error: " + e);
        status = 400;
        mv.addObject("alert", "The posted document was not valid:\n" + e);
    }
    if (doc != null) {
        try {
            filterPolicyManager.updateRelyingParty(policyId, doc);
            status = 200;
        } catch (FilterPolicyException e) {
            status = 400;
            mv.addObject("alert", "Update of the entity failed:" + e);
        }
    }

    SimpleMailMessage msg = new SimpleMailMessage(this.templateMessage);
    msg.setTo(mailTo);
    String act = "updated";
    if (status == 201)
        act = "created";
    msg.setSubject("Service provider attributes " + act + " by " + session.remoteUser);
    msg.setText("User '" + session.remoteUser + "' " + act + " attributes for '" + id + "'.\nRequest status: "
            + status + "\n");
    try {
        this.mailSender.send(msg);
    } catch (MailException ex) {
        log.error("sending mail: " + ex.getMessage());
    }

    response.setStatus(status);
    return mv;
}

From source file:com.gnizr.web.action.user.RegisterUser.java

private boolean sendNotifyAndApproval(String token, User user) {
    Map<String, Object> model = new HashMap<String, Object>();
    model.put("token", token);
    model.put("username", user.getUsername());
    model.put("email", user.getEmail());
    model.put("createdOn", user.getCreatedOn());
    model.put("gnizrConfiguration", getGnizrConfiguration());

    if (getNotifyEmailTemplate() == null) {
        logger.error("RegisterUser: notifyEmailTemplate bean is not defined");
        addActionError(String.valueOf(ActionErrorCode.ERROR_CONFIG));
        return false;
    }//w  w w .  j  a  v a 2 s  . com
    if (getApprovalEmailTemplate() == null) {
        logger.error("RegisterUser: approvalEmailTemplate bean is not defined");
        addActionError(String.valueOf(ActionErrorCode.ERROR_CONFIG));
        return false;
    }

    String toUserEmail = user.getEmail();
    String toAppvEmail = getGnizrConfiguration().getSiteContactEmail();
    if (toUserEmail == null) {
        logger.error("RegisterUser: the email of user " + user.getUsername() + " is not defined");
        addActionError(String.valueOf(ActionErrorCode.ERROR_EMAIL_UNDEF));
        return false;
    }

    SimpleMailMessage notifyMsg = new SimpleMailMessage(getNotifyEmailTemplate());
    notifyMsg.setTo(toUserEmail);

    if (notifyMsg.getFrom() == null) {
        String contactEmail = getGnizrConfiguration().getSiteContactEmail();
        if (contactEmail != null) {
            notifyMsg.setFrom(contactEmail);
        } else {
            notifyMsg.setFrom("no-reply@localhost");
        }
    }

    SimpleMailMessage approvalMsg = new SimpleMailMessage(getApprovalEmailTemplate());
    if (toAppvEmail != null) {
        approvalMsg.setTo(toAppvEmail);
        approvalMsg.setFrom(toUserEmail);
    } else {
        logger.error("RegisterUser: siteContactEmail is not defined. Can't sent approval emaili. Abort.");
        return false;
    }

    Template fmTemplate1 = null;
    Template fmTemplate2 = null;
    String text1 = null;
    String text2 = null;
    try {
        fmTemplate1 = freemarkerEngine.getTemplate("login/notifyemail-template.ftl");
        fmTemplate2 = freemarkerEngine.getTemplate("login/approvalemail-template.ftl");
        text1 = FreeMarkerTemplateUtils.processTemplateIntoString(fmTemplate1, model);
        text2 = FreeMarkerTemplateUtils.processTemplateIntoString(fmTemplate2, model);
    } catch (Exception e) {
        logger.error("RegisterUser: error creating message template from Freemarker engine");
    }
    notifyMsg.setText(text1);
    approvalMsg.setText(text2);

    if (getMailSender() == null) {
        logger.error("RegisterUser: mailSender bean is not defined");
        addActionError(String.valueOf(ActionErrorCode.ERROR_CONFIG));
        return false;
    }
    try {
        getMailSender().send(notifyMsg);
        getMailSender().send(approvalMsg);
        return true;
    } catch (Exception e) {
        logger.error("RegisterUser: send mail error. " + e);
        addActionError(String.valueOf(ActionErrorCode.ERROR_INTERNAL));
    }

    return false;
}

From source file:edu.washington.iam.registry.ws.RelyingPartyController.java

@RequestMapping(value = "/rp/proxy", method = RequestMethod.PUT)
public ModelAndView putRelyingPartyAttributesZ(@RequestParam(value = "id", required = true) String id,
        @RequestParam(value = "role", required = false) String role,
        @RequestParam(value = "xsrf", required = false) String paramXsrf, InputStream in,
        HttpServletRequest request, HttpServletResponse response) {

    RPSession session = processRequestInfo(request, response, false);
    if (session == null)
        return (emptyMV());

    log.info("PUT update proxy for " + id);
    int status = 200;

    if (session.isBrowser && !(paramXsrf != null && paramXsrf.equals(session.xsrfCode))) {
        log.info("got invalid xsrf=" + paramXsrf + ", expected+" + session.xsrfCode);
        return emptyMV("invalid session (xsrf)");
    }/*from  ww  w. j  a va  2s .  c  om*/

    ModelAndView mv = emptyMV("OK dokey");
    try {
        if (!userCanEdit(session, id)) {
            status = 401;
            mv.addObject("alert", "You are not an owner of that entity.");
            response.setStatus(status);
            return mv;
        }
    } catch (DNSVerifyException e) {
        mv.addObject("alert", "Could not verify ownership:\n" + e.getCause());
        response.setStatus(500);
        return mv;
    }

    Document doc = null;
    try {
        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = builderFactory.newDocumentBuilder();
        doc = builder.parse(in);
    } catch (Exception e) {
        log.info("parse error: " + e);
        status = 400;
        mv.addObject("alert", "The posted document was not valid:\n" + e);
    }
    if (doc != null) {
        try {
            List<Element> eles = XMLHelper.getElementsByName(doc.getDocumentElement(), "Proxy");
            if (eles.size() != 1)
                throw new ProxyException("proxy xml must contain one element");
            Element pxe = eles.get(0);
            Proxy newproxy = new Proxy(pxe);
            if (!newproxy.getEntityId().equals(id))
                throw new ProxyException("post doesn't match qs id");
            proxyManager.updateProxy(newproxy);
            status = 200;
        } catch (ProxyException e) {
            status = 400;
            mv.addObject("alert", "Update of the entity failed:" + e);
        }
    }

    SimpleMailMessage msg = new SimpleMailMessage(this.templateMessage);
    msg.setTo(mailTo);
    String act = "updated";
    if (status == 201)
        act = "created";
    msg.setSubject("Service provider proxy info " + act + " by " + session.remoteUser);
    msg.setText("User '" + session.remoteUser + "' " + act + " proxy info '" + id + "'.\nRequest status: "
            + status + "\n");
    try {
        this.mailSender.send(msg);
    } catch (MailException ex) {
        log.error("sending mail: " + ex.getMessage());
    }

    response.setStatus(status);
    return mv;
}

From source file:edu.washington.iam.registry.ws.RelyingPartyController.java

@RequestMapping(value = "/ws/metadata", method = RequestMethod.PUT)
public ModelAndView putRelyingParty(@RequestParam(value = "id", required = true) String id,
        @RequestParam(value = "mdid", required = true) String mdid, InputStream in, HttpServletRequest request,
        HttpServletResponse response) {/*from   www.  j  a v  a  2s .com*/

    RPSession session = processRequestInfo(request, response, false);
    if (session == null)
        return (emptyMV());
    log.info("API PUT update for: " + id);
    int status = 403;

    ModelAndView mv = basicModelAndView(session, "xml", "empty");

    String dns = dnsFromEntityId(id);
    for (int i = 0; i < session.altNames.size(); i++) {
        if (dns.equals(session.altNames.get(i))) {
            log.info("dns match found for " + dns);
            status = 200;
        }
    }
    if (status == 403) {
        mv.addObject("alert", "You are not an owner of that entity.");
        response.setStatus(status);
        return mv;
    }
    if (!rpManager.isMetadataEditable(mdid)) {
        status = 400;
        mv.addObject("alert", "The metadata was not found or is not editable");
        response.setStatus(status);
        return mv;
    }

    RelyingParty rp = null;
    try {
        Document doc = null;
        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = builderFactory.newDocumentBuilder();
        doc = builder.parse(in);
        rp = new RelyingParty(doc.getDocumentElement(), mdid, rpManager.isMetadataEditable(mdid));
    } catch (Exception e) {
        log.info("parse error: " + e);
        status = 400;
        mv.addObject("alert", "The posted document was not valid:\n" + e);
        response.setStatus(status);
        return mv;
    }
    if (rp.getEntityId().equals(id)) {
        try {
            rpManager.updateRelyingParty(rp, mdid);
        } catch (RelyingPartyException e) {
            status = 400;
            mv.addObject("alert", "Update of the metadata failed:\n" + e);
        }
    } else {
        mv.addObject("alert", String.format("Id %s doesn't match %s", rp.getEntityId(), id));
    }

    SimpleMailMessage msg = new SimpleMailMessage(this.templateMessage);
    msg.setTo(mailTo);
    String act = "updated";
    if (status == 201)
        act = "created";
    else if (status >= 400)
        act = "attempted edit of";
    msg.setSubject("Service provider metadata " + act + " by " + session.remoteUser);
    msg.setText("User '" + session.remoteUser + "' " + act + " metadata for '" + id + "'.\nRequest status: "
            + status + "\n\nThis message is advisory.  No response is indicated.");
    try {
        this.mailSender.send(msg);
    } catch (MailException ex) {
        log.error("sending mail: " + ex.getMessage());
    }

    response.setStatus(status);
    return mv;
}

From source file:edu.washington.iam.registry.ws.RelyingPartyController.java

@RequestMapping(value = "/rp", method = RequestMethod.PUT)
public ModelAndView putRelyingParty(@RequestParam(value = "id", required = true) String id,
        @RequestParam(value = "mdid", required = true) String mdid,
        @RequestParam(value = "role", required = false) String role,
        @RequestParam(value = "xsrf", required = false) String paramXsrf, InputStream in,
        HttpServletRequest request, HttpServletResponse response) {

    RPSession session = processRequestInfo(request, response, false);
    if (session == null)
        return (emptyMV());

    log.info("PUT update for: " + id);
    int status = 200;

    if (session.isBrowser && !(paramXsrf != null && paramXsrf.equals(session.xsrfCode))) {
        log.info("got invalid xsrf=" + paramXsrf + ", expected+" + session.xsrfCode);
        return emptyMV("invalid session (xsrf)");
    }/*ww  w .ja  va  2 s .  c om*/

    ModelAndView mv = emptyMV("OK dokey");

    try {
        if (!userCanEdit(session, id)) {
            status = 401;
            mv.addObject("alert", "You are not an owner of that entity.");
            response.setStatus(status);
            return mv;
        }
    } catch (DNSVerifyException e) {
        mv.addObject("alert", "Could not verify ownership:\n" + e.getCause());
        response.setStatus(500);
        return mv;
    }

    RelyingParty relyingParty = null;
    try {
        Document doc = null;
        DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = builderFactory.newDocumentBuilder();
        doc = builder.parse(in);
        relyingParty = new RelyingParty(doc.getDocumentElement(), mdid, rpManager.isMetadataEditable(mdid));
    } catch (Exception e) {
        log.info("parse error: " + e);
        status = 400;
        mv.addObject("alert", "The posted document was not valid:\n" + e);
        response.setStatus(status);
        return mv;
    }

    try {
        status = rpManager.updateRelyingParty(relyingParty, mdid);
    } catch (RelyingPartyException e) {
        status = 400;
        mv.addObject("alert", "Update failed:\n" + e.getMessage());
        response.setStatus(status);
        return mv;
    }

    SimpleMailMessage msg = new SimpleMailMessage(this.templateMessage);
    msg.setTo(mailTo);
    String act = "updated";
    if (status == 201)
        act = "created";
    else if (status >= 400)
        act = "attempted edit of";
    msg.setSubject("Service provider metadata " + act + " by " + session.remoteUser);
    msg.setText("User '" + session.remoteUser + "' " + act + " metadata for '" + id + "'.\nRequest status: "
            + status + "\n\nThis message is advisory.  No response is indicated.");
    try {
        this.mailSender.send(msg);
    } catch (MailException ex) {
        log.error("sending mail: " + ex.getMessage());
    }

    response.setStatus(status);
    return mv;
}

From source file:ca.uoguelph.ccs.portal.services.feedback.dao.ClarifyFeedbackMessageFormatterImpl.java

public SimpleMailMessage format(Feedback feedback) {
    SimpleMailMessage message = new SimpleMailMessage();

    message.setTo(targetEmail);//from  w w w.j av  a 2 s  .c  o m
    //message.setTo(feedback.getEmailAddress());

    message.setFrom(fromAddress);
    message.setSubject("[MyPortico Feedback] " + feedback.getSubject());

    StringBuffer body = new StringBuffer();
    body.append("DESCRIPTION: MyPortico Feedback\n");
    body.append("\n");
    body.append("****************************************************\n");
    body.append("AUTOMATED E-Mailing - Do Not Respond to this message\n");
    body.append("****************************************************\n");
    body.append("Date: ");
    body.append(new Date());
    body.append("\n");
    body.append("Subject: ");
    body.append(null == feedback.getSubject() ? "<empty>" : feedback.getSubject());
    body.append("\n");
    body.append("Details: ");
    body.append(feedback.getDetails());
    body.append("\n");
    body.append("________________________________________________________________________________");
    body.append("\n");
    body.append("Server Name: ");
    body.append(null == feedback.getServerName() ? "<empty>" : feedback.getServerName());
    body.append("\n");
    body.append("________________________________________________________________________________");
    body.append("\n");
    body.append("User Agent: ");
    body.append(null == feedback.getUserAgent() ? "<empty>" : feedback.getUserAgent());
    body.append("\n");
    body.append("Browser Name: ");
    body.append(null == feedback.getBrowserName() ? "<empty>" : feedback.getBrowserName());
    body.append("\n");
    body.append("Browser Version: ");
    body.append(null == feedback.getBrowserVersion() ? "<empty>" : feedback.getBrowserVersion());
    body.append("\n");
    body.append("Platform: ");
    body.append(null == feedback.getPlatform() ? "<empty>" : feedback.getPlatform());
    body.append("\n");
    body.append("________________________________________________________________________________");
    body.append("\n");
    body.append("Name: ");
    body.append(null == feedback.getName() ? "<empty>" : feedback.getName());
    body.append("\n");
    body.append("User Id: ");
    body.append(null == feedback.getLogin() ? "<empty>" : feedback.getLogin());
    body.append("\n");
    body.append("Email: ");
    body.append(null == feedback.getEmailAddress() ? "<empty>" : feedback.getEmailAddress());
    body.append("\n");
    body.append("Role: ");
    body.append(null == feedback.getRole() ? "<empty>" : feedback.getRole());
    body.append("\n");

    message.setText(body.toString());

    return message;
}