如何以文本或字符串格式而不是 HTML 格式获取电子邮件的正文

Posted

技术标签:

【中文标题】如何以文本或字符串格式而不是 HTML 格式获取电子邮件的正文【英文标题】:How to get the body of an Email in Text or string format not in HTML 【发布时间】:2019-05-21 03:54:23 【问题描述】:

我需要获取电子邮件正文的内容。当我使用 item.getBody().toString() 方法时,我得到 html 格式的输出,但我希望正文为文本格式。我在网站上找到了 C# 代码,但我不知道如何将其转换为 java。

我尝试了以下方法,但没有按预期工作。

PropertySet bindPropSet = new PropertySet(BasePropertySet.FirstClassProperties , EmailMessageSchema.Body);
                    bindPropSet.getRequestedBodyType();
                    BodyType body = BodyType.Text;
                    LOGGER.info(BodyType.Text);

下面是C#代码

PropertySet BindPropSet = new PropertySet(BasePropertySet.FirstClassProperties);
BindPropSet.RequestedBodyType = BodyType.Text;
Item itm = Item.bind(service, itemId, BindPropSet);

【问题讨论】:

我知道 c# 有这个功能,但是你的电子邮件格式是什么?会不会是“多部分/替代”? 你检查过这些链接吗:***.com/questions/3931409/…***.com/questions/3288176/… @AlinaLi 我需要 Java 代码来将电子邮件正文格式化为文本。 @parladneupane 邮件格式是多部分的..你能提供我java中的sn-p代码吗 @LuCio 能否请您调查一下这个问题并帮助我。 【参考方案1】:

我找到了上述查询的解决方案。下面是使用纯文本格式的电子邮件而不是 HTML 的代码 sn-p。

PropertySet psPropSet = new PropertySet(BasePropertySet.FirstClassProperties , EmailMessageSchema.MimeContent, EmailMessageSchema.ToRecipients);
psPropSet.setRequestedBodyType(BodyType.Text);
emEmailMessage = EmailMessage.bind(service, itItemId, psPropSet);
String body = emEmailMessage.getBody().toString();

【讨论】:

以上是关于如何以文本或字符串格式而不是 HTML 格式获取电子邮件的正文的主要内容,如果未能解决你的问题,请参考以下文章

如何关闭 PHP + MySQL 错误格式化

如何以给定格式从 dijit.form.DateTextBox 获取日期?

获取范围/单元格对象的格式化文本

按数据类型而不是来自 AJAX 的格式化字符串对 DataTables 中的列进行排序

如何自定义 Eclipse 的文本编辑器代码格式

如何在文本区域内显示 HTML 格式? [复制]