html如何在java中通过电子邮件从数据库发送数据(表)?
我可以定期发送电子邮件(不是从数据库发送),但如何在电子邮件中发送完整的表格? 这是我的代码:
private static Message preparedMessage(Session session, String myAccountEmail,
String recepient) {
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(myAccountEmail));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recepient));
message.setSubject("Email using Java");
String htmlTest="<h2> i'm sending an email!</h2>";
message.setContent(htmlTest, "text/html");
}
return message;
} catch (Exception ex) {
Logger.getLogger(JavaMailUtil.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
我试过这样简单的方法:
List <PetrolData> petrolList = MP_RacunDAO.select("03.08.2020", "11.08.2020"); //This is data that i want to put in table
for(PetrolData pd : petrolList){
String htmlTable = "<table border='1'> <tr> "
+ "<th>Column 1</td>"
+ "<th>Column 2</td>"
+ "<th>Column 3</td>"
+ "</tr>"
+ "<tr>"
+ "<td>"+pd.getTitle()+"</td>"
+ "<td>"+pd.getSum1()+"</td>"
+ "<td>"+pd.getSum2()+"</td>"
+ "</tr>"
+ "</table>";
}
显然,这对我不起作用,我能做什么
# 1 楼答案
如果希望在不使用任何外部库的情况下在行中创建HMTL表,可以使用
StringBuilder
来实现基本上,您必须在循环遍历数据之前添加表的开始标记和标题行,然后为每个
PetrolData
添加一行,在循环之后添加表的结束标记请参见此示例(其中使用了可能不必要的换行符和制表符,但它们对于示例输出非常有用,因为我不会在此处发送电子邮件):
其输出如下,您可以轻松地将其嵌入到有效的HTML邮件中:
注意对于
double
的格式,您可能必须应用DecimalFormat
或任何类似的格式才能显示正确的值