Jacob 操作 outlook 发邮件 遍历文件夹邮件 移动邮件

来源:互联网 发布:怎样下载数码大师软件 编辑:程序博客网 时间:2024/06/01 10:20

注意:以下操作前提是已配置好了jacob环境,包括注册.dll文件。

发送邮件

{

ActiveXComponent axOutlook = new ActiveXComponent("Outlook.Application");    

Dispatch mailItem = Dispatch.call(axOutlook, "CreateItem", 0).getDispatch();    

                        

//设置收件人   ,Add是固定用法, Recipients---收件人,Add---地址

Dispatch recipients = Dispatch.call(mailItem, "Recipients").getDispatch(); 
Dispatch.call(recipients, "Add" , "12345678@qq.com");
    

//邮件主题   Subject---主题 

Dispatch.put(mailItem, "Subject", "测试邮件");
               

//添加抄送人   此处只能添加一个,多于一个的目前还未知,如有知道的欢迎补充,谢谢!
Dispatch.put(mailItem, "CC","87654321@qq.com");
                        

//代表某个发件人发送邮件
Dispatch.put(mailItem, "SentOnBehalfOfName","9888888@qq.com");
                        

//添加邮件内容 body, 如果不熟悉HTML的,可以用在线网页编辑器在线编辑https://zaixianwangyebianji.51240.com/

String html=" ";
Dispatch.put(mailItem, "HTMLBody", html);   
                        

//设置在不在新的邮件界面显示    
Dispatch.call(mailItem, "Display");  

//发送  
Dispatch.call(mailItem, "Send");  

}


遍历并移动 outlook 中的邮件

{

final int olFolderInbox = 6;   // 注意这里的参数:  3代表: 已删除     4代表:  发件箱     5代表: 已发送      6代表:  收件箱


ActiveXComponent outlook = new ActiveXComponent("Outlook.Application");

//获得默认的主文件夹

Dispatch myNamespace = Dispatch.call(outlook, "GetNamespace", "MAPI")
    .toDispatch();
   

Dispatch Folder = Dispatch.call(myNamespace, "GetDefaultFolder",
          new Integer(olFolderInbox)).toDispatch();
   
//获取主文件夹下 “收件箱” 下的自定义文件夹,这里的test1 和 test 2是自定义的

Dispatch myFolder = Dispatch.call(Folder, "Folders","test1").toDispatch();

Dispatch buFolder = Dispatch.call(Folder, "Folders","test2").toDispatch();


   

//获得文件夹下所有邮件的集合
   

Dispatch items = Dispatch.get(myFolder, "Items").toDispatch();
   

int count = Dispatch.call(items, "Count").toInt();

//遍历所有邮件,并检查符合标准的邮件

for (int x = 1; x <= count; x++)

 

//注意此处,在后面每Move一个邮件之后原 items 集合大小会跟着改变
int index= count-x+1;

//读取邮件
Dispatch sMail = Dispatch.call(items, "Item",new Integer(index)).toDispatch();

//获取邮件中的主题

String subject = Dispatch.get(items, "Subject").toDispatch();

//获取邮件中的内容

String htmlBody = Dispatch.get(items, "HTMLBody").toDispatch();

// 将获取的邮件移到指定的文件夹
Dispatch.call(sMail, "Move",  buFolder);
  
}

}

原创粉丝点击