使用 C# 从电子邮件中提取嵌入对象

电子邮件中嵌入对象简介

电子邮件中的嵌入对象是指直接插入到电子邮件内容中而不是单独附加的文件。这些对象允许发件人在邮件正文中包含图像、动画或交互式内容,从而丰富了电子邮件体验。

.NET 的 Aspose.Email 入门

Aspose.Email for .NET 是一个功能强大的库,提供了处理电子邮件的各种功能,包括解析、创建和操作电子邮件。首先,您需要在项目中安装 Aspose.Email for .NET 库。您可以从 Aspose. 发布 下载它: Aspose.Releases 或者使用 NuGet 等包管理器。

加载和解析电子邮件

要从电子邮件中提取嵌入对象,您首先需要加载并解析电子邮件。您可以这样做:

//导入必要的命名空间
using Aspose.Email;


//加载电子邮件消息
var message = MailMessage.Load("path/to/your/email.eml");

识别和提取嵌入对象

加载电子邮件后,您可以迭代其 AlternateViews 以识别和提取嵌入的对象。 AlternateViews 代表电子邮件的不同格式,包括 HTML 和纯文本。嵌入对象通常可以在 HTML 视图中找到。

//迭代替代视图
foreach (var view in message.AlternateViews)
{
    if (view.ContentType.MediaType == "text/html")
    {
        //从 HTML 内容中提取嵌入对象
        foreach (var linkedResource in view.LinkedResources)
        {
            //提取并保存链接资源(嵌入对象)
            linkedResource.Save("path/to/save/" + linkedResource.ContentId);
        }
    }
}

保存提取的对象

识别并提取嵌入的对象后,您可以将它们保存到所需的位置。链接资源的 ContentId 通常用作文件名。

完整的源代码

以下是使用 Aspose.Email for .NET 从电子邮件中提取嵌入对象的完整源代码:

using Aspose.Email;


namespace EmbeddedObjectExtractor
{
    class Program
    {
        static void Main(string[] args)
        {
            //加载电子邮件消息
            var message = MailMessage.Load("path/to/your/email.eml");

            //迭代替代视图
            foreach (var view in message.AlternateViews)
            {
                if (view.ContentType.MediaType == "text/html")
                {
                    //从 HTML 内容中提取嵌入对象
                    foreach (var linkedResource in view.LinkedResources)
                    {
                        //提取并保存链接资源(嵌入对象)
                        linkedResource.Save("path/to/save/" + linkedResource.ContentId);
                    }
                }
            }
        }
    }
}

结论

在本文中,我们探讨了如何使用 C# 和 Aspose.Email for .NET 库从电子邮件中提取嵌入对象。我们涵盖了从加载和解析电子邮件到识别和保存嵌入对象的整个过程。通过遵循本指南,您可以增强电子邮件处理能力并丰富应用程序的内容。

常见问题解答

如何安装 Aspose.Email for .NET?

您可以通过从 Aspose. 发布 下载来安装 Aspose.Email for .NET: Aspose.Releases 或使用 NuGet 等包管理器。

我可以从 HTML 以外的附件中提取嵌入对象吗?

是的,Aspose.Email for .NET 提供了从各种附件类型(包括 HTML、纯文本,甚至多媒体格式)中提取嵌入对象的方法。

Aspose.Email for .NET 可以免费使用吗?

Aspose.Email for .NET 是一个商业库,您可能需要获得许可证才能在项目中使用它。请参阅 定价页面 了解更多信息。

我可以在保存之前修改提取的嵌入对象吗?

是的,您可以在保存提取的嵌入对象之前对其进行操作。 Aspose.Email 库提供了多种修改电子邮件内容和资源的方法。

在哪里可以找到更多使用 Aspose.Email for .NET 的示例?

您可以在以下位置找到更多代码示例和教程 API参考 .