面向 C# 开发人员的电子邮件转换控件 - EML 到 PNG
本文将使 C# 开发人员能够以编程方式将EML或MSG转换为其他流行的文件格式。Aspose.Email 提供了类和方法以及在线 电子邮件转换器工具,可将 EML无缝转换为PNG 。如果不安装第三方软件,则无法打开 EML/MSG 文件。因此,将 EML/MSG 转换为 PNG 和JPG等图像文件格式将允许您轻松查看这些文件。因此,在本指南中,我们将通过一段代码片段来使用C#构建电子邮件转换软件。在继续之前,请确保您有源EML和MSG文件来实现该功能。
Aspose.Email 是用于轻松的开发 email 功能的应用程序的一组控件,基于 ASP.NET 的Web应用、Web服务和Windows 应用。支持 Outlook PST, EML, MSG, and MHT 格式. 允许开发者直接与 SMTP, POP, FTP, 和 MS Exchange 服务器进行工作。支持邮件合并、行事历、定制邮件标题和内容、嵌入文件等,Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。
Aspose.Email 最新下载(qun:666790229)
https://www.evget.com/product/3081/download
电子邮件 API 集成和安装
要安装此企业级 .NET 库,请在NuGet包管理器中运行以下命令或在此处下载 DLL 文件。
Install-Package Aspose.Email
除了Aspose.Email for .NET之外,您还需要安装Aspose.Words for .NET API。
Install-Package Aspose.Words
Aspose.Email for .NET为开发人员提供了完整的安装指南。此外,安装需要几秒钟,您就可以开始使用 API 将EML 转换为 PNG 或 MSG 转换为 PNG。

C# 中的 EML 到 PNG 转换
现在,我们可以编写一个代码示例,以编程方式用 C# 构建电子邮件转换器工具。
以下步骤展示了如何构建电子邮件转换软件以将 EML 转换为 PNG:
- 创建EmlLoadOptions类的对象,该对象将用于从 EML 格式加载 MailMessage。
- 设置RemoveSignature属性的值以指示加载时是否删除签名。
- 调用MailMessage类的Load方法来加载源 EML 文件。
- 设置消息的敏感度。
- 设置消息的优先级。
- 实例化MemoryStream类的实例。
- 将 EML 转换为 MHTML 并通过调用Save方法保存到流。
- 调用Position属性并设置流中的当前位置。
- 使用 MHTML 流初始化Document类的实例。
- 通过调用Save方法将文档保存为 PNG 图像。
以下代码片段在 C# 中将 EML 转换为 PNG。
using Aspose.Email;
using Aspose.Words;namespace Aspose.Email
{
class EMLtoPNG
{
// Email conversion software for C# Developers - EML to PNG
static void Main(string[] args)
{string dataDir = "/sample-files/";
// Create an object of the EmlLoadOptions class that will be used to load MailMessage from EML format.
EmlLoadOptions emlLoadOptions = new EmlLoadOptions();
// Set a value of RemoveSignature property to indicate whether signature will be removed while loading.
emlLoadOptions.RemoveSignature = false;
// Invoke the Load method of the MailMessage class to load the source eml file.
MailMessage msg = MailMessage.Load(dataDir + "sample.eml", emlLoadOptions);
// Set the Sensitivity of the message.
msg.Sensitivity = MailSensitivity.Normal;
// Set the Priority of the message.
msg.Priority = MailPriority.High;
// Instantiate an instance of the MemoryStream class.
MemoryStream msgStream = new MemoryStream();
// Convert EML to MHTML and save to stream by calling the Save method.
msg.Save(msgStream, SaveOptions.DefaultMhtml);
// Invoke the Position property and set the current position within the stream.
msgStream.Position = 0;
// Initialize an instance of the Document class with the MHTML stream.
Document msgDocument = new Document(msgStream);
// Save the document as PNG image by calling the Save method.
msgDocument.Save(dataDir + "Outlook-Aspose_out.png", SaveFormat.Png);
}
}
}
您可以在下图中看到输出:

