如何在Servlet&中包含带有图像的html电子邮件发送

时间:2016-08-15 13:58:57

标签: java html jsp email servlets

我有一个处理用户注册的servlet。该servlet还向用户发送激活电子邮件。我已经在另一个类中实现了Mail发送,但这里是处理向用户发送邮件的函数:

if(localEjb.createUser(usr) != null)
        {
            boolean status = true;

            EmailSetting emailSetting = localEjb.fetchSetting();

            if(emailSetting != null)
            {
                Mail mail = new Mail();

                String message = "Dear " + lastName + " , "  +
                        "Your account has been created on Eventry. " +
                        "Please click this link '" + emailSetting.getBaseURL() + "activate?" + securityCode + "' to complete the activation process";

                status = mail.send(emailSetting, emailSetting.getRecipient(), email, Message.EVENTRY_ACCOUNT_ACTIVATION_INSTRUCTIONS, message, null, null);
            }

            /*this user has been successfully created on the portal*/
            this.respond(response, status, status ? Message.activation_mail_sent : Message.activation_mail_failed,null);
        }
        else
        {
            // a technical error occureed, we couldn't create the user (Should never happen)
            this.respond(response, true, Message.registration_failed + Message.technical_fault, null);
        }

现在,正如您所看到的,我已经以非常简单的方式编写了要发送的消息,并且它可以正常工作。但我现在真正需要的是拥有一个包含CSS和HTML的自定义电子邮件。我已经有了这个,但我无法弄清楚如何将它插入servlet。或者,如果我可以使用JSP,我应该怎么做呢?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以forward使用JSP并提供HttpServletResponseWrapper来使用StringWriter替换JSP ServletResponse.getWriter

但是,电子邮件具有特定属性,需要进行测试,就像HTML的确切外观一样。电子邮件必须是text / html内容类型,也许最好有text / plain的后备。图像必须随邮件一起提供。 CSS仍然是一个温柔的主题。

所以我会把任务分成

  • 制作带图片的简单HTML并发送该HTML
  • 制作填充占位符的JSP
  • 制作更复杂的HTML,实现所需的布局
  • 在多个电子邮件客户端(网络,展望,应用)中进行测试