如何在 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);
服务器在处理请求时遇到错误。异常消息为"不支持给定路径的格式"。有关更多详细信息,请参阅服务器日志。
我将如何将远程文件附加为电子邮件附件?
您需要
使用 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);