Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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# windows live mail mapi支持_C#_Mapi - Fatal编程技术网

C# windows live mail mapi支持

C# windows live mail mapi支持,c#,mapi,C#,Mapi,我正在编写一个c#.net应用程序,它需要使用MAPI发送电子邮件。我正在使用以下库来实现这一点 下面是我如何使用它的一个例子 MAPI mapi = new MAPI(); mapi.AddRecipientTo("test@test.com"); int returncode = mapi.SendMailPopup("subject", "message"); if(returncode==0) { MessageBox.Show("User sent message"); } else

我正在编写一个c#.net应用程序,它需要使用MAPI发送电子邮件。我正在使用以下库来实现这一点 下面是我如何使用它的一个例子

MAPI mapi = new MAPI();
mapi.AddRecipientTo("test@test.com");
int returncode = mapi.SendMailPopup("subject", "message");
if(returncode==0)
{
MessageBox.Show("User sent message");
}
else if (returncode==1)
{
MessageBox.Show("User abort");
 }
这段代码在默认邮件程序上打开一个新的消息对话框,如果用户决定发送或中止发送电子邮件,则应显示该对话框

当使用Outlook时,此代码工作正常,这意味着它会弹出一个新的电子邮件对话框,并返回正确的错误代码(例如,如果用户通过关闭邮件对话框决定不发送邮件)

问题是,当使用windows mail时,这无法正常工作。“发送邮件”对话框将正确打开,应用程序将暂停其在mapi.SendMailPopup上的执行,直到“邮件”对话框关闭。但是,无论用户做什么,mapi.SendMailPopup始终返回零。例如,如果用户决定在不发送邮件的情况下关闭邮件对话框,则当正确的响应为1(用户中止)时,mapi.SendMailPopup将返回0


我的问题是,windows live mail是否应该为此提供所需的MAPI支持,如果没有,是否有人可以告诉我其他免费的windows mail客户端将提供所需的MAPI支持?

这很让人困惑--.NET解决方案是SMAPI,而不是MAPI。我不确定SMAPI的返回值有多可靠,特别是因为返回值是直接从默认MUA供应商的SMAPI实现返回的,至少有十几个。因为浏览器不使用返回值,而且它们是SMAPI的主要客户端,所以我不会依赖它。

这让人困惑,.NET解决方案是SMAPI,而不是MAPI。我不确定SMAPI的返回值有多可靠,特别是因为返回值是直接从默认MUA供应商的SMAPI实现返回的,至少有十几个。由于浏览器不使用返回值,而且它们是SMAPI的主要客户端,因此我不会依赖它。

Microsoft正在努力摆脱MAPI。这将是一种方式…有什么选择?我需要使用外部邮件程序从我的应用程序发送电子邮件。如果要通过Outlook对象模型传递邮件,并利用邮件位于已发送邮件中、使用签名等,则可以使用Outlook对象模型,也可以使用SMTP。Microsoft正在努力摆脱MAPI。这将是一种方式…有什么选择?我需要使用外部邮件程序从我的应用程序发送电子邮件。如果要通过Outlook对象模型传递邮件,并利用它们在已发送邮件中的优势,请使用Outlook对象模型,或者使用SMTP。我不确定还有什么。同样,如果它除了返回值之外还可以工作,只需忽略返回值即可;我不确定除了日志之外,它还能用于什么。我不确定还有什么其他用途。同样,如果它除了返回值之外还可以工作,只需忽略返回值即可;我不确定除了日志记录之外,它还能用于什么。