[Domino]Java访问Domino邮件代码片断[4]下载某一封邮件中的指定附件

简介:

[Domino]Java访问Domino邮件代码片断[4]

编写者

日期

关键词

郑昀@ultrapower

2005-8-1

Java Domino

 

下载某一封邮件中的指定附件

3个知识点:

1:需要通过NoteID来定位该邮件:

Database dbMail = sNotes.getDatabase(sNotes.getServerName(),

                      mailfile, false);

Document doc = dbMail.getDocumentByID(noteid);

2:其次需要通过attachment name来定位该附件:

EmbeddedObject eAttach =

(EmbeddedObject)doc.getAttachment(attachmentFileName);

3:通过EmbeddedObjectextractFile方法下载附件。

代码片段:

Database dbMail = sNotes.getDatabase(sNotes.getServerName(),

                      mailfile, false);

Document doc = dbMail.getDocumentByID(noteid);

if (doc != null)

{

       // Given the name of a file attachment, returns a NotesEmbeddedObject

       // representing the attachment. You can use this method to find file

       // attachments which are not contained in a rich text item

       // (such as an attachment in a Release 2 database),

       // as well as file attachments that are contained in a rich text item.

       EmbeddedObject eAttach =

       (EmbeddedObject)doc.getAttachment(attachmentFileName);

       // 查看附件

       if(eAttach != null)

       {

          logger.info("打开了指定邮件的指定附件");

      

          // 是否是我们要寻找的哪个附件?

          // 是的话,就保存下来

          String strAttachmentFileName =

                 eAttach.getSource();

      

          // Writes a file attachment to storag

          if(strAttachmentFileName.length() > 0)

                 eAttach.extractFile("c:\\" + strAttachmentFileName);

                

          eAttach.recycle();

        }

}

 

这其中的attachmentFileName参数是通过EmbeddedObjectgetName方法拿到的:

// getName returns a String value containing the name

// used to reference an object that was embedded programmatically.

String strAttachmentObjectName =

   eAttach.getName();

而不是通过getSource()拿到的。当一封邮件中同时存在多个重名附件时,getName()getSource()就不一样了。

 

编写者

日期

关键词

郑昀@ultrapower

2005-8-1

Java Domino

 

目录
相关文章
|
2月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
349 5
|
2月前
|
Java 数据处理 API
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
248 115
|
2月前
|
安全 Java 编译器
为什么你的Java代码需要泛型?类型安全的艺术
为什么你的Java代码需要泛型?类型安全的艺术
179 98
|
2月前
|
Java 编译器 API
java最新版和java8的区别,用代码展示
java最新版和java8的区别,用代码展示
255 43
|
2月前
|
安全 Java 容器
告别空指针噩梦:Optional让Java代码更优雅
告别空指针噩梦:Optional让Java代码更优雅
370 94
|
2月前
|
安全 Java 容器
告别繁琐判空:Optional让你的Java代码更优雅
告别繁琐判空:Optional让你的Java代码更优雅
|
3月前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
428 3
|
3月前
|
安全 Java 应用服务中间件
Spring Boot + Java 21:内存减少 60%,启动速度提高 30% — 零代码
通过调整三个JVM和Spring Boot配置开关,无需重写代码即可显著优化Java应用性能:内存减少60%,启动速度提升30%。适用于所有在JVM上运行API的生产团队,低成本实现高效能。
305 3
|
安全 Java 程序员
Java访问修饰符的正确使用姿势
Java访问修饰符的正确使用姿势
1200 0
Java访问修饰符的正确使用姿势