2013-04-01 69 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