在java中将html页面作为电子邮件发送

时间:2014-04-11 09:22:32

标签: java email

我正在尝试将html页面作为消息发送。 已经通过message.setContent("<html><body><h1>This is actual message</h1></body></html>","text/html" );这些方法发送html电子邮件。现在我想发送一个html页面。 比如message.setContent("street.html","text/html" );

如何发送以下内容是我的完整代码

String to = "to@gmail.com";
  String from = "from@gmail.com";
  Properties properties = System.getProperties();
    properties.put("mail.smtp.starttls.enable", "true"); 
    properties.put("mail.smtp.host", "smtp.gmail.com");
    properties.put("mail.smtp.port", "587");
    properties.put("mail.smtp.auth", "true");

  Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication("from@gmail.com", "from2013");
}});

  try{
     MimeMessage message = new MimeMessage(session);
     message.setFrom(new InternetAddress(from));
     message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
     message.setSubject("This is the Subject Line!");
     message.setContent("street.html","text/html" );
     Transport.send(message);
     System.out.println("Sent message successfully....");
  }catch (MessagingException mex) {
     mex.printStackTrace();
  }

6 个答案:

答案 0 :(得分:1)

这个短片:

StringWriter writer = new StringWriter();
IOUtils.copy(new FileInputStream(new File("home.html")), writer);

message.setContent(writer.toString(), "text/html");

注意:Apache Commons IO库中提供了IOUtils

答案 1 :(得分:0)

您需要阅读&#34; street.html&#34;的内容。到一个字符串,以便能够发送内容类型&#34; text / html&#34;。

答案 2 :(得分:0)

答案 3 :(得分:0)

MimeMessage.setText()方法设置默认的mime类型text / plain。 但我想你需要text / html。这可以使用MimeMessage.setContent()完成。

您可以在java端使用此代码。

message.setContent(someHtmlMessage, "text/html; charset=utf-8");

答案 4 :(得分:0)

您需要使用DataHandler强制之一来读取本地文件的内容。需要在MiMeMessage类API中使用重载方法,它将接受DataHandler对象本身。 MiMeMessage.SetContent(Object, type);

请参阅API链接和谷歌搜索方法的几个样本将给出所需的sloution。

答案 5 :(得分:-1)

您只需要更改

String mess=""// it contains html code 
message.setContent(mess,"text/html");
Transport.send(message);

它将起作用