从电子邮件中提取消息内容
在屏幕上显示电子邮件信息
该 MailMessage 表示一封电子邮件消息并允许开发人员访问邮件属性。头信息(在 提取电子邮件头)可以以不同方式提取和操作。本篇文章解释了如何在屏幕上显示选定的电子邮件头信息和邮件正文。
- 创建 MailMessage 实例。
- 将电子邮件消息加载到 MailMessage 实例中。
- 在屏幕上显示电子邮件内容。
下面的代码演示了如何加载电子邮件消息并在屏幕上显示其内容——发件人、收件人、主题和邮件正文。
获取消息日期时间
该 MailMessage 该类可用于检索消息的 UTC 或本地时区日期。以下对该信息进行概括:
- MailMessage.getDate() - 返回 UTC 日期
- MailMessage.getLocalDate() - 返回本地时区的日期
- MailMessage.isLocalDate 如果 MailMessage.getDate() 在本地时区,则返回 true
提取电子邮件头
电子邮件头是 Internet 和 RFC 定义的标准头字段集合,包含在 Internet 电子邮件中。可以使用 MailMessage 类。常见的标题类型在此定义: HeaderType 类。它是一个密封类,工作方式类似普通枚举。
要提取电子邮件头,请按照以下步骤操作:
- 创建 MailMessage 类的实例。
- 在 MailMessage 类的实例中加载电子邮件消息。
- 在加载电子邮件消息后,我们将获取其原始内容。MailMessage 类本身包含诸如 From、To、Cc、Subject 等属性。这些属性可以从头信息中提取。
- 显示原始内容。
获取解码后的标题值
获取和修改链接资源的 Disposition 头
可以在电子邮件消息对象中以编程方式访问和操作链接资源。该 getContentDisposition() 方法的 LinkedResource 该类获取 Content-Disposition 头。下面的代码示例演示了如何访问和修改链接资源的文件名:
MailMessage eml = MailMessage.load(fileName);
eml.getLinkedResources().get_Item(0).getContentDisposition().setFileName("changed.png");
获取 HTML 正文为纯文本
该 MailMessage 该类提供将消息的 HTML 正文提取为纯文本的功能。MailMessage 类提供了 GetHtmlBodyText 该方法返回纯文本形式的 HTML 正文。GetHtmlBodyText 方法接受一个布尔参数,用于指示正文是否应包含 URL。将参数设为 true 表示 HTML 正文应包含 URL。
以下代码片段演示了使用 GetHtmlBodyText 方法将电子邮件的 HTML 正文提取为纯文本。
从电子邮件检索 X.500 Exchange 地址
Aspose.Email for Java 允许您直接通过 MailAddress 类。使用 X500Address 通过该属性,您可以在可用时检索 Exchange X.500 格式的电子邮件地址。以下代码示例展示了如何加载电子邮件消息并获取发件人的 X.500 地址:
MailMessage mailMessage = MailMessage.load(fileName);
String exaddr = mailMessage.getFrom().getX500Address();
如果 X.500 地址存在,它将作为字符串返回,可用于与基于 Exchange 的系统交互的应用程序的进一步处理或日志记录。
提取并嵌入链接图像为 HTML 邮件的附件
Aspose.Email ExtractHTMLBodyResourcesAsAttachments 方法的 HtmlSaveOption 该类定义是否将 HTML 正文资源提取为附件。因此,您可以从 HTML 正文中提取与图像链接的内容,并将其嵌入为 MIME 消息的附件。链接的图像得以保留并正确关联到电子邮件,提高了内容完整性和离线可访问性。
以下代码示例演示了如何执行此任务:
MailMessage mailMessage = MailMessage.load("input.eml");
HtmlSaveOptions options = new HtmlSaveOptions();
options.setExtractHTMLBodyResourcesAsAttachments(true);
options.setResourceHtmlRenderingHandler(new ResourceHtmlRenderingHandler() {
public void invoke(final Object sender, final ResourceHtmlRenderingEventArgs e) {
System.out.println(e.getPathToResourceFile() + " " + ((Attachment)sender).getContentId());
}
});