Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将准备好的带有附件的邮件加载到用户';s的默认邮件客户端?_C#_Email_Outlook_Mapi - Fatal编程技术网

C# 如何将准备好的带有附件的邮件加载到用户';s的默认邮件客户端?

C# 如何将准备好的带有附件的邮件加载到用户';s的默认邮件客户端?,c#,email,outlook,mapi,C#,Email,Outlook,Mapi,如何将准备好的带有附件的邮件加载到用户的默认邮件客户端 我四处寻找答案,发现: 将Process.Start()与“mailto:”url一起使用将不起作用,因为mailto:不支持附件(Outlook中除外,并且我不能依赖Outlook作为默认客户端) 这不会起作用,因为它显然会阻止应用程序 还有一个,它显然不会阻止应用程序,但它会更改当前目录,这会破坏我们应用程序中的许多内容,其中一些内容在不同的线程中运行,因此我不能仅仅依赖于将其更改回来 在尝试上述方法并发现当前的目录问题后,我遇到了一

如何将准备好的带有附件的邮件加载到用户的默认邮件客户端

我四处寻找答案,发现:

  • 将Process.Start()与“mailto:”url一起使用将不起作用,因为mailto:不支持附件(Outlook中除外,并且我不能依赖Outlook作为默认客户端)

  • 这不会起作用,因为它显然会阻止应用程序

  • 还有一个,它显然不会阻止应用程序,但它会更改当前目录,这会破坏我们应用程序中的许多内容,其中一些内容在不同的线程中运行,因此我不能仅仅依赖于将其更改回来

  • 在尝试上述方法并发现当前的目录问题后,我遇到了一个问题,这将问题归咎于MAPI存根库

  • 这就指导了我,指出MAPI存根库已被弃用

这让我不禁要问:


在C#应用程序中,是否有一种方法可以创建包含附件的电子邮件,并将其加载到用户的默认邮件客户端,该客户端不依赖于Outlook,在运行时不会阻止应用程序的UI,也不会从下面更改应用程序的当前目录,而且不依赖于已弃用且即将删除的系统库?

基本上类似于Windows资源管理器中的
右键单击>发送到>邮件收件人,对吗?您是否正在尝试在其中一个Fodler(例如收件箱或已发送邮件)中创建邮件或向用户显示邮件?如果您的应用程序在当前目录更改时中断,那么您将遇到比创建邮件更大的问题…您不能使用代码项目MAPI包装器并将其放在后台线程中吗?我想创建一条消息,并将其显示在他们的默认邮件客户端中,以便他们可以编辑它,添加其他收件人,等等。这正是我面临的问题。我只想能够预先填充一个邮件对象与电子邮件的所有属性(从,到,主题,正文和附件文件),并将其提交给web客户端,以决定是否按原样发送,或编辑电子邮件之前点击发送!肯定有办法