2013-04-01 67 views
0

我試圖以HTML格式發送電子郵件。它正在爲文本/純文本工作。但是,當我設置內容類型爲文本/ HTML郵件沒有被運輸(沒有例外被拋出,但我也沒有收到電子郵件)。 以下是我的代碼。無法以HTML格式發送電子郵件。

public void postMail() throws Exception { 
      boolean debug = false; 

      Properties props = new Properties(); 
      props.put("mail.smtp.host", smtpServer); 
      props.put("mail.smtp.port", smtpServerPort); 
      props.put("mail.smtp.auth", "false"); 
      props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory"); 
      props.put("mail.smtp.socketFactory.fallback","false"); 
      lgr.debug(lgr.isDebugEnabled()?"SMTP Server --->" + smtpServer : null); 
      Session session = Session.getInstance(props, null); 
      session.setDebug(debug); 

      Message msg = new MimeMessage(session); 

      InternetAddress addressFrom = new InternetAddress(from); 
      msg.setFrom(addressFrom); 
      // Here is some logic to add TO and CC and BCC 
      msg.setSubject(subject); 
      // writer.println("Subject : " + subject); 
      lgr.debug(lgr.isDebugEnabled()?"Subject : " + subject : null); 
      msg.setContent(message, "text/html"); 
      Transport.send(msg); 
      lgr.info(lgr.isInfoEnabled() ?"Mail sent": null); 
} 

在這方面的任何幫助將不勝感激。

+0

你可以放置你試圖通過對電子郵件的一些樣本郵件內容.. – Pandian

+0

以下是內容 您好所有, 緩存在成功刷新[週一4月1日19時25分41秒PKT 2013] 。
需要注意的是,大約[100]分鐘後緩存將再次刷新。
請注意這是一條信息性消息,系統已啓動並正在運行。
Jabir

回答

1

Get rid of the socket factory stuff,你不需要它。

當您將debug設置爲true時,是否在調試輸出中看到任何錯誤?或者,您的郵件服務器是否接受沒有投訴的郵件?如果沒有錯誤,那麼最可能的問題是收件人的郵件服務器認爲您的郵件是垃圾郵件,儘管使用簡單的測試郵件似乎不太可能。

您是否試過發送給不同的收件人,特別是使用不同郵件服務器的不同收件人?找出問題出在收件人的郵件服務器上還是用於發送郵件服務器是很有用的。

+0

謝謝你的方向。我已經嘗試過,並且從地址更改爲地址似乎工作。這有問題嗎? – Jabir

+0

聽起來好像其中一臺郵件服務器正在丟失您的信息,可能是因爲它認爲它是垃圾郵件。既然我不知道你測試的是什麼,我不能告訴你哪個郵件服務器可能有問題。如果你能弄明白,你可能想聯繫郵件服務器管理員。 –

+0

你是對的@比爾。郵件服務器將其標記爲垃圾郵件並最終丟棄該郵件。發生這種情況的原因是來自同一地址。但是如果與一切都不一樣,一切正常。 – Jabir

0

我幾次遇到類似的問題。我發現問題出在含有單引號的html內容上。

作爲一個測試嘗試發送一個(簡單的單詞)/(簡單的HTML沒有引號)作爲消息使用文本/ HTML格式。如果這樣的作品,你可以修改你的html消息,只包含雙引號。

希望有幫助!

+0

嘗試以下沒有任何的運氣您好所有, Jabir