2011-12-06 10 views
1

javaが.oftをサポートしているかどうか知りたいですか?Javaや他のJava APIでサポートされている.oft(Outlookのテンプレート)はありますか?

私の基本的なやりたいことは、自分のJavaプログラムにあります。「電子メール」ボタンをクリックすると、私の.oftテンプレートの1つが開き、SQLデータベースのアドレスが自動的にアドレスバーに入力されます。

現在、デスクトップAPI(「mailto:」)を使用してアドレスバーに別のメールアドレスを入力していますが、何も表示されていない開いたメールのみが開きます。

また、電子メールを自動化したくない場合、ユーザーは依然として電子メールの本文に入力を追加する必要があるため、テンプレートを開く必要があります。

ご提案をお願いします。

ありがとうございます!

+0

は、あなたが本当にOutlookのテンプレートが必要ですか? –

+0

私は電子メールの本文にあらかじめ定義された "もの"が必要です。 .oftテンプレートである必要はありません。 – Foxticity

答えて

0

おかげで良い出発点であってもよいことができるが、これを行うには素晴らしい方法が見つかった、私は同じことをしたいと思う人のためのコードを共有しています:

 Shell shell = new Shell(getDisplay()); 
     OleFrame frame = new OleFrame(shell, SWT.NONE); 
     // This should start outlook if it is not running yet 
     OleClientSite site = new OleClientSite(frame, SWT.NONE, "OVCtl.OVCtl"); 
     site.doVerb(OLE.OLEIVERB_INPLACEACTIVATE); 
     // Now get the outlook application 
     OleClientSite site2 = new OleClientSite(frame, SWT.NONE, "Outlook.Application"); 
     OleAutomation outlook = new OleAutomation(site2); 
     // 
     OleAutomation mail = invoke(outlook, "CreateItem", 0 /* Mail item */).getAutomation(); 
     setProperty(mail, "To", "[email protected]"); /* 
                * Empty but could also be 
                * predefined 
                */ 
     //setProperty(mail, "Bcc", ""); 
                /* 
                * Empty but could also be 
                * predefined 
                */ 
     setProperty(mail, "BodyFormat", 2 /* HTML */); 
     setProperty(mail, "Subject", filterComboBox.getSelectedItem().toString()); 
     setProperty(mail, "HtmlBody", w.toString()); 

     invoke(mail, "Display" /* or "Send" */); 

と:

private static Variant invoke(OleAutomation auto, String command,String value) 
{ 
    return auto.invoke(property(auto, command), new Variant[] { new Variant(value) }); 
} 

private static Variant invoke(OleAutomation auto, String command) 
{ 
    return auto.invoke(property(auto, command)); 
} 

private static Variant invoke(OleAutomation auto, String command, int value) 
{ 
    return auto.invoke(property(auto, command), new Variant[] { new Variant(value) }); 
} 

private static boolean setProperty(OleAutomation auto, String name, 
     String value) { 
    return auto.setProperty(property(auto, name), new Variant(value)); 
} 

private static boolean setProperty(OleAutomation auto, String name, 
     int value) { 
    return auto.setProperty(property(auto, name), new Variant(value)); 
} 

private static int property(OleAutomation auto, String name) { 
    return auto.getIDsOfNames(new String[] { name })[0]; 
} 
関連する問題