Java中如何通过文件名与contentBytes创建Aspose.Email附件
基于字节内容创建Aspose.Email附件的实现方法
你已知的从本地路径加载附件是Attachment类最基础的用法,当你仅持有附件文件名和二进制字节内容时,可以通过流构造重载直接在内存中创建附件实例,完全不需要落地本地文件或依赖公网URL。
核心实现代码
using System.IO; using Aspose.Email; // 入参为你已持有的资源:附件文件名、附件二进制字节数组 // string attachFileName = "1.txt"; // byte[] contentBytes = 目标附件内容字节; // 将字节数组包装为内存流 using (MemoryStream memStream = new MemoryStream(contentBytes)) { // 传入流、文件名即可创建合法的Attachment实例 Attachment attachment = new Attachment(memStream, attachFileName); // 后续直接将附件加入邮件附件集合即可正常使用 // mailMessage.Attachments.Add(attachment); }
注意事项
- 传入的内存流必须在附件绑定到邮件、邮件完成发送/保存操作之后再释放,否则会出现附件内容为空、读取损坏的问题。如果使用
using语法包裹流,要确保所有和该附件相关的邮件操作都放在using的作用域范围内执行。 - 如果需要手动指定附件的MIME类型,可以使用三参数构造重载,第三个参数传入对应内容类型即可,示例:
new Attachment(memStream, attachFileName, "text/plain")。不手动指定的情况下,Aspose.Email会自动根据文件名后缀识别匹配MIME类型。
内容的提问来源于stack exchange,提问作者Ahmad Hijazi
相关产品推荐
相关产品推荐

