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

本文关键字:文件 电子邮件 程文件 | 更新日期: 2023-09-27 18:32:47

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

目前,如果我尝试传入 url,则会收到一条错误消息,指出不支持给定路径的格式。

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

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

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

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

您需要

使用 HttpClient 或 HttpWebRequest to download the remote file to a Stream',然后附加下载的数据。

尝试类似的事情:

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));

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

它将附件添加为内联附件


  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);