我正在编写一个需要使用MAPI发送电子邮件的c#.net应用程序。我正在使用以下库来实现此目的:http://www.codeproject.com/KB/IP/SendFileToNET.aspx 以下是我如何使用它的示例。windows live mail mapi支持
MAPI mapi = new MAPI();
mapi.AddRecipientTo("[email protected]");
int returncode = mapi.SendMailPopup("subject", "message");
if(returncode==0)
{
MessageBox.Show("User sent message");
}
else if (returncode==1)
{
MessageBox.Show("User abort");
}
这段代码打开上默认的邮件程序中的新的消息对话框,并应显示如果用户决定发送或中止发送电子邮件。
当使用Outlook意味着它弹出一个新的电子邮件对话框并返回正确的错误代码,例如用户决定不通过关闭消息对话框发送消息时,此代码工作正常。
问题是,当使用Windows邮件这不能正常工作。发送邮件对话框正确打开,应用程序暂停其在mapi.SendMailPopup上的执行,直到邮件对话框关闭。然而,无论用户做什么,mapi.SendMailPopup总是返回零。如果用户例如决定关闭消息对话框而不发送消息,则当正确的响应为1(用户中止)时,mapi.SendMailPopup返回0。
我的问题是应该的Windows Live Mail都需要这种MAPI的支持,如果没有谁能告诉我一些其他免费的Windows邮件客户端,将提供所需的MAPI的支持
微软正在努力摆脱MAPI。这将是一种方法... – 2010-08-13 16:02:09
有什么选择?我需要使用外部邮件程序从我的应用程序发送电子邮件。 – Jargo 2010-08-13 17:18:37
如果您想通过那里管理邮件并利用它们在已发送邮件中,使用签名等或SMTP,则另一种方法是Outlook对象模型。 – 2016-02-08 11:47:55