Asp.net mvc HttpResponseMessage.Content作为电子邮件的附件

Asp.net mvc HttpResponseMessage.Content作为电子邮件的附件,asp.net-mvc,api,httpresponse,email-attachments,Asp.net Mvc,Api,Httpresponse,Email Attachments,我有一个API,它使用HttpResponseMessage返回一个'.xls'文件。我正在尝试做的是获取该文件并将其附加到我正在发送的电子邮件中 请记住,我无法更改API实现,因此,响应将始终是HtppResponseMessage,显然我的问题有解决方案。我所要做的就是从API的HttpResponseMessageasStream获取HttpContent。在那之后,所有的过程都是小菜一碟 这是解决办法。它工作得很好 HttpResponseMessage response = _serv

我有一个API,它使用
HttpResponseMessage
返回一个'.xls'文件。我正在尝试做的是获取该文件并将其附加到我正在发送的电子邮件中


请记住,我无法更改API实现,因此,响应将始终是
HtppResponseMessage

,显然我的问题有解决方案。我所要做的就是从API的
HttpResponseMessage
as
Stream
获取
HttpContent
。在那之后,所有的过程都是小菜一碟

这是解决办法。它工作得很好

HttpResponseMessage response = _service.GetAPIResponse(...);
Stream data = response.Content.ReadAsStreamAsync().Result;

var mailMessage = new MailMessage()
mailMessage.Attachments.Add(new Attachment(data, response.Content.Headers.ContentDisposition.FileName));
我希望这也能帮助其他人


干杯。

在这种情况下,您无法像附件一样获取此文件。你可以做什么:它只是在你的电子邮件中写入指向页面的链接,在页面中调用此API函数具有指向实际网页的链接,用户应在其中单击“可用”按钮进行下载(它具有此功能),这对我来说并不是真的起作用:(.如果您无法更改API-您无法将HttpResponseMessage附加到电子邮件。是否有可能临时下载该附件以使用它,然后删除它?您不能立即执行此操作。您可以下载文件-将其保存到某个位置,然后发送邮件(附加此文件)然后删除它。重要的是保存文件-我不知道在你的情况下你能做什么