【问题标题】:Microsoft EWS Sending Email with Attachement blocks file afterwards之后 Microsoft EWS 发送带有附件的电子邮件会阻止文件
【发布时间】:2022-10-10 06:36:27
【问题描述】:

我正在发送带有附件的电子邮件 (pdf)。 这可以按预期工作并且没有任何问题,但是之后我想在发送该 PDF 文件后删除它,但这不起作用,因为该文件被 Windows 阻止了。

“访问路径 'C:\IIS_PAGES\wwwroot\FILES\report.pdf' 被拒绝。”

我在使用标准 .NET SMTP 处理程序时遇到了同样的问题,但是在调用 dispose() 后问题得到了解决。 在 EWS 中没有可用的 dispose 或 clear 方法,我该如何解决这个问题?

                ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
            service.Credentials = new WebCredentials("secret", "data", "ad");
             
            service.TraceEnabled = true;
            service.TraceFlags = TraceFlags.All;

            service.Url = new Uri("https://mail.example.com/EWS/exchange.asmx");
            

            EmailMessage email = new EmailMessage(service);
            email.ToRecipients.Add(receiver);
            email.Subject = "Test";
            email.Attachments.AddFileAttachment(file);        
            email.Body = "test";
            email.Send();
            File.Delete(file);

【问题讨论】:

    标签: c# asp.net .net exchange-server exchangewebservices


    【解决方案1】:

    添加附件对于使用流 https://learn.microsoft.com/en-us/dotnet/api/microsoft.exchange.webservices.data.attachmentcollection.addfileattachment?view=exchange-ews-api#microsoft-exchange-webservices-data-attachmentcollection-addfileattachment(system-string-system-io-stream) 有重载,您应该能够使用它并专门在流上调用 Dispose 以确保您不维护任何句柄等。EWS 托管 API 是开源的,因此您可以看到它们的实现 @987654322 @

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-08
      • 1970-01-01
      • 2012-06-15
      • 2015-09-09
      • 2017-09-06
      相关资源
      最近更新 更多