我一直在尝试编写一个邮件系统,该系统将数据插入到 xml 模板中,然后重新收集模板以作为邮件发送,这非常有效,但它们是通过 HTML 表发送的问题。如果邮件设置为 text/html 我的表格工作正常但我的 xml 没有,同样适用于我的 xml 工作而我的 html 没有的 text/plain。现在我的电子邮件意味着包含两个带有 html 表格数据的 xml 样式模板。
XML 文件 - 内容
<bodycontent>
<text1></text1>
<text2></text2>
<table1></table1>
<table2></table2>
</bodycontent>
将数据设置为 XML 元素
eElement.getElementsByTagName("text1").item(0).setTextContent("data1");
eElement.getElementsByTagName("text2").item(0).setTextContent("data2");
eElement.getElementsByTagName("table1").item(0).setTextContent("data3");
eElement.getElementsByTagName("table2").item(0).setTextContent("data4");
eElement.getElementsByTagName("projectnum").item(0).setTextContent("data5");
从xml获取数据内容
eElement.getElementsByTagName("bodycontent").item(0).getTextContent();
创建邮件传输
Session mailSession = Session.getDefaultInstance(properties);
Transport transport = mailSession.getTransport();
MimeMessage message = new MimeMessage(mailSession);
message.setSubject(rs.getString("emailTitle"));
message.setContent(rs.getString("emailContent"), "text/plain");
Address[] from = InternetAddress.parse(SMTPMailFrom);
message.addFrom(from);
message.addRecipient(Message.RecipientType.TO, new InternetAddress(rs.getString("requestEmailAddress"))); //Send email To (Type email ID that you want to send)
transport.connect(SMTPMailHost, Integer.parseInt(SMTPMailPort), SMTP_tmp_user, SMTP_tmp_pass);
transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
transport.close();
电子邮件内容示例
我目前正在将表格作为字符串传递,但这不起作用。我如何转换这个,所以输出是一个解析的 html 表?
Data 3 = "<table border=\"1\"><tr><td> Data 1</td></tr><tr><td> Data 2</td></tr><tr><td> Data 3</td></tr></table>";
如果输出是普通的,则 xml 节点之间的任何间距都会正确显示,但表格仍为字符串样式。
我完全被困在如何解决这个问题上?和想法?
提前谢谢你!