以编程方式将 MSG 转换为 PNG
同样,您可以通过在上面的代码片段中进行以下更改来将MSG 转换为 PNG :
- 创建MsgLoadOptions类的对象并将其作为参数传递到MailMessage类的Load方法中以加载源 MSG 文件。
以下代码示例演示了如何在.NET中将MSG转换为PNG:
using Aspose.Email;
using Aspose.Words;namespace Aspose.Email
{
class MSGtoPNG
{
// Email conversion software for C# Developers - MSG to PNG
static void Main(string[] args)
{string dataDir = "/sample-files/";
// Create an object of the MsgLoadOptions class that will be used to load MailMessage from MSG format.
MsgLoadOptions msgLoadOptions = new MsgLoadOptions();
// Set a value of RemoveSignature property to indicate whether signature will be removed while loading.
msgLoadOptions.RemoveSignature = false;
// Invoke the Load method of the MailMessage class to load the source MSG file.
MailMessage msg = MailMessage.Load(dataDir + "sample.msg", msgLoadOptions);
// Set the Sensitivity of the message.
msg.Sensitivity = MailSensitivity.Normal;
// Set the Priority of the message.
msg.Priority = MailPriority.High;
// Instantiate an instance of the MemoryStream class.
MemoryStream msgStream = new MemoryStream();
// Convert MSG to MHTML and save to stream by calling the Save method.
msg.Save(msgStream, SaveOptions.DefaultMhtml);
// Invoke the Position property and set the current position within the stream.
msgStream.Position = 0;
// Initialize an instance of the Document class with the MHTML stream.
Document msgDocument = new Document(msgStream);
// Save the document as PNG image by calling the Save method.
msgDocument.Save(dataDir + "Outlook-Aspose_out.png", SaveFormat.Png);
}
}
}
免费电子邮件转换器 - 现场演示
我们学习了如何为 C# 开发人员开发电子邮件转换软件。这里有一个在线工具,可以在线将 EML 转换为 PNG。它由Aspose.Email提供支持。此外,此电子邮件转换器工具是基于网络的,并具有用户友好的界面,您也可以在手机上使用此电子邮件转换器。最重要的是,它是免费的,您在使用它之前不需要进行任何订阅。

