作为 System.Net.Mail 附件的流为 0 字节

2023-12-31

我有一个项目,我正在使用 PDF 生成器将文件发送给用户。我们希望为用户提供将此文件附加到电子邮件的选项,但我们在同时使用 Stream 对象和附件逻辑时遇到了问题。

我们从 ABCpdf 开始,它有两种保存方法:它可以保存到 Stream,或者如果你给它一个字符串,它会尝试保存到磁盘上的文件。我们俩都做到了,没问题。

Stream stream = new MemoryStream();
myPdf.Save(stream);

此时一切都已经很酷了 -stream有几千字节的数据,如果您 .Save() 到文件,您会得到一个具有相同字节数的实际文件。

因此,我们此时附加到一封电子邮件(在初始化邮件对象、设置“To:”和“From:”等之后):

mail.Attachments.Add(new Attachment(stream, "myPdf.pdf"));
mail.Send();

...这让我们收到了一封 0 字节的电子邮件,但文件名正确。

我在网上找到的所有示例都使用 StreamReader 或 StreamWriter 或 Flush() 或其他东西。它总是看起来比简单地传递 Stream 更复杂,但可能只复杂一两行。这些示例都不是以 Stream 开头的 - 他们总是试图将数组转换为 Stream 来向您展示这是多么容易,或者从磁盘中获取文件(我们做不到,这就是我们感到兴奋的原因)使用流)。

不管怎样,如果有人能解释我做错了什么或者我应该做什么,我将非常感激。谢谢。


猜测...在发送 nit 之前将数据流返回到开头

// Set the position to the beginning of the stream.
stream.Seek(0, SeekOrigin.Begin);
mail.Attachments.Add(new Attachment(stream, "myPdf.pdf"));
mail.Send();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

作为 System.Net.Mail 附件的流为 0 字节 的相关文章

  • 导致回发到与弹出窗口不同的页面

    我有一个主页和一个详细信息页面 详细信息页面是从主页调用的 JavaScript 弹出窗口 当单击详细信息页面上的 保存 按钮时 我希望主页 刷新 是否有一种方法可以调用主页的回发 同时还可以从详细信息页面维护保存回发 Edit 使用win
  • 当从finally中抛出异常时,Catch块不会被评估

    出现这个问题的原因是之前在 NET 4 0 中运行的代码在 NET 4 5 中因未处理的异常而失败 部分原因是 try finallys 如果您想了解详细信息 请阅读更多内容微软连接 https connect microsoft com
  • 函数的变量存储在哪里?在堆栈或堆上?

    当程序调用函数时 为该函数中的变量分配哪种类型的数据结构内存 堆还是栈 为什么 在我看来 它应该存储在堆栈上 因为它们不一定是引用类型 但在我读到答案的地方 据说它们存储在堆上 并在函数返回值后释放 它比这更复杂一点 事实上使用堆栈和堆实际
  • IIS/ASP/ASP.net:如何构建网站以公开移动版本

    假设我有一个现有的网站 例如 www stackoverflow com 我现在想公开该网站的移动版本 m stackoverflow com IIS 及其主机头名称解析通常需要two要创建的网站 www stackoverflow com
  • 空 catch 与 try-catch 语句中的“catch Exception”相同吗?

    try catch Exception 我可以写吗 try catch 这在 C NET 3 5 中可以吗 代码看起来更好 但我不知道是否相同 他们是not一样的 catch Exception 将仅捕获托管异常 catch 也会捕获非 C
  • 有条件地忽略属性序列化

    我有一个 Asp Net WebApi 项目 我想返回 Json 格式的产品列表和一个特定产品 这是我的产品型号 public class Product public int Id get set public string ShortS
  • 处理长时间运行的报告

    我正在开发一个用 C 和 Sql Server 2000 数据库编写的 ASP net 应用程序 我们有多个 PDF 报告供客户用于满足其业务需求 问题是这些报告需要一段时间才能生成 gt 3 分钟 通常最终发生的情况是 当用户请求报告时
  • 这是我们可以强制 ObjectDataSource 的唯一方法吗?

    问候 1 我假设对象数据源仅在第一次请求时自动绑定到数据源 但不会在回发时自动绑定到数据源 否则ObjectDataSource 选择事件也会在回发时被触发 但事实并非如此 A 所以唯一的办法就是强迫对象数据源也可以通过手动调用来绑定回发数
  • 什么是 .NET 程序集?

    什么是 NET 程序集 我浏览了网络 但无法理解其定义 程序集是 net 应用程序的最小部署单元 它可以是一个dll or an exe 它主要有两种类型 私人集会 dll 或 exe 是一个应用程序的专有财产 一般存放在应用程序根文件夹中
  • 是否存在永远不会匹配任何字符串的正则表达式? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Windows 每秒进行一次线程切换的频率是多少? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions Windows 通常 每秒进行一次线
  • WPF 媒体格式

    WPF 是否内置对任何音频和视频格式的支持 我将使用 MediaPlayer 和 MediaElement 类来构建一个小型媒体播放器 目前 我不想处理 NET 没有本机支持的编解码器和格式 WPF 默认支持视频格式 WMV MPEG 和一
  • 在 asp.net vb 中通过第一个下拉列表值填充第二个下拉列表

    我在使用 asp net vb 时遇到了一些问题 我想做的是有2个下拉框 第一个下拉菜单将有 1 2 3 例如 第二个下拉菜单将有 A 乙 C 默认情况下 但是 如果选择 1 我希望第二个下拉菜单自动选择 c 我不知道 JavaScript
  • 任务和异步任务之间的区别

    C 提供了两种创建异步方法的方法 Task static Task
  • 没有配置身份验证处理程序来处理该方案

    这是一个非常烦人的问题 我在我的 asp net core 项目上设置 cookie 身份验证 有时会出现此错误 有时不会 没有图案 它只是开始抛出错误 然后突然停止 然后再次开始 例外情况是 InvalidOperationExcepti
  • Django - 电子邮件发送两次

    每当我使用如下所示的电子邮件设置从views py调用下面的方法时 电子邮件的两份副本都会发送给收件人 并且我收到如下所示的错误 def sendEmailBasic request msg EmailMessage Request Cal
  • 从 SQL 语句中检索元数据(表名)

    我使用的是 Visual Studio 2008 我创建了一个 Winforms 应用程序 并且尝试从 SQL 语句中提取表名 con new SqlConnection connString String queryString Sele
  • 如何检查日期时间是否发生在今天?

    有没有比下面的代码更好的 net 方法来检查 今天 是否发生了 DateTime if newsStory WhenAdded Day DateTime Now Day newsStory WhenAdded Month DateTime
  • 对 Action 方法的两个并行 ajax 请求排队,为什么?

    我正在使用 ASP NET MVC 开发一个视频网站 我希望在我的应用程序中拥有的一项功能是转码视频 但由于转码过程可能非常耗时 我想向客户端用户展示该过程的进度 因此 我的架构是使用一个控制器操作来处理整个转码过程 并将其进度写入存储在服
  • Web 和 winforms 的 .Net 身份验证

    我有一个为客户端构建的 ASP NET Web 应用程序 它使用默认的 ASP NET 表单身份验证 他们现在请求一个能够 与 Web 应用程序一起工作的桌面 WinForms 应用程序 我已经创建了 Web 服务来访问他们想要从 Web

