如何以文本或字符串格式而不是 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 格式获取电子邮件的正文的主要内容,如果未能解决你的问题,请参考以下文章
如何以给定格式从 dijit.form.DateTextBox 获取日期?