gpt4 book ai didi

Java Mail - XML 和 HTML 表

转载 作者:行者123 更新时间:2023-12-01 13:53:04 26 4
gpt4 key购买 nike

我一直在尝试编写一个邮件系统,该系统将数据插入到 xml 模板中,然后重新收集模板以作为邮件发送,这工作得很好,但通过 HTML 表发送存在问题。如果邮件设置为text/html,我的表格工作正常,但我的xml不工作,同样适用于text/plain,其中我的xml工作,而我的html不工作。现在我的电子邮件应该包含 xml 样式的模板,其中包含 html 表数据。

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 节点之间的任何间距都会正确显示,但表格仍为字符串样式。

我完全不知道如何编程来解决这个问题?和想法?

提前谢谢您!

最佳答案

对于遇到相同问题或将来遇到相同问题的任何人。

要修复 java 邮件中的 html 和 xml,您需要使用 MultiBodyParts MIME*,将数据拆分为纯文本和 html 部分,并使用正文部分内容类型来区分。

这里有一些研究可以帮助您。

MIME - Subtypes

Multipart Messages.

祝你好运!

关于Java Mail - XML 和 HTML 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19812887/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com