首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何直接打开Outlook文件附件而不保存?(用C# VSTO)

在C# VSTO中,可以使用以下代码实现直接打开Outlook文件附件而不保存:

代码语言:txt
复制
using Outlook = Microsoft.Office.Interop.Outlook;

private void OpenAttachmentWithoutSaving(Outlook.Attachment attachment)
{
    string temporaryPath = Path.GetTempFileName();
    attachment.SaveAsFile(temporaryPath);

    Process.Start(temporaryPath);
}

上述代码将附件保存到临时文件夹中,并使用操作系统的默认程序打开该文件。这样可以实现直接打开Outlook文件附件而不保存到本地。

需要注意的是,为了使用上述代码,需要在项目中引用Microsoft.Office.Interop.Outlook程序集,并使用Outlook命名空间。

该方法适用于Outlook开发中需要直接打开文件附件的场景。如果附件是支持的文件类型,并且用户的操作系统中有关联的默认程序,那么附件将会在该程序中直接打开。

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel催化剂开源第29波-在Winform上使用富文本编辑器控件

像Winform开发的VSTO,只能羡慕的份。和一般Winform上的RichText控件,别人BS的富文本编辑器就强大得多。...在Excel催化剂的批量邮件功能中, 为了得到最好的体验,不止是不用依赖OUTLOOK的组件来发邮件(好像VBA的方案只能用outlook组件,用户电脑没安装outlook就不能用),同时为了让用户可以在邮件正文编辑区的使用体验和...邮件群发功能 这个第3方富文本编辑器控件,不单单可以在里面作一些格式的配置,还可以有打开html文件直接从网页其他地方复杂内容直接粘贴和插入本地图片,有了这些能力,在发送邮件正文时,使用体验就非常棒,...群发邮件核心代码,这个富文本控件,拿到其渲染后的html文件,发邮件当然有C#自己的轮子,也很好用。...所以VSTO和VBA开发,真的有一个本质的区别,VBA大不了最多用下系统的API函数,OFFICE的对象模型,但在VSTO的世界里,只要用心找,可以尽性地用尽一切世界上优秀的代码轮子。

95820
  • Active APT

    它还将恶意 OTM 文件Outlook VBA 项目)保存到磁盘,其中包含宏、恶意电子邮件附件,在某些情况下,还保存了电子邮件应发送到的收件人列表。...此外,由于这些宏在打开文档时运行,因此在系统上持久保存是一种好方法,因为其中一些文档可能会在不同时间多次打开。 这些宏注入模块还具有篡改 Microsoft Office 宏安全设置的功能。...因此,受影响的用户不知道他们在打开文档时再次破坏了他们的工作站。我们已经看到这个模块以两种不同的语言实现:C# 和 VBScript。 C# 与许多其他工具一样,该模块以 7z 自解压存档的形式提供。...下载者 他们的下载器有很多变体,其中大多数是 C# 或 VBScript 编写的。本节将仅介绍其中两个最原始的变体;其他的并没有那么大,而且非常简单。...首先,它现在通过名称散列解析 Windows API,其次,它使用基本文本文件不是 SQLite 数据库来跟踪哪些文件已上传到 C&C 服务器。

    8K00

    Outlook.com邮箱环境在iOS浏览器下的Stored XSS漏洞

    漏洞情况 漏洞标题:msoffice ppt文件触发iOS浏览器环境下的outlook.live.com网站存储型XSS漏洞 影响服务:访问了outlook.live.com网站且基于谷歌Chrome...2、假想攻击者通过 outlook.live.com 登录个人邮箱,向受害者通过邮件附件方式,发送上述制作的ppt文件; 3、假设受害者在苹果移动终端iOS系统下,使用谷歌Chrome iOS浏览器,通过...outlook.live.com 登录个人邮箱进行收件,打开攻击者发送的上述邮件,并点击其中的ppt附件下载。...注意,此时下载操作并不会向电脑端那样直接保存到本地,而是由谷歌Chrome iOS浏览器对ppt文件解析打开受害者在文件打开之后,一旦点击了ppt中的那个超链接,就会触发“javascript:prompt...4、当然,如果直接通过iOS中的Chrome浏览器进行在线的ppt解析加载(Powerpoint online)或执行附件预览,如下: ?

    1.7K20

    Office 365开发概述及生态环境介绍(一)

    如果说Office XP是我用得比较全的一个版本(除了Outlook没有怎么,其他组件基本都对照帮助文档摸了一遍,还用FrontPage做出了人生第一个奇丑无比的网站,但其实对那些所谓的开发完全是一知半解...首先,它当然继续支持VBA,但却规定所有包含代码的文件,与包含代码的文件,从文件格式上就明确有所区分。...例如,Excel 2007的标准文件格式为xlsx,包含VBA代码的文件则必须重命名为xlsm(这里的m是指macro的意思,我后续会介绍这个概念)。...前者不消多说,现在一般就是通过带有m后缀的文件保存即可(例如xlsm, docm等),后者有一个更加专用的格式(例如xlam)和叫法(加载宏)。...这里就是我们熟悉的.NET编程的体验,可以用到几乎所有.NET Framework的功能,目前VSTO支持的开发语言除了VB.NET,还有C#

    3K20

    利用宏避免发送确认邮件时忘记添加附件

    虽然Outlook支持邮件撤回功能,但是那个撤回功能实在是太SB了(谁谁知道……)。...,为了保证后面的步骤能够顺利,我们可以先做一些准备工作: “文件 → 选项”,弹出Outlook选项页面(Outlook 2007以前的版本可能在“工具”下直接就有宏,可以跳到第3步)。...在左侧导航区域选择“信任中心”,右侧点击“信任中心设置”(图2),弹出信任中心页面(Outlook 2007以前版本可能在“工具”下直接就有“信任设置”)。...image.png 图5:粘贴宏代码 然后点击左上角的保存按钮(CTRL+S),关闭宏编辑器,退出Outlook。...你可以编写一封新邮件作为测试,在主题中包含“重构待确认”字样,添加任何html网页文件作为附件,收件人最好写自己。

    2.5K90

    个人永久性免费-Excel催化剂功能第47波-VBA开发者喜爱的加密函数类

    题外话 本人也是从Excel的VBA语言入门了编程世界的,然后很偶然的机会接触到VSTO,并且在一位热心的网友一路的帮助下,算是入门了C#语言,现在可以灵活地C#实现自己想要的一些小功能(大部分是抄百度和...就算微软自己的.Net Framework类库集,也只能在.Net语言中使用,不能供VBA所使用。...例如今天介绍的几个加密函数,在.Net Framework类库里,直接有现成的代码,几乎可以直接调用的程度,对于一些非OFFICE环境内的功能实现来说,使用VSTO开发或C#、VB.Net开发,开发效率还是有很大的提升...一般像我这种水平的人,只需要不断地百度或google,就可以拿到现成的东西直接复用,VBA毕竟是业务开发者使用的编程语言,同时又是一个官方停止更新语言,仍然使用VBA做一些复杂的需求,有点吃力讨好。...与Sqlserver零门槛交互-执行SQL 第22波-Excel文件类型、密码批量修改,补齐Power短板 第23波-非同一般地批量拆分工作表 第24波-批量发送邮件并指点不同附件不同变量 第25波-小白适用的文本处理功能

    3.2K10

    个人永久性免费-Excel催化剂功能第84波-批量提取OUTLOOK邮件附件

    结合过往的功能,轻松实现邮件附件的集中式管理,具体的整套的实现,可以参考近期推出的文件相关的视频教程,将在其中给予展示。今天只讲述主体功能,方法论展开分享。...步骤一:点击【批量提取OUTLOOK附件】按钮,打开配置窗体 为了能够在特定的邮件范围内搜索,加快搜索速度,避免无效的搜索,将通过搜索文件夹、搜索接收时间段,搜索标题关键字三大模块进行展开。...搜索文件夹是指OUTLOOK中的文件夹邮件分类,分了三大类,可实现在特定的文件夹内进行搜索,此搜索甚至局限于收件箱的搜索,可以在任意定义好的文件夹内如:收件箱、发件箱、删除邮件、草稿等。...邮件的保存路径,需要一个空的文件夹,若其内有文件,请先删除或新建或另选文件夹 步骤二:点击【遍历邮件下载附件】按钮,即可开始下载附件保存附件文件夹中,可看到附件已顺利下载成功,并且附件做了重命名操作...附件邮件信息清单 到此为止,可能会有读者有疑惑,为何要用邮件序号这样的数字来区分附件直接将邮件标题放到附件文件名上不是更直观吗?或者同名的附件让其重新加上自增序号以示区分不就可以了吗?

    1.6K40

    OLEOutlook利用:一封邮件绕过所有企业安全防控

    在本文中,我会向大家展示如何通过Email将一个可执行文件嵌入到公司网络。伪装成一份Word文档,绕过防火墙,目前该问题还没有任何补丁发布!...但是,如果你将该邮件保存为.msg文件,然后将其作为邮件的附件,用户就可以打开这个包了!...用户接收到邮件,如果他打开testing.msg文件,就会打开可执行文件,以及你在其中写下的提示!...Outlook自身对于OLE Packages也会忽略危险文件类型,并故作从容的允许它轻松的打开。...然后将消息类型换回HTML(重要),然后保存邮件: 在上面的例子中,通过安全提醒盲目的你打开了Invoice.docx,之后弹出了Firefox安装程序 保护 3个途径: 其一便是应用白名单,然而对于嵌入的签名的带参数可执行文件要非常小心了

    1.5K100

    【改进和增强Microsoft Office应用程序】ExtendOffice软件产品介绍

    例如,如果您打开了多个文件,则不必分别保存和关闭它们; 只需从上下文菜单中单击“全部保存”即可保存所有文件。 要关闭所有打开文件吗? 只需选择“全部关闭”,所有文件将被关闭。...06、使用方便标签式界面允许您在一个窗口中打开多个文档。 每个文档在窗口(不是新窗口)中显示为新选项卡,只需单击一下即可访问。...自动转发 功能在创建规则时提供“与”和“或”关系, Outlook 不支持“与”关系。...07、从Outlook中分离/自动分离附件分离附件功能可以帮助删除所选邮件中的附件,同时将它们保存到特定文件夹中,分离附件文件后,附件将转换为电子邮件中的超链接文本,在这种情况下,您可以单击超链接快速轻松地打开附件文件...08、保存/自动保存 Outlook 中的附件如果您想从Outlook中批量下载并保存附件, Kutools for Outlook保存/自动保存附件功能可能的方法。

    11.2K20

    个人永久性免费-Excel催化剂第130波批量下载邮件信息及正文

    传送门: 第24波-批量发送邮件并指点不同附件不同变量 第84波-批量提取OUTLOOK邮件附件 第87波-将批量发送邮件做到极致化,需借力Outlook 场景设定 在批量下载附件的场景中,基本上可以满足一些同主题的数据采集需求...,但不排队有些数据采集直接在正文中回复,所以此处给大家追加了将正文批量保存下来的功能。...所以此处选择正文的保存采用文本文件的形式,文本文件没有格式样式,原正文内容将被简化。 当采集的内容不保存到Excel中,又如何能够将其结构化处理呢?...功能实现 下载正文信息的功能和下载附件非常类似,此处不作太多展开,区别在于一个下载附件,一个将正文保存为文本文件,存储在某设定文件夹内。 ?...,并且可以直接读取文本文件内容再提取。

    1.7K30

    『JSA宏神助攻之二』使用外部程序VSTO插件执行JSA宏

    以下是历史内容: 在WPS的个人版上,默认只有JSA宏,没有VBA宏,虽说在VSTO/ExcelDNA项目里或者外部程序如C#/python等可以使用COM通信来调用WPS的COM开放的接口。...如何调用,答案和FreeScript类似,仍然使用了Application.Run方法,在外部程序或VSTO插件里,调用这个方法,同样可以运行JSA宏。...【支持R脚本】FreeScript给数据分析工作者带来无限惊喜,在Excel/WPS环境上做专业数据分析不是梦 有了这个口子后,接下来,就是想办法把自己要实现的jsa宏放到一个xlsm文件里,然后使用外部程序打开这个...(urlStr) } 外部程序例如C#来调用它,代码如下: static void Main(string[] args) { Type etAppType...Marshal.ReleaseComObject(workbook); Marshal.ReleaseComObject(app); } 最后,就可以得到自己想要的结果了,xlsm文件打开

    11410

    『JSA神助攻之二』使用外部程序VSTO插件执行JSA宏

    以下是历史内容: 在WPS的个人版上,默认只有JSA宏,没有VBA宏,虽说在VSTO/ExcelDNA项目里或者外部程序如C#/python等可以使用COM通信来调用WPS的COM开放的接口。...如何调用,答案和FreeScript类似,仍然使用了Application.Run方法,在外部程序或VSTO插件里,调用这个方法,同样可以运行JSA宏。...【支持R脚本】FreeScript给数据分析工作者带来无限惊喜,在Excel/WPS环境上做专业数据分析不是梦 有了这个口子后,接下来,就是想办法把自己要实现的jsa宏放到一个xlsm文件里,然后使用外部程序打开这个...(urlStr) } 外部程序例如C#来调用它,代码如下: static void Main(string[] args) { Type etAppType...Marshal.ReleaseComObject(workbook); Marshal.ReleaseComObject(app); } 最后,就可以得到自己想要的结果了,xlsm文件打开

    15010

    自动另存QQ、163等大厂邮箱附件,先搞懂这一点点姿势就行了。 | PA实战案例

    - 1 - 前面的文章《为PBI自动准备数据源,2分钟,搞定300封邮件附件的自动保存 | PA实战案例》,讲了从Outlook邮件另存附件的内容,结果,很多朋友问,Outlook的搞懂了,但是,怎么从...首先,如果你考虑收件转发、或也可以通过Outlook收取这些大厂邮箱的邮件,那上面的文件仍然适用,同时也推荐Outlook收取的方式,毕竟可以充分结合Outlook的功能,Power Automate里也有针对...Outlook的专门操作,配置更简单一些: 但是,如果因为某些原因限制,又或者平时本身就不用Outlook,那也可以直接“电子邮件”的操作来实现: 总体来说也不复杂,但要先对邮箱进行一些简单的设置...比如,要检索电子邮件并将附件另存到某文件夹: 继续点开下方的“电子邮件筛选”,与操作Outlook邮件一样,可以对邮件进行筛选,并另存附件,按实际情况填写即可: 至此,无论从Outlook还是其他大厂邮箱检索邮件并另存附件...后续,我将进一步介绍如何通过Power Automate自动提取邮件主题、正文等相关内容。

    2K20

    『WPS二次开发最新成果』使用外部程序VSTO插件执行JSA宏

    在WPS的个人版上,默认只有JSA宏,没有VBA宏,虽说在VSTO/ExcelDNA项目里或者外部程序如C#/python等可以使用COM通信来调用WPS的COM开放的接口。...如何调用,答案和FreeScript类似,仍然使用了Application.Run方法,在外部程序或VSTO插件里,调用这个方法,同样可以运行JSA宏。...【支持R脚本】FreeScript给数据分析工作者带来无限惊喜,在Excel/WPS环境上做专业数据分析不是梦 有了这个口子后,接下来,就是想办法把自己要实现的jsa宏放到一个xlsm文件里,然后使用外部程序打开这个...(urlStr) } 外部程序例如C#来调用它,代码如下: static void Main(string[] args) { Type etAppType...Marshal.ReleaseComObject(workbook); Marshal.ReleaseComObject(app); } 最后,就可以得到自己想要的结果了,xlsm文件打开

    55610

    Outlook应用指南(3)——联系人管

    方法四:“查找联系人”输入框 在工具栏上的“请输入要查找的联系人”框中键入要查找的联系人的姓名,可以直接进行搜索。 ? 方法五:“查找”按钮 单击工具栏上的“查找”按钮,键入要查找的联系人的姓名。...生成的pst文件可以妥善保存起来,一旦需要还原Outlook联系人的信息,我们可以再次同样执行【导入和导出】功能,选择“从另一程序或文件导入”操作即可进行数据的还原。 5....如何查看与联系人的各种信息往来? 在“联系人”视图中,双击想要查看的联系人信息,打开联系人对话框中的“活动”标签。...首先为新建“联系人”,把自己的信息详细填写好,然后执行【动作】菜单下的【作为vCard转发】命令,Outlook就将会自动新建一封电子邮件,并将此联系人的信息以附件的形式附加在此邮件中(vcf文件),指定收件人...对方收到你的vCard后,既可以打开进行查看,也可以点击【保存并关闭】按钮将你直接保存为他的一个联系人。当然,别忘了前提是对方的电脑里也安装了Outlook~~~ ?

    1.8K10

    KnockOutlook:一款针对Outlook的红队安全研究工具

    关于KnockOutlook KnockOutlook是一款基于C#开发的工具,该工具可以跟Outlook的COM对象进行交互,并且能够帮助红队安全研究人员执行各种安全操作。...contacts) 枚举每个已配置帐户的联系人并提取以下信息: 完整名称(全名) 电子邮件地址 电子邮件枚举(mails) 枚举每个已配置帐户的邮件并提取以下元数据: ID 时间戳 主题 邮件发送者 邮件接收者 附件...数据保存(save) 使用Outlook内置的另存为机制导出由其EntryID引用的邮件。...数据输出 KnockOutlook的所有操作都会将基础数据直接输出在屏幕上。 联系人信息枚举(contacts)和电子邮件枚举(mails)操作将会把输出数据以JSON格式保存至gzip压缩文件中。...数据保存(save)操作将会把输出数据以.msg格式导出。 所有的文件名都会在运行时随机生成。 默认配置下,Outlook的安全临时目录会用来存储所有的导出文件

    1.2K20

    Microsoft Outlook 爆严重漏洞,可允许远程代码执行

    安全专家研究发现,其中的一个漏洞(cve-2015-6172),攻击者通过以“特定打包的微软Office文件”作为附件,由Outlook发送邮件给目标用户,可允许远程代码执行。...如果用户打开一个专门制作的微软办公文件,攻击者可以利用该漏洞在当前用户目录下运行任意代码。具有较小权限的用户帐户受到的影响可能会比拥有管理员权限的用户所受影响要小得多。...2、对于存在安全风险的文件格式,Outlook会以告警弹窗的方式提醒用户, 3、对于Word/Excel/PPT等格式的附件,当用户双击运行或者进行预览的时候,Outlook会在其沙盒中打开这些文档。...TNEF编码附加的邮件最常见文件名为Winmail.dat或win.dat。 TNEF 以 application/ms-tnef 类型的 MIME 附件的形式出现在邮件中。...例如,因为Outlook会将.msg格式的文件自动识别为安全文件,并且一般默认是在Outlook信息查看器中查看附件不是在沙盒中查看。

    3.2K90

    Excel催化剂开源第18波-工作表、工作薄保护破解

    VBA方式未能破解成功,印象中还有一个问题是不懂得如何改写回.Net的C#代码,看到的是一大坨的VBA代码,也看不懂。...接着自己想到的方法实现了,直接操作xml文件,将其中的保护工作薄节点给删除它,此方法同理也适用于前面的工作表保护。...wkbReOpen.Worksheets[actShtName].Activate(); } } 同样地,派出了EPPLUS类库来直接访问...xlsx的xml文档,这里同样用了很巧妙的方式,如果是xls文件非07版格式时,就将其保存为07版格式。...此篇简单地实现广大开发者广为熟知的功能,代码换成了C#的形式,可在VSTO上实现此功能,希望此代码段在愿意学习、查找的人手中能被找到并复用起来。

    1.1K40

    VSTO之外的另一开发利器Excel-DNA介绍,VSTO与Excel-DNA优缺点分析

    非程序猿入门有难度,毕竟是专业的编程语言,不像VBA那么大众化,普通用户通过录制宏就可以打开编程世界 2.2....学习资料很匮乏,一开始想着VBA转VB.net,语法是同一母系,门槛不高,但入门后发现很难再有更多的资料介绍了,C#语言倒还好些,视频、书籍都比较丰富,但需要给自己一个决心,狠狠啃上个把月,才能入门成功...对用户机器环境要求低,xp机器都可以,甚至office1997老古董都可以,开发的成品可以发布的群体,几乎可以囊括所有的OFFICE用户群体 1.4....开发自定义函数的利器,VSTO开发自定义函数在发布给用户机器使用时麻烦,要对注册表注册,需要管理员权限,但Excel-DNA开发的完全没有这些烦恼,用户双击即可打开使或进行加载项载入,下次打开Excel...用户发布友好,直接一个xll文件发给用户,用户不需安装即可使用,无需管理员权限,无需访问注册表权限,和xlam加载宏的效果一样。 1.10.

    4.9K41
    领券