2014-11-25 57 views
1

我發送簡訊像下面springframework的3決策通訊(HTML)與SpringFramework3

private void sendMail(Map<String,Object> mailInfo) throws Exception{ 
    JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); 
    mailSender.setHost("smtp.myhost.com"); 
    mailSender.setPort(587); 
    mailSender.setUsername("[email protected]"); 
    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

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}附加到所有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"> 

現在,我得到類似下面的問題:

  • 如何實現正常通訊?我在哪裏可以找到一些例子或參考?(我認爲這可以解決很多問題)
  • 如何更改值的東西看起來像。這是很棘手的,因爲它被嵌入的風格屬性:

    <td height="50px" style="background:url('/resources/images/newsletter/top_bg.png') repeat-x 0 0;padding:15px"> 
    

非常感謝:d BB

+0

注意,Gmail預取的圖像,以防止從營銷郵件打開時跟蹤,並據此改寫圖像的URL。 – chrylis 2014-11-25 09:14:24

回答

1

你不能包括你的外部CSS像你一樣正常,但你可以喜歡以聯機方式包裝樣式的方式(在<head>標籤中)。所以像這樣的東西,

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

所以這看起來單獨,而不是添加樣式屬性到您的標籤,您還可以通過resusing避免一些代碼。

AFAIK,用於添加內嵌圖像Spring framework具有非常好的文檔。它是由郵件客戶端,一個例子廣泛的支持,

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

,這樣就可以簡單地把它作爲<img src='cid:identifier1234'>

對於高級模板選項,你可以用你的Apache velocity Web應用程序集成,模板庫

+0

謝謝。但是,應用您的解決方案存在問題。首先,我讀取整個HTML(另外,它不導入外部CSS,但使用外部圖像),並將其作爲Spring中的字符串值獲取。因此,將圖像源替換爲其他類似於您所說的內容並不容易。有沒有其他的方法來做到這一點?(我希望我可以在HTML級別處理...)。謝謝 – 2014-11-25 07:46:51

+0

是的,你需要在'html'級別處理它。框架中沒有其他原生解決方案 – 2014-11-25 08:08:41

+0

對不起,我無法確切地得出你的意思'沒有其他框架原生解決方案',因爲上面的代碼是Java代碼,而不僅僅是HTML。現在,主要問題揭示瞭如何在HTML中鏈接圖像而不是CSS。謝謝你的迴應,併爲我的英語感到難過^^ ;; – 2014-11-25 08:20:09