开发者社区 问答 正文

附件添加在线文件

  1. 官方代码示例:
  2. string file = "D:\\1.txt";
  3. Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
  4. mailMsg.Attachments.Add(data);
  5. 而我需要添加的附件是为在线地址比如 url http开头在线文件 非本地文件

展开
收起
徐小了 2018-11-29 14:42:36 486 分享 版权
阿里云 AI 助理回答

要使用C#通过SMTP发送带有在线附件的邮件,您需要先将在线文件下载到本地,然后再作为附件添加到邮件中。以下是修改后的代码示例:

  1. 引入所需命名空间: 确保您的代码中已包含以下命名空间:

    using System.Net;
    using System.IO;
    
  2. 下载在线文件到本地: 在发送邮件前,添加一个方法来下载在线文件并保存到临时位置。

    private static string DownloadFile(string url)
    {
       using (WebClient client = new WebClient())
       {
           string tempFilePath = Path.GetTempFileName();
           client.DownloadFile(url, tempFilePath);
           return tempFilePath;
       }
    }
    
  3. 调整附件部分代码: 调用上述下载方法,并使用返回的本地文件路径添加附件。

    // 假设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);
    

这样,您就可以将在线文件作为附件发送了。请注意,为了保持系统整洁和避免资源占用,可以在成功发送邮件后考虑删除临时下载的文件。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: