如何将远程文件附加到C#中的电子邮件?

如何将远程文件附加到C#中的电子邮件?,c#,wcf,C#,Wcf,我正试图从C#(更具体地说是WCF服务)发送一封带有附件的电子邮件。附件不在本地文件系统上,因此其路径为“http://...“等等 目前,如果我尝试传入url,我会得到一个错误,即给定路径的格式不受支持 Attachment attachment; attachment = new Attachment("https://assets.conestogac.on.ca/wiki/gatewayprocess.png", MediaTypeNames.Applicatio

我正试图从C#(更具体地说是WCF服务)发送一封带有附件的电子邮件。附件不在本地文件系统上,因此其路径为“http://...“等等

目前,如果我尝试传入url,我会得到一个错误,即给定路径的格式不受支持

Attachment attachment;
            attachment = new Attachment("https://assets.conestogac.on.ca/wiki/gatewayprocess.png", MediaTypeNames.Application.Octet);
            message.Attachments.Add(attachment);
服务器在处理请求时遇到错误。异常消息为“不支持给定路径的格式”。有关详细信息,请参阅服务器日志


如何将远程文件作为电子邮件附件附加?

您需要使用
HttpClient
或HttpWebRequest
将远程文件下载到
流中,然后附加下载的数据。

您需要使用
HttpClient
或HttpWebRequest
将远程文件下载到
流中,然后附加下载的数据。

也许您可以尝试以下代码:

它将添加附件作为内联附件



也许您可以尝试以下代码:

它将添加附件作为内联附件



试试这样:

var tempFileName = @"c:\tempFolder\gatewayprocess.png";        
System.Net.WebClient webClient = new System.Net.WebClient();
webClient.DownloadFile("https://assets.conestogac.on.ca/wiki/gatewayprocess.png", tempFileName);
message.Attachments.Add(new Attachment(tempFileName));

试试这样:

var tempFileName = @"c:\tempFolder\gatewayprocess.png";        
System.Net.WebClient webClient = new System.Net.WebClient();
webClient.DownloadFile("https://assets.conestogac.on.ca/wiki/gatewayprocess.png", tempFileName);
message.Attachments.Add(new Attachment(tempFileName));

你应该先下载文件。如果可能的话,发送下载链接可能更方便收件箱。你应该先下载文件。如果可能的话,发送下载链接可能更方便收件箱。这与问题无关这与问题无关尽管我接受了另一个答案,我想指出的是,这或多或少是我最终所做的。虽然我接受了另一个答案,但我想指出的是,这或多或少是我最终所做的。