官方代码示例:
string file = "D:\\1.txt";
Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
mailMsg.Attachments.Add(data);
而我需要添加的附件是为在线地址比如 url http开头在线文件 非本地文件
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要使用C#通过SMTP发送带有在线附件的邮件,您需要先将在线文件下载到本地,然后再作为附件添加到邮件中。以下是修改后的代码示例:
引入所需命名空间: 确保您的代码中已包含以下命名空间:
using System.Net;
using System.IO;
下载在线文件到本地: 在发送邮件前,添加一个方法来下载在线文件并保存到临时位置。
private static string DownloadFile(string url)
{
using (WebClient client = new WebClient())
{
string tempFilePath = Path.GetTempFileName();
client.DownloadFile(url, tempFilePath);
return tempFilePath;
}
}
调整附件部分代码: 调用上述下载方法,并使用返回的本地文件路径添加附件。
// 假设url为在线文件地址
string onlineFileUrl = "http://example.com/yourfile.txt";
string localFilePath = DownloadFile(onlineFileUrl);
Attachment data = new Attachment(localFilePath, MediaTypeNames.Application.Octet);
mailMsg.Attachments.Add(data);
// 发送邮件后,考虑是否需要删除临时下载的文件
// File.Delete(localFilePath);
这样,您就可以将在线文件作为附件发送了。请注意,为了保持系统整洁和避免资源占用,可以在成功发送邮件后考虑删除临时下载的文件。