注意:以下操作前提是已配置好了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@");
//邮件主题 Subject---主题
Dispatch.put(mailItem, "Subject", "测试邮件");
//添加抄送人 此处只能添加一个,多于一个的目前还未知,如有知道的欢迎补充,谢谢!
Dispatch.put(mailItem, "CC","87654321@");
//代表某个发件人发送邮件
Dispatch.put(mailItem, "SentOnBehalfOfName","9888888@");
//添加邮件内容 body, 如果不熟悉HTML的,可以用在线网页编辑器在线编辑/
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);
}
}