发邮件至MHT

Microsoft Outlook 和其他流行的电子邮件客户端使用 EML(MIME RFC 822 标准)作为标准格式。EML 是电子邮件或电子邮件的缩写。同样,它是电子邮件消息的文件扩展名,以电子邮件消息的 Internet 消息格式协议保存到文件中。EML 文件通常包含纯 ASCII 文本作为主要消息正文、标题和超链接以及附件。但是,EML 格式存在一个威胁,即它可能是网络钓鱼电子邮件,并且附件可能:如果您打开附件,您的计算机将感染恶意软件。

此外,如果我们保存了这些文件的离线副本,恶意软件很容易影响它们,数据可能会丢失。此外,为了打开 EML 文件,我们需要一个受支持的应用程序(Microsoft Outlook 365、Microsoft Windows Mail、Mozilla Thunderbird 等)。因此,一个预防措施是将其转换为 MHT 格式。

免费电子邮件处理 API

Aspose.Email Cloud 是我们屡获殊荣的 API,提供创建、操作和将流行电子邮件格式转换为其他受支持格式的功能。因此,您可以创建自己的支持 OAuth 的基于云的电子邮件管理解决方案,并发送带或不带附件的简单或 MIME 电子邮件消息。可以在任何平台(包括 Windows、Linux、macOS)和任何应用程序类型(即桌面、移动、Web、混合等)上访问 API。

为了在编程语言中直接使用 API,请尝试使用我们特定于语言的 Cloud SDK,它是 Cloud SDK 的包装器。在本文中,我们将重点介绍如何使用 Aspose.Email Cloud SDK for .NET 将 EML 文件转换为 MHT 格式。为了使用 SDK,您需要拥有受支持的(或与受支持的).NET 框架之一:

  • .NET框架 2.0
  • .NET框架 4.5.2
  • .NET标准 2.0
  • MonoAndroid 6.0
  • 更新至 Xamarin.iOS 1.0
  • 更新日期:2019-03-27

安装

要使用 Cloud SDK,第一步是安装它。它可在 NuGetGitHub 下载。请在终端窗口中执行以下命令来执行 NuGet 的安装:

nuget install Aspose.Email-Cloud

使用 .NET CLI 时:

dotnet add package Aspose.Email-Cloud

如果您使用的是 Visual Studio,那么也可以使用包管理器控制台安装该包。请执行以下命令:

PM> Install-Package Aspose.Email-Cloud
email to mht

Image 1:- Aspose.Words NuGet package installed.

NuGet 包管理器 – Visual Studio

另一种最简单的方法是通过 Visual Studio IDE 中的 NuGet 包管理器安装 SDK。

  1. 打开解决方案资源管理器。
  2. 展开项目并右键单击解决方案中的“包”文件夹。
  3. 选择管理 NuGet 包… 选项
  4. 单击浏览选项卡并搜索“Aspose.Email-Cloud”
  5. 单击 Aspose.Email-Cloud 包,在右侧选项卡中选择适当的版本,然后单击添加包按钮
email to mht

Image 2:- Aspose.Words Package in NuGet Package Manager.

云账户订阅

我们的 API 仅供授权人员访问,因为存储在云存储中的数据可通过云 API 访问。订阅是免费的,无需预付款详细信息。最多可执行 150 次免费文档处理操作。因此,一旦您对 API 的功能感到满意,您可以考虑选择许可证订阅,其价格低至 0.005 美元/API 调用。有关更多详细信息,请访问 定价

现在访问 Aspose.Cloud 仪表板 继续创建帐户。无需信用卡或其他付款详细信息。如果您有 GitHub 或 Google 帐户,只需注册或单击 创建新帐户 按钮并提供所需信息。现在使用凭据登录仪表板并从仪表板展开应用程序部分,然后向下滚动到客户端凭据部分以查看客户端 ID 和客户端密钥详细信息。

客户端凭证

图 3:Aspose.Cloud 仪表板上的客户端凭证。

使用 C# 将 EML 转换为 MHT

请按照以下步骤使用 C# .NET 将 EML 文件转换为 MHT 格式。

  • 第一步是通过将 ClientID 和 Client Secret 详细信息作为参数传递来创建 EmailCloud 类的对象
  • 其次,将源电子邮件文件读取到 File.OpenRead 实例中
  • 第三,创建 EmailConvertRequest 实例,同时传递输入文件格式、结果文件格式和保存输入 EML 文件的流对象
  • 现在调用 Email.Convert(…) 方法来启动转换操作
  • 最后,使用 File.Create 实例调用自定义方法将结果文件保存到本地驱动器
