Java邮件格式化使用CSS在电子邮件中发送的表格?
我可以成功,你的Java邮件API发送电子邮件,但现在我正试图发送一个ResultSet的内容填充MySQL格式的表中的边界等查询,我可以使用CSS标签来做到这一点?如果是的话如何?Java邮件格式化使用CSS在电子邮件中发送的表格?
我的代码如下:
public void getOutstanding() throws MessagingException {
try {
String outS = "SELECT period_to, type, amt, status FROM tblinstall "
+ "WHERE status like ?";
PreparedStatement update = toDB.prepareStatement(outS);
email = new StringBuilder();
email.append("<html><head><style type='text/css'>table .out {border-width:1px, "
+ "border-color: black}</style></head>"
+ "<body>"
+ "<table class'out'><span style=border-color: black, border-width: 1px>");
update.setString(1, "Outstanding");
ResultSet results = update.executeQuery();
while (results.next()) {
System.out.println("in results...");
email.append("<tr>");
email.append("<td>");
long period = results.getLong("period_to");
email.append(DateConvert.fromEpoch(period));
email.append("</td>");
email.append("<td>");
email.append(results.getString("type"));
email.append("</td>");
email.append("<td>");
email.append(results.getString("amt"));
email.append("</td>");
email.append("<td>");
email.append(results.getString("status"));
email.append("</td>");
email.append("<tr>");
}
email.append("</table></body></html>");
sm.populateMailMessage(email.toString());
sm.sendMail();
} catch (SQLException sql) {
sql.printStackTrace();
}
}
我能够发送电子邮件,但只有纯文本,“SM”是的SendMail的情况如下:
public class SendMail {
private Properties mailAccessCredentials;
private Session mailSession;
private MimeMessage mailMessage;
public SendMail() throws MessagingException{
populateProperties();
}
private void populateProperties() throws AddressException, MessagingException {
//Step1
System.out.println("\n 1st ===> setup Mail Server Properties..");
mailAccessCredentials = System.getProperties();
mailAccessCredentials.put("mail.smtp.port", "587"); // TLS Port
mailAccessCredentials.put("mail.smtp.auth", "true"); // Enable Authentication
mailAccessCredentials.put("mail.smtp.starttls.enable", "true"); // Enable StartTLS
System.out.println("Mail Server Properties have been setup successfully..");
}
public void populateMailMessage(String msg) throws MessagingException{
//Step2
System.out.println("\n\n 2nd ===> get Mail Session..");
mailSession = Session.getDefaultInstance(mailAccessCredentials, null);
mailMessage = new MimeMessage(mailSession);
mailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("n****@gmail.com"));
mailMessage.setSubject("Report from Database Payments now Due");
mailMessage.setContent(msg, "text/html");
System.out.println("Mail Session has been created successfully..");
}
public void sendMail() throws MessagingException{
//Step3
System.out.println("\n\n 3rd ===> Get Session and Send mail");
Transport transport = mailSession.getTransport("smtp");
// Enter your correct gmail UserID and Password
transport.connect("smtp.gmail.com", "[email protected]******", "****");
transport.sendMessage(mailMessage, mailMessage.getAllRecipients());
transport.close();
}
public static void main(String[] args) throws MessagingException {
SendMail sm = new SendMail();
//sm.populateMailMessage();
sm.sendMail();
}
}
可以使用inline css风格你的表格。你不能分开使用CSS,因为大多数电子邮件服务不支持它.. ..更改您的电子邮件字符串构建代码为以下代码。
email.append("<html><body>"
+ "<table style='border:2px solid black'>");
update.setString(1, "Outstanding");
ResultSet results = update.executeQuery();
while (results.next()) {
System.out.println("in results...");
email.append("<tr bgcolor=\"#33CC99\">");
email.append("<td>");
long period = results.getLong("period_to");
email.append(DateConvert.fromEpoch(period));
email.append("</td>");
email.append("<td>");
email.append(results.getString("type"));
email.append("</td>");
email.append("<td>");
email.append(results.getString("amt"));
email.append("</td>");
email.append("<td>");
email.append(results.getString("status"));
email.append("</td>");
email.append("<tr>");
}
email.append("</table></body></html>");
sm.populateMailMessage(email.toString());
sm.sendMail();
谢谢@fastsnail!我假设我可以使用其他有效的CSS属性,如填充等? :) – mg3np1 2014-11-03 19:35:56
@ mg3np1我想你可以。但PLZ检查..u可以发送到电子邮件,雅虎..等并检查您的CSS属性是否工作 – 2014-11-04 01:12:57
@ mg3np1,也看看这一个http://templates.mailchimp.com/resources/email-client-css-支持/ – 2014-11-04 01:48:43
可以使用inline css风格你的表格。你不能分开使用CSS,因为大多数电子邮件服务不支持它.. ..更改您的电子邮件字符串构建代码为以下代码。
email.append("<html><body>"
+ "<table style='border:2px solid black'>");
update.setString(1, "Outstanding");
ResultSet results = update.executeQuery();
while (results.next()) {
System.out.println("in results...");
email.append("<tr bgcolor=\"#33CC99\">");
email.append("<td>");
long period = results.getLong("period_to");
email.append(DateConvert.fromEpoch(period));
email.append("</td>");
email.append("<td>");
email.append(results.getString("type"));
email.append("</td>");
email.append("<td>");
email.append(results.getString("amt"));
email.append("</td>");
email.append("<td>");
email.append(results.getString("status"));
email.append("</td>");
email.append("<tr>");
}
email.append("</table></body></html>");
sm.populateMailMessage(email.toString());
sm.sendMail();
谢谢@fastsnail!我假设我可以使用其他有效的CSS属性,如填充等? :) – mg3np1 2014-11-03 19:35:56
@ mg3np1我想你可以。但PLZ检查..u可以发送到电子邮件,雅虎..等并检查您的CSS属性是否工作 – 2014-11-04 01:12:57
@ mg3np1,也看看这一个http://templates.mailchimp.com/resources/email-client-css-支持/ – 2014-11-04 01:48:43
你应该使用内联CSS的,我想实现这个使用此代码的答复 – 2014-11-02 23:38:33
感谢: – mg3np1 2014-11-03 10:23:30
email.append(”
表.OUT {border- width:1px,“ +”border-color:black}“ +”“ +”“) ; – mg3np1 2014-11-03 10:24:53回答
可以使用inline css风格你的表格。你不能分开使用CSS,因为大多数电子邮件服务不支持它.. ..更改您的电子邮件字符串构建代码为以下代码。
谢谢@fastsnail!我假设我可以使用其他有效的CSS属性,如填充等? :) – mg3np1 2014-11-03 19:35:56
@ mg3np1我想你可以。但PLZ检查..u可以发送到电子邮件,雅虎..等并检查您的CSS属性是否工作 – 2014-11-04 01:12:57
@ mg3np1,也看看这一个http://templates.mailchimp.com/resources/email-client-css-支持/ – 2014-11-04 01:48:43
相关问题