嗨,我正在使用WPF应用程序(使用c#).
我需要有一个功能,用户可以通过电子邮件将文件(音频文件)作为附件发送.我尝试使用Microsoft.Office.Interop.Outlook.Application命名空间但它打开outlook并且如果未在客户端的计算机上安装outlook,则无法工作.
我尝试使用SmtpClient()和命名空间MailMessage()类, System.Net.Mail但它没有打开电子邮件客户端.它通过预定义的服务器发送邮件(可能是一个问题,因为我不知道我的客户端的默认电子邮件域是什么.这个链接有我需要的所有东西,它的工作正常.
但是在那里他们使用了DllImport属性,并且使用这种方法可能会产生很多问题(从我能理解的).我不知道托管和非托管代码,所以我无法理解问题是什么.可以按照上面的链接中的示例进行操作.如果不是为什么?
你能说出或提供如何处理我的问题的链接
在过去,我使用MAPISendMail从带有文件附件的C++应用程序启动Outlook(或任何所需的MAPI电子邮件应用程序).(类似于Microsoft Word的发送电子邮件功能).
我需要在C#应用程序中执行相同的操作,并在XP,Vista,Server 2008(以及我认为的Windows 7)上运行时使其工作.
MAPISendMail在Vista/2008下是不可取的,因为它在Outlook运行时始终返回MAPI_ E_FAILURE并且托管代码中不支持MAPI.即使在检查此修复程序后:http: //support.microsoft.com/kb/939718 我无法让它可靠地工作.
我知道Microsoft Word和Adobe Reader 9都可以在Vista下使用附件启动Outlook.
AC#兼容解决方案将是首选,但我会对任何有效的(不必使用MAPI)感到满意.我似乎无法找到当前的"解决方案".Stack Overflow上现有的答案似乎也没有涵盖这一点.
编辑:
我知道MAPI和C#不能一起工作,所以当不以管理员身份运行时,我将采用在Vista和Server 2008中运行的C/C++解决方案.请参阅Adobe Reader 9和Microsoft Word作为有效的示例.