结论
我们在此结束这篇博文,希望本文对您有所帮助。我们已经了解了如何使用Aspose.Email for .NET在 C# 中构建电子邮件转换软件。此外,我们探索了一个在线电子邮件转换器工具,可以在线将 EML 转换为 PNG。
相关文章:
面向 C# 开发人员的电子邮件转换控件 - EML 到 PNG
本文将使 C# 开发人员能够以编程方式将EML或MSG转换为其他流行的文件格式。Aspose.Email 提供了类和方法以及在线 电子邮件转换器工具,可将 EML无缝转换为PNG 。如果不安装第三方软件,则无法打开 EML/MSG 文件。因此,将 EML/MSG 转换为 PNG 和…...
Vue3:数据交互axios
回调函数 > 回调函数: 一些特殊的函数,表示未来才会执行的一些功能,后续代码不会等待该函数执行完毕就开始执行了 1. Promise 1.1 简介 > 前端中的异步编程技术,类似Java中的多线程线程结果回调! * Promise 是异步编程的一种解决方案,…...
芯片的性能指什么
【省带宽、压成本专题】降低30%视频码率,深挖“窄带高清”的实现原理 - 知乎 芯片(或微处理器、集成电路)的性能主要指其完成特定任务的能力和效率。性能可以通过多种参数来衡量,这些参数反映了芯片设计的不同方面,包…...
Java通过百度地图API获取定位-普通IP定位
项目中有一个登录邮箱提醒的功能,需要根据IP地址获取定位信息,从而更好地提示用户账号登录的所在地。为此,花费了一些时间来实现这个功能。 在CSDN搜索了一下,发现关于获取定位的文章说明都不够详细,于是决定自己创作一…...
5月13号作业
使用消息队列实现的2个终端之间的互相聊天 并使用信号控制消息队列的读取方式: 当键盘按ctrlc的时候,切换消息读取方式,一般情况为读取指定编号的消息,按ctrlc之后,指定的编号不读取,读取其他所有编号的消息…...
【计算机网络】Socket网络编程
💻文章目录 📄前言Socket编程基础概念工作原理 Socket API介绍socket函数绑定、监听函数accept、connect接受/发送函数 Socket API的应用Socket类与其派生类的设计服务器与客户端的设计使用 📓总结 📄前言 现今我们的日常生活当中…...
Ansible自动运维工具之playbook
目录 一.inventory主机清单 1.定义 2.变量 (1)主机变量 (2)组变量 (3)组嵌套 二.playbook基本内容 1.组成 (1)Tasks: 任务,即调用模块完成的某操作 ࿰…...
【启明智显技术分享】SSD201/SSD202D核心板UI界面开发全攻略:LVGL使用指南
提示:作为Espressif(乐鑫科技)大中华区合作伙伴及sigmastar(厦门星宸)VAD合作伙伴,我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考。同时也用心整理了乐鑫及星宸…...
数据可视化(九):Pandas北京租房数据分析——房源特征绘图、箱线图、动态可视化等高级操作
Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…...
ADOP带你了解:跳线与交叉电缆有何不同?
如果您想将设备连接到互联网,您可能想知道要使用的正确电缆。跳线和交叉电缆都是类型的以太网电缆,可帮助连接计算机、调制解调器、路由器和交换机等设备。那么,跳线和交叉电缆有什么区别呢?让我们讨论这两种类型的电缆࿰…...
Django 和 Spring Boot
标题 Django (Python)Django提供的组件Django 的处理逻辑 Spring Boot (Java)Spring Boot 的特点Spring Boot 的处理逻辑 MVC设计模式模型(Model)视图(View)控制器(Controller)逻辑处理过程 Django 和 Spri…...
上位机图像处理和嵌入式模块部署(树莓派4b的替代品)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 实话实说,树莓派4b的产品力还是比较优秀的,价格还算适中。但是和国产卡片电脑比起来,则逊色不少。功能差不多的…...
Springboot整合 Spring Cloud Gateway
1.Gateway介绍 1.是spring cloud官方推出的响应式的API网关框架,旨在为微服务架构提供一种简单有效的API路由的管理方式,并基于Filter的方式提供网关的基本功能,例如:安全认证,监控,限流等等。 2.功能特征…...
Rust开发工具有哪些?
目录 一、JetBrains公司的RustRover编辑 二、微软公司的Visual Studio Code 三、Rust编译工具 一、JetBrains公司的RustRover RustRover是由JetBrains开发的一款专为Rust开发量身定制的新兴IDE,目前还处于早期访问阶段。它支持Rust、Cargo、TOML、Web和数据库等…...
20240514基于深度学习的弹性超材料色散关系预测与结构逆设计
论文:Dispersion relation prediction and structure inverse design of elastic metamaterials via deep learning DOI:https://doi.org/10.1016/j.mtphys.2022.100616 1、摘要 精心设计的超材料结构给予前所未有的性能,保证了各种各样的具…...
SAP:FI 财务凭证行项目文本前台修改
一、问题描述 财务凭证行项目文本点击修改,但是前台有的行可以修改,有的行是灰色的不能修改,如下图所示,这个文本信息有误,必须修改怎么办? 二、思路分析 有的行可以修改,有的行不能修改&#x…...
【linux系统学习教程 Day02】网络安全之Linux系统学习教程,管道,文件内容统计,过滤排序,去重,目录介绍
1-4 管道 管道符号: | ,可以将前面指令的执行结果,作为后面指令的操作内容。 ## 比如过滤ip地址 ip addr | tail -4 | head -1 解释一下就是先执行 ip addr ,得到的结果当做 tail -4 的输入,意思就是查看ip addr 结果的后四行内容…...
Spring Cloud LoadBalancer 4.1.2
LoadBalancer位于Spring Cloud Commons 模块 Spring Cloud 提供了自己的客户端负载均衡器抽象和实现。对于负载均衡机制,添加了 ReactiveLoadBalancer 接口,并为其提供了基于Round-Robin和Random的实现。为了让实例从反应式中进行选择,使用了…...
使用Xshell工具连接ubuntu-方便快捷
使用Xshell连接ubuntu 在命令行输入 “sudo apt-get install openssh-server”安装openssh-server 开启 ssh-server,在命令行输入 “service ssh start”,然后输入密码即可...
leetcode22 括号生成-组合型回溯
题目 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 输入:n 3 输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”] 解析 func generateParenthesis(n int) …...
Rust内存管理与安全:告别内存泄漏和空指针
Rust内存管理与安全:告别内存泄漏和空指针 后端转 Rust 的萌新,ID "第一程序员"——名字大,人很菜(暂时)。正在跟所有权和生命周期死磕,日常记录 Rust 学习路上的踩坑经验和"啊哈时刻"…...
Tsuru vs Kubernetes:容器化部署工具终极对比指南
Tsuru vs Kubernetes:容器化部署工具终极对比指南 【免费下载链接】tsuru Open source and extensible Platform as a Service (PaaS). 项目地址: https://gitcode.com/gh_mirrors/ts/tsuru 在当今云原生技术飞速发展的时代,选择合适的容器化部署…...
视觉障碍辅助:OpenClaw+Phi-3-vision-128k-instruct实时描述周围环境
视觉障碍辅助:OpenClawPhi-3-vision-128k-instruct实时描述周围环境 1. 项目背景与核心需求 去年在帮助一位视障朋友调试智能家居时,我意识到现有环境感知工具存在明显断层——要么是功能单一的"拍照识物"APP,要么是昂贵的企业级…...
不止于时钟:用QtE 4.4.0为UP-CUP4412开发板打造个性化嵌入式GUI界面的思路与扩展
从时钟到智能终端:基于QtE 4.4.0的UP-CUP4412嵌入式GUI开发实战 在嵌入式系统开发领域,图形用户界面(GUI)的设计与实现一直是连接硬件与用户的关键桥梁。UP-CUP4412开发板作为一款功能强大的ARM平台,配合Qt/Embedded(QtE)这一轻量级GUI框架&a…...
HiveWE:革新性魔兽争霸III地图编辑器,重新定义创作效率
HiveWE:革新性魔兽争霸III地图编辑器,重新定义创作效率 【免费下载链接】HiveWE A Warcraft III world editor. 项目地址: https://gitcode.com/gh_mirrors/hi/HiveWE 当你在制作魔兽争霸III地图时,是否曾因原版编辑器的加载速度缓慢而…...
如何在phpMyAdmin中根据结果集生成图表_折线图与柱状图的可视化展示
phpMyAdmin 不支持折线图或柱状图,新版已移除 Charts 标签页,旧版仅依赖弃用的 jpgraph 库支持极简饼图;可行方案是导出 CSV 后用 Excel 或 Chart.js 等外部工具绘图。phpMyAdmin 本身不支持折线图或柱状图phpmyadmin 是一个数据库管理工具&a…...
SecGPT-14B模型版本管理:无缝升级OpenClaw依赖的安全分析能力
SecGPT-14B模型版本管理:无缝升级OpenClaw依赖的安全分析能力 1. 为什么需要关注模型版本管理 上周我在用OpenClaw自动化处理安全日志时,突然发现几个原本能识别的攻击模式开始出现误判。排查后发现是底层SecGPT-14B模型更新后行为发生了变化——这个经…...
PID控制算法原理与应用详解
1. PID控制算法概述PID控制算法是工业控制领域应用最广泛的控制算法之一,它通过比例(P)、积分(I)和微分(D)三个环节的组合,实现对被控对象的精确控制。这种算法结构简单、参数物理意…...
嵌入式串口通信效率优化实战
1. 串口通信效率优化背景在嵌入式系统开发中,串口通信是最基础也最常用的外设接口之一。我从事嵌入式开发十多年来,处理过各种串口通信场景,从简单的调试信息输出到复杂的工业控制协议传输。传统串口通信方式在简单场景下工作良好,…...
modbus-esp8266库深度解析:工业级Modbus协议栈实现
1. modbus-esp8266 库深度技术解析:面向工业嵌入式场景的全协议栈实现1.1 库定位与工程价值modbus-esp8266是当前 Arduino 生态中功能最完备、架构最严谨的 Modbus 协议栈实现,专为 ESP8266/ESP32 等资源受限但网络能力突出的 Wi-Fi 微控制器平台深度优化…...