// 如需完整的示例和数据文件,请访问 
https://github.com/aspose-email-cloud/aspose-email-cloud-dotnet

// 从 https://dashboard.aspose.cloud/ 获取客户端凭据
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// 创建 EmailCloud Api 实例
var emailApi = new EmailCloud(clientSecret, clientID);
       
// 源 EML 文件名
string name = "sample.eml";
// 生成的 MHT 文件的名称
string resultantFile = "converted.mht";
// 输入电子邮件文件的格式
string fromFormat = "eml";
// 结果文件的格式
string toFormat = "Mhtml";

 try
{
    // 读取源 EML 到流对象
    using (var file = System.IO.File.OpenRead(@"C:\Users\shahbnay\Downloads\" + name))
    {
    
        // 创建 EmailConvert 请求实例,传递输入、输出格式和文件流
        var convertRequest = new EmailConvertRequest(fromFormat, toFormat, file);
        
        // 执行转换操作
        var response = emailApi.Email.Convert(convertRequest);

        // 如果转换成功,则打印成功消息
        if (response != null && response.Equals("OK"))
        {
            // 打印成功信息
            Console.WriteLine("Successfully converted EML to MHT !");
            Console.ReadKey();
        }
        
        // 将结果文件流保存到本地驱动器
        saveToDisk(response, @"C:\Users\shahbnay\Downloads\" + resultantFile);
    }
}catch (Exception ex)
{
    // 在控制台中打印异常
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

// 自定义方法将输出保存到系统驱动器
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}
EML 到 MHT 预览

图 4:- EML 到 MHT 转换预览。

上述示例中使用的文件可以从 sample.emlconverted.mht 下载。

使用 cURL 将 EML 转换为 MHT

由于 Aspose.Email Cloud 是根据 REST 架构开发的,因此可以通过 cURL 命令轻松访问。使用终端应用程序/命令提示符访问 API。因此,第一步是根据 Aspose.Cloud 仪表板 上指定的客户端凭据生成 JWT 访问令牌。请执行以下命令生成 JWT 令牌。

curl -v "https://api.aspose.cloud/connect/token" \
 -X POST \
 -d "grant_type=client_credentials&client_id=4db2f826-bf9c-42e7-8b2a-8cbca2d15553&client_secret=d757548a9f2558c39c2feebdf85b4c44" \
 -H "Content-Type: application/x-www-form-urlencoded" \
 -H "Accept: application/json"

现在我们将讨论使用 cURL 命令将云存储中已有的 .eml 文件转换为 MHTML 格式的步骤。使用 -o 参数将输出保存在系统上。

curl -X GET "https://api.aspose.cloud/v4.0/email/as-file?fileName=sample.eml&format=Mhtml" \
-H  "accept: multipart/form-data" \
-H  "authorization: Bearer <JWT Token>" \
-o resultant.mht

如果您需要对从本地驱动器上传的 .eml 文件进行转换,请尝试使用以下 cURL 命令:

curl -X PUT "https://api.aspose.cloud/v4.0/email/convert?fromFormat=Eml&toFormat=Mhtml" \
-H  "accept: multipart/form-data" \
-H  "authorization: Bearer <JWT Token>" \
-H  "Content-Type: multipart/form-data" \
-d @sample.eml \
-o converted.mht

结论

在本文中,我们重点介绍了 Aspose.Email Cloud 用于处理流行电子邮件格式的功能。API 使您能够创建电子邮件操作应用程序,以将红旗应用于电子邮件消息、应用电子邮件附件以及下载电子邮件附件等等。我们讨论了如何使用 C# .NET 和 cURL 命令执行 EML 文件到 MHT 转换的步骤。此外,.NET Cloud SDK 是根据 MIT 许可证开发的。完全免费下载和自定义它们。完整的源代码可在 GitHub 上找到。

我们还提供了云 API 的 swagger 视图,以便您可以在 Web 浏览器中测试 API。此外,如果您遇到任何问题或有任何其他疑问,请随时通过 免费客户支持论坛 与我们联系。

相关文章

我们还建议您访问以下链接以了解更多信息: