C# 从邮件附件中获取文件名

2024-01-09

我有一个简单的 C# 应用程序,用于发送 SMTP 电子邮件(使用 System.Net.Mail 类)。发送(通过电子邮件发送)MailMessage 对象后,我想遍历附件列表并删除与这些附件关联的原始文件...但是我很难找到与每个附件关联的完整文件路径 - 不保留我的附件自己的附件文件路径集合。必须有一种好方法从附件对象中提取完整的文件路径。

我知道这一定很简单,但我在这上面花了很多时间......是时候询问其他人了。


如果您通过Attachment构造函数与filePath参数,这些附件可以通过检索ContentStream属性和类型FileStream。以下是获取附加文件的文件名的方法:

var fileNames = message.Attachments
    .Select(a => a.ContentStream)
    .OfType<FileStream>()
    .Select(fs => fs.Name);

但别忘了丢弃MailMessage首先反对,否则您将无法删除这些附件:

IEnumerable<string> attachments = null;
using (var message = new MailMessage())
{
    ...
    attachments = message.Attachments
        .Select(a => a.ContentStream)
        .OfType<FileStream>()
        .Select(fs => fs.Name);
}

foreach (var attachment in attachments )
{
    File.Delete(attachment);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 从邮件附件中获取文件名 的相关文章

  • Wordpress - 联系表格 7 未发送到某些电子邮件

    我将 Contact Form 7 与 WordPress 结合使用 但遇到了电子邮件兼容性问题 我已设置表格并通过电子邮件发送至 电子邮件受保护 cdn cgi l email protection domain ca 是托管该网站的网站
  • C++ Singleton 类 getInstance (作为 java)[重复]

    这个问题在这里已经有答案了 可能的重复 谁能给我提供一份 C 中的 Singleton 示例吗 https stackoverflow com questions 270947 can any one provide me a sample
  • 如何指定CMAKE外部项目的编译器?

    我使用ExternalProject Add 包含一个外部项目 我想要的是能够做到 cmake DCMAKE CXX COMPILER
  • 使用 QTextCursor 选择一段文本

    使用 Qt 框架选择文本片段时遇到问题 例如 如果我有这个文件 没有时间休息 我想选择 ime for r 并从文档中删除这段文本 我应该如何使用 QTextCursor 来做到这一点 这是我的代码 QTextCursor cursor n
  • 在电子邮件中的 @ 之前添加 + 文本

    我知道使用 gmail 您可以让人们通过您的电子邮件地址向您发送电子邮件 并在电子邮件末尾附加 sometext 您将收到该电子邮件 就像发送到您的普通电子邮件一样 例如 如果您的电子邮件是 email protected cdn cgi
  • NUnit 测试运行顺序

    默认情况下 nunit 测试按字母顺序运行 有谁知道有什么方法可以设置执行顺序吗 是否存在这样的属性 我只是想指出 虽然大多数受访者认为这些是单元测试 但问题并没有具体说明它们是 nUnit 是一个很棒的工具 可用于各种测试情况 我可以看到
  • 优化对绑定到 DataGridView 的 DataTable 的更新

    我的应用程序中有一个显示一些数据的表单 当我第一次显示表单时 我将一些数据加载到 DataTable 中 然后将 DataTable 绑定到 DataGridView 我还启动了一个异步方法来执行一些较慢的数据库查询 当这些慢查询完成时 我
  • CMake - 未定义参考

    我正在尝试将 gtest 包含到我的项目中 问题是我在 GTest 中收到未定义的引用错误 我正在尝试在 Gtest 中测试 Node 类 在节点的构造函数中 我使用类记录器 尽管我已将库记录器添加到 gtest target 中 但我仍然
  • F# 内联如何工作?

    对于 F 我的理解是您可以使用 inline 关键字在调用站点执行类型专门化 那是 val inline a gt b gt c when a or b static member a b gt c 约束条件是 a or b必须有一个静态成
  • 在 DefaultHttpContext 上使用 FeatureCollection 时,响应对象为 null

    我正在测试一些 net Core 中间件 并希望使用整个 asp net Core http 管道来运行中间件 而不是模拟它 问题是 当我使用特征集合时 不知何故 响应对象没有在 httpRequest 中设置 并且它在请求本身上是只读的
  • 没有真正理解 std::atomic::compare_exchange_weak 和compare_exchange_strong 的逻辑

    我读了https en cppreference com w cpp atomic atomic compare exchange https en cppreference com w cpp atomic atomic compare
  • 为什么Boost在“程序选项”中使用全局函数覆盖来实现自定义验证器

    这个例子 http www boost org doc libs 1 55 0 doc html program options howto html idp163429032显示一个名为validate在全局范围内定义重载函数boost
  • 复杂的 C 声明

    我刚刚在互联网上浏览了一些代码 发现了这个 float foo SIZE SIZE 我如何阅读这份声明 是否有一套特定的规则来阅读如此复杂的声明 我有一段时间没做这个了 从 开始foo然后向右走 float foo SIZE SIZE fo
  • 一些涉及类析构函数和删除运算符的内存管理问题?

    在阅读了一些教程后 我仍然不清楚 C 中内存管理的一些观点 1 当使用 new 运算符声明的类超出范围时 是否会调用其析构函数并释放内存 是否有必要调用删除运算符来释放类的内存并调用其析构函数 class Test void newTest
  • DLL 中的 XP 风格组合框

    我需要使用 C 和 WIN32 API 无 MFC 在 DLL 中创建 XP 风格的组合框 我设法在 DLL 中创建控件 不是以 XP 风格 我设法在带有清单的 exe 中创建 XP 样式组合框 但它在 DLL 中不起作用 为了让您的 DL
  • Windows Phone HttpClient PostAsync 挂起且无响应

    我在拨打电话时遇到问题HttpClientWP 应用程序的 post 方法 PostAsync总是挂起并且不给出任何响应 当我从 WPF 应用程序中尝试时 相同的代码可以工作 这是我正在做的事情 服务器Web API代码 public cl
  • 派生类的聚合初始化

    以下代码无法使用 Visual Studio2017 或在线 GDB 进行编译 我期望它能够编译 因为迭代器只是一个具有类型的类 并且它是从公共继承的 这是不允许的还是在 VS2017 中不起作用 template
  • C# 记录类型:记录子类之间的相等比较

    给定父记录类型 public record Foo string Value 和两个记录子类Bar and Bee我想知道是否可以实施Equals在基类中 因此 Foo Bar 或 Bee 的实例都被考虑equal基于Value 两者都与E
  • RabbitMQ + Windows + LDAP 无需发送密码

    我正在尝试在 Windows 7 上使用 RabbitMQ 3 6 2 进行 LDAP 身份验证 授权 我已经在应用程序发送用户名 密码的情况下进行了基本身份验证 但密码位于我需要弄清楚如何进行的代码中避免 有没有人在不提供密码的情况下成功
  • Selenium WebDriver 在按钮单击事件上无法正常工作。这里有什么问题呢?

    I am using following code to scrape data from a website I have following interface 这是 HTML div class es content div

随机推荐

  • Mongodb:从 mongo shell 中的 ObjectId 执行日期范围查询

    我有一个看起来像这样的集合 id ObjectId 50a68673476427844b000001 other fields 我想做一个范围查询来查找两个日期之间的记录 我知道我可以通过执行以下操作从 mongo shell var 中的
  • 将 div 从父网站复制到 iframe 中的文本区域

    在谷歌翻译中 我制作了谷歌翻译的第二个实例 var makediv document createElement secondinstance makediv innerHTML makediv setAttribute id iframe
  • Serilog 缺少什么命名空间?

    I am able to use LoggerConfiguration in my C code with various Serilog Sinks but my compiler is complaining about the sp
  • PHP 中如何判断一个日期是否在两个日期之间?

    我需要知道是否 paymentDate 2010 年 12 月 31 日 有效期为 contractDateBegin 01 01 2001 和 contractDateEnd 01 01 2012 日 月 年格式 从 PHP 5 3 开始
  • Python HTMLParser:UnicodeDecodeError

    我正在使用 HTMLParser 来解析我用 urllib 下拉的页面 并且遇到了UnicodeDecodeError将某些传递给时的异常HTMLParser 我尝试使用chardet检测编码并转换为ascii or utf 8 the d
  • 改变div的背景颜色

    这很简单 我搜索过但找不到确切的答案 我想做的就是有一个 div 当你点击链接时它会改变颜色 我想要大约 3 或 4 种颜色选择 我该怎么做 Thanks 这是一个快速解决方案
  • 使用 SignalR 的 WCF 服务

    我有一个网络应用程序 仪表板上几乎没有图表 图表数据是在客户端调用 WCF 服务方法的 document ready 函数中获取的 我现在想要的是在我的应用程序中使用 SignalR 我对 SignalR 真的很陌生 我如何从 Signal
  • 如何进行内核线程通信?

    如何让内核模块中的线程进行通信 我正在编写一个内核模块 我的架构将使用三个需要通信的线程 到目前为止 我的研究使我相信唯一的方法是使用共享内存 声明全局变量 和锁定机制来同步线程之间的读 写 那里关于这方面的材料相当稀缺 我还有其他可以考虑
  • 当您的应用程序安装在 Android 上时,您可以运行 Intent 或脚本吗?

    例如 RPM 有 post postun pre preun 允许您编写在安装过程的不同阶段运行的脚本 我想做一些事情 比如在安装我的 Android 应用程序时创建和填充数据库 Ted 不 抱歉 这是明确不支持的
  • 将生成的进程的输出捕获到字符串

    背景 我正在开发一个程序 需要能够捕获stdout stderr以及程序的返回值 理想情况下 我希望将这些捕获到存储在对象内的字符串中 该对象保存过程的详细信息 我目前有一些代码 可以使用一些 在我看来 古老的 C 文件处理魔法将输出保存到
  • 向 AVM2 添加语言

    我对创建一种在 AVM2 上运行的语言很感兴趣 并且正在寻求从哪里开始的建议 我确实意识到这绝不是一项微不足道的任务 但我想尝试一下 至少在此过程中了解更多有关实现语言的知识 我一直在研究 ANTLR 并一直在阅读语言开发的语法问题 我正在
  • 我可以在循环内使用 useEffect 确保其尺寸恒定吗?

    我有一个功能性的 React 组件 更多的是非 React 对象的代理 如下所示 function ProxyComponent onEvent1 onEvent2 onEvent3 useEffect gt someObject on e
  • C# Windows 窗体自动关闭

    我有一个 Windows 应用程序 其中我的第一个 Windows 窗体是登录 成功登录后 必须打开 主页 表单 我在调试时看到 Home 表单 但是一旦代码进入 Home Designer cs 中的 Dispose 方法 我的应用程序就
  • Nodejs Express http 服务器如何处理并发请求?

    我正在构建一个 Node js 应用程序 并想了解如何处理并发请求 我构建了一个测试服务器 通过等待 10 秒来模拟高 CPU 负载 为了测试行为 我打开两个浏览器选项卡并同时刷新页面 const http require http con
  • Python:不同的空集列表

    我是一个Python新手 正在尝试为埃拉托斯特尼筛编写代码 为此 我必须初始化一个空集列表 我尝试这样做factors set 1001 但这会产生一个浅拷贝 我想要一个深拷贝 这样factors i and factors j 指向不同的
  • 如果我的应用程序是通过 ACTION_VIEW 启动的,我如何检索附加的数据?

    我已经让我的应用程序处理某种数据类型的 ACTION VIEW 意图 效果很好 我似乎无法弄清楚如何实际检测我的应用程序是否已以这种方式启动 以及如何获取附加数据 有人能指出我正确的方向吗 这是我的清单的摘录 如果有帮助的话
  • 将 XCTest 导入动态框架

    我有一个项目 我创建了一个动态框架 在框架本身 而不是框架的测试 内部 我有以下文件 import Foundation import XCTest public func assertThrowsException function th
  • 绘制包含 NaN 的 pandas 数据框

    我有来自三个不同 GPS 接收器的冰速 GPS 数据 数据位于 pandas 数据框中 索引为 Julian Day 从 2009 年初开始增量 这是数据的子集 主数据集有 3487235 行 R2 R7 R8 1235 000000 11
  • 如何在不使用扩展器的情况下将 WPF 工具栏绑定到我的 VM 中的集合

    我有一个 WPF 窗口 其中有ToolBar 我的虚拟机中有一组要绑定的对象 它们显示为按钮 但总是被推到扩展的下拉部分ToolBar 如何使这些按钮出现在标准部分ToolBar 我有以下 XAML
  • C# 从邮件附件中获取文件名

    我有一个简单的 C 应用程序 用于发送 SMTP 电子邮件 使用 System Net Mail 类 发送 通过电子邮件发送 MailMessage 对象后 我想遍历附件列表并删除与这些附件关联的原始文件 但是我很难找到与每个附件关联的完整