繁体   English   中英

尝试使用outllook从asp .net windows应用程序发送带有图像的电子邮件时出现“无法创建文件”错误

[英]'Cannot create file' error while trying to send email with image from asp .net windows application using outllook

我正在尝试使用Microsoft.Office.Interop.Outlook从.net Windows应用程序发送电子邮件。 邮件采用html格式,并嵌入了图像。 尝试附加图像时出现以下错误,

“无法创建文件:XXX.jpg。右键单击要在其中创建文件的文件夹,然后单击快捷菜单上的”属性“以检查文件夹的权限。

我对文件夹访问没有任何问题。 我在64位计算机上运行应用程序,其上有32位Outlook。 当我没有嵌入图像,我没有得到任何错误,它工作正常。

string body = string.Empty;
using(StreamReader reader = new StreamReader(Environment.CurrentDirectory + @"/Mail Templates/XXX.txt"))
        {
            body = reader.ReadToEnd();
        }

        Outlook.Application oApp = new Outlook.Application();
        Outlook._MailItem mailItem = (Outlook._MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);

        mailItem.To = "XXX";
        string filename = Environment.CurrentDirectory + @"/Mail Templates/XXX.jpg";
        mailItem.Attachments.Add(filename, (int)Outlook.OlAttachmentType.olEmbeddeditem, 1);
        mailItem.HTMLbody = "true"
        mailItem.Display(true);

Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定的行为和/或Office在此环境中运行时出现死锁或死锁。

如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。 或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。 如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。 此外,您将承担整体解决方案稳定性的风险。

您可以在服务器端自动化Office文章的注意事项中阅读有关该内容的更多信息。

您可以考虑使用EWS(Exchange Web服务)或BCL(.Net框架中的基类库)。 有关详细信息请参阅Exchange中的EWS托管API,EWS和Web服务

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM