小编典典

使用SpringFramework3制作新闻简报(HTML)

jsp

我将通过Springframework 3发送如下通讯。

private void sendMail(Map<String,Object> mailInfo) throws Exception{
    JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
    mailSender.setHost("smtp.myhost.com");
    mailSender.setPort(587);
    mailSender.setUsername("email@email.com");
    mailSender.setPassword("12345");

    MimeMessage msg = mailSender.createMimeMessage();
    MimeMessageHelper mHelper = new MimeMessageHelper(msg, true, "UTF-8");

    mHelper.setFrom(new InternetAddress(
            mailInfo.get("send_mail").toString(), mailInfo.get("send_name").toString()));
    mHelper.setTo(new InternetAddress(
            mailInfo.get("recv_mail").toString(), mailInfo.get("recv_name").toString()));

    mHelper.setText(mailInfo.get("mail_desc").toString(), true);
    mHelper.setSubject(mailInfo.get("mail_title").toString());

    mailSender.send(msg);
}

在我的情况下,值mail_desc是HTML(它具有CSS和其他资源)。邮件运行顺利,但其CSS和所有图像均损坏。

我在JSP中将所有src值都附加了如下

function getDomain(){
    var DNS = location.href;
    DNS = DNS.split('//');
    DNS = 'http://' + DNS[1].substr(0,DNS[1].indexOf("/"));
    return DNS;
}

因此,当我在浏览器控制台中打印此文件时,它会返回localhost:8080/myApp/{image_src}。但是,当我用gmail打开时,它看起来就完全不同了。看起来像…

<img src="https://ci5.googleusercontent.com/proxy/FVJ1IBTWmX0l0KPlNQVY_AkDsCL02O2Y_kZS7KACQlnXgfgNvNQvjBKpn9zIdPH84N_r-ulunXvzlMCVUOWsMG1WCjfYUFVX7VpjJ5OV5RdpV2ReZFjM9Yw=s0-d-e1-ft#http://localhost:8080/resources/gtl_portal/images/newsletter/ci.png" alt="ci" class="CToWUd">

现在我得到如下问题:

  • 如何在Normal中实施新闻通讯?我在哪里可以找到一些示例或参考?(我认为这可以解决很多问题)
  • 如何改变价值的事情看起来像。这很棘手,因为它嵌入在style属性中:
    <td height="50px" style="background:url('/resources/images/newsletter/top_bg.png') repeat-x 0 0;padding:15px">
    

非常感谢:D bb


阅读 385

收藏
2020-06-10

共1个答案

小编典典

您不能像平常一样包含外部css,但是您可以选择以内联方式(在<head>标记中)包装样式的方式。所以像这样

<style>
.bigFont{
font-size:14px;
}
<style>
<body>
<p class='bigFont' >Hi , i am bigger </p>
</body>

因此,这看起来是分开的,而不是在标签中添加样式属性,还可以通过重用避免一些代码。

AFAIK,用于添加内联图像Spring框架具有很好的文档。邮件客户端广泛支持它,例如,

FileSystemResource res = new FileSystemResource(new File("c:/Sample.jpg"));
helper.addInline("identifier1234", res);

因此您可以简单地将其用作<img src='cid:identifier1234'>

对于高级模板选项,您可以将Web应用程序与Apache Velocity(模板库)集成

2020-06-10