随机推荐

  • 轨道 3 饼干

    我有一个简单的应用程序 用户可以在文本字段中输入内容以获得各种结果 我想要一个功能 如果用户输入某些内容然后关闭浏览器选项卡 那么下次他们来时 我可以向他们显示他们之前 最近的搜索 即使他们关闭整个浏览器并再次打开它 这种情况也会持续存在
  • Python-删除字符串的前两行

    我在这里搜索了许多关于删除字符串前两行的线程 但我似乎无法让它与我尝试过的每个解决方案一起使用 这是我的字符串的样子 version 1 00 6992 4 32063 9 1198 106 59 0 00064 0 99993 0 012
  • Python 快速排序运行时错误:cmp 中超出最大递归深度

    我正在编写一个程序 它将读取包含 5 163 个姓名的文本文件 文本文件可见here http pastebin com BAKTJKy6 然后我想将名称存储到一个名为 名称 的列表中 之后 我根据名称包含的字母数量对列表进行排序 较短的名
  • Java 证书客户端 SSL:无法找到请求目标的有效证书路径

    我们需要客户端身份验证才能向我们的某些 Web 服务发送 RESTful 请求 我已经通过 key 工具在本地 mac 操作系统上安装了客户端证书 pem 和密钥 这些不是自签名的 openssl pkcs12 export name my
  • mysql 统计重复项

    我有一张这样的桌子 mysql gt desc user changes Field Type Null Key Default Extra id varchar 16 NO PRI email varchar 255 YES MUL NU
  • go 中所有类型的前置函数

    我为 go 编写了一个非常小的前置函数 func prepend slice int elms int int newSlice int for elm range elms newSlice append newSlice elm for
  • 有效去除数组中的重复项

    如何从具有以下约束的数组中删除和记录重复项 运行时间最多必须为 O n log n 使用的额外内存最多必须为 O n 结果必须满足以下条件 重复项必须移动到原始数组的末尾 必须保留每个唯一元素第一次出现的顺序 例如 从此输入 int A 2
  • Android 中可扩展列表视图中的图像图标

    我想在可扩展列表视图中添加图像图标 我看过他们仅在子元素中添加的教程 是否有其他方法可以在父元素中添加图像图标 任何帮助 将不胜感激 提前致谢 您还可以在 XML 中定义自己的 groupIndicator 首先定义自己的drawable
  • 如何有效地从向量C++中删除元素

    我有一个由向量 对 V1 V2 组成的向量 称为pairV1V2 其形式如下 1 2 3 938 462 4837 gt V1 V2 3 9 13 938 0472 944 81 84 93 938 84 845 那么我需要保留以下内容 1
  • 如何在 C# 中比较两个 JSON 并忽略某些键?

    我有两个需要比较的 JSON 对象 但是我想排除某些属性 有没有一种有效的方法可以做到这一点 而无需迭代所有键 我正在使用 JSON NET 它具有 JToken DeepEquals 并且非常出色 但它不允许我排除某些键 Thanks 好
  • 如何在qt中通过QSignalMapper传递参数

    我想用Qt制作一个下载器 我在使用 QSignalMapper 时遇到问题 QNetworkReply中有信号 downloadProgress qint64 qint64 我有很多下载任务 所以我使用 QSignalMapper 来处理信
  • _CRTDBG_MAP_ALLOC 不显示文件名

    我正在尝试检测内存泄漏 并且使用 make CRTDBG MAP ALLOC 宏来定位泄漏区域 所以我定义 MACRO 如下 ifdef DEBUG define CRTDBG MAP ALLOC include
  • Tomcat自行关闭

    我在 CentOS 6 5 64 位和 OpenJDK 1 7 64 上运行 Tomcat 7 0 53 我有几台服务器 偶尔 例如每周随机一次 Tomcat 会正常关闭自己 我已经研究这个问题几个月了 但找不到原因 唯一的模式似乎是很长一
  • 命名元组错误[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试使用namedtuple 将Python 对象序列化为JSON 但我收到这个错误 谷歌没有帮助 Traceback most r
  • ASP.NET MVC:在数据输入表单中搜索

    感谢您的阅读 我正在构建一个数据输入表单 我试图找出一种方法 让用户提供一个条件 例如姓氏 在员工表中搜索符合条件的所有员工 以他们可以选择正确员工的方式显示结果 然后通过该员工的 ID 返回到数据输入表单 以便他们可以完成记录并保存 Th
  • HTML2PDF 对日语 (utf8) 的支持不起作用

    对于 PHP 中的报告生成 我使用 HTML2PDF 它适用于英语 但无法为日语提供正确的输出 如何在 hHTML2PDF 库中设置 utg8 字符 有没有办法在 HTML2PDF 库中实现这一点 我得到的输出类似于 而不是日语文本 在 v
  • 在 iOS 中将日期格式化为 dd-MMM

    我一直在寻找这个但找不到它 我在 NSDictionary 中有一个包含 NSDate 的对象 现在标准的 NSDate 对象相当长 我想以 dd MMM 格式向用户显示 例如 原始日期可能是2012 04 23 00 00 00 0000
  • @-moz-document url-prefix() 的作用是什么?

    在西蒙 科里森的新中旧的响应式网页设计 https colly com v4 在CSS中 有几个这样的声明 moz document url prefix fl float left margin 12px 4px 0 0 padding
  • AFHTTPSessionManager 使用基于 SOAP 的服务

    我查了几个帖子 this https stackoverflow com questions 24181844 how to convert afnetworking service invoke to use afhttpsessionm
  • 作为 System.Net.Mail 附件的流为 0 字节

    我有一个项目 我正在使用 PDF 生成器将文件发送给用户 我们希望为用户提供将此文件附加到电子邮件的选项 但我们在同时使用 Stream 对象和附件逻辑时遇到了问题 我们从 ABCpdf 开始 它有两种保存方法 它可以保存到 Stream