我正在尝试将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();
}
答案 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)
您可以尝试使用apache commons mail api
http://commons.apache.org/proper/commons-email/apidocs/org/apache/commons/mail/HtmlEmail.html
答案 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);
它将起作用