我将通过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和所有图像均损坏。
mail_desc
我在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打开时,它看起来就完全不同了。看起来像…
localhost:8080/myApp/{image_src}
<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">
现在我得到如下问题:
<td height="50px" style="background:url('/resources/images/newsletter/top_bg.png') repeat-x 0 0;padding:15px">
非常感谢:D bb
您不能像平常一样包含外部css,但是您可以选择以内联方式(在<head>标记中)包装样式的方式。所以像这样
<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'>。
<img src='cid:identifier1234'>
对于高级模板选项,您可以将Web应用程序与Apache Velocity(模板库)集成