0

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

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

Attachment attachment;
            attachment = new Attachment("https://assets.conestogac.on.ca/wiki/gatewayprocess.png", MediaTypeNames.Application.Octet);
            message.Attachments.Add(attachment);

服务器在处理请求时遇到错误。异常消息是“不支持给定路径的格式。”。有关更多详细信息,请参阅服务器日志。

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

4

3 回答 3

2

您需要使用HttpClient或 HttpWebRequest to download the remote file to aStream`,然后附加下载的数据。

于 2013-09-24T14:37:10.047 回答
1

尝试这样的事情:

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));
于 2013-09-24T14:52:26.967 回答
0

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

它将附件添加为内联附件


  string attachmentPath = Environment.CurrentDirectory + @"\test.png";
  Attachment inline = new Attachment(attachmentPath);
  inline.ContentDisposition.Inline = true;
  inline.ContentDisposition.DispositionType = DispositionTypeNames.Inline;
  inline.ContentId = contentID;
  inline.ContentType.MediaType = "image/png";
  inline.ContentType.Name = Path.GetFileName(attachmentPath);

  message.Attachments.Add(inline);
于 2013-09-24T14:38:55.323 回答