1 import com.jacob.activeX.ActiveXComponent; 2 import com.jacob.com.Dispatch; 3 4 public class Util { 5 public static void sendEmail(Map<String, String> unfinished) { 6 // System.out.println(System.getProperty("java.library.path")); 7 Map<String, String> recipientMAP = initialProperties("recipient"); 8 StringBuffer sb = new StringBuffer(); 9 ActiveXComponent outlook = new ActiveXComponent("Outlook.Application"); 10 Dispatch mailItem = Dispatch.call(outlook, "CreateItem", 0).getDispatch(); 11 Dispatch recipients = Dispatch.call(mailItem, "Recipients").getDispatch(); 12 Iterator<Entry<String, String>> recipient = recipientMAP.entrySet().iterator(); 13 while (recipient.hasNext()){ 14 Entry<String, String> entry = recipient.next(); 15 String address = entry.getValue(); 16 Dispatch.call(recipients, "Add", address); 17 } 18 Dispatch.put(mailItem, "Subject", "TRS Weekly Checking"); 19 if (unfinished.isEmpty()) { 20 sb.append("<h1>All members have completed TRS for this week. <br>Thanks all!</h1>"); 21 } else { 22 sb.append("<h1>Hi guys, <br>Please book your TRS for this week:</h1>"); 23 sb.append("<table style='color:red; font-size:12pt' border='1' cellspacing='0' cellpadding='5'><tr><th>Name</th><th>SOEID</th></tr>"); 24 Iterator<Entry<String, String>> iter = unfinished.entrySet().iterator(); 25 while (iter.hasNext()) { 26 Entry<String, String> entry = iter.next(); 27 sb.append("<tr><td>" + entry.getValue() + "</td><td>" + entry.getKey() + "</td></tr>"); 28 } 29 sb.append("</table>"); 30 } 31 String body = "<html><body>" + sb.toString() + "</body></html>"; 32 Dispatch.put(mailItem, "HTMLBody", body); 33 Dispatch.call(mailItem, "Display"); 34 Dispatch.call(mailItem, "Send"); 35 System.out.println("The mail was sent out."); 36 } 37 }
通过 JACOB 实现 Java 与 COM 组件的互操作 http://www.ibm.com/developerworks/cn/java/j-lo-jacob/ JACOB is a JAVA-COM Bridge that allows you to call COM Automation comp http://sourceforge.net/projects/jacob-project/