Outlook受信アドイン製作への道
上記サイトを見てこれ面白いなーって感心しました。
自分の場合はOutlook環境なんで、なんとかOutlookでも同じことが出来ないかなと^^
Windowsアプリケーションは専門ではありませんが、C#ならなんとか使えるんでC#+Outlookでチャレンジしてみたいと思います。
調べてみたところこちら がヒントになりました。
プロジェクトの作成は次のようにします。
※私の環境はC#.NET2005+Outlook2003+WindowsXPHomeSP3+Nortonです。
1.プロジェクトはConsoleApplicationにて作成
2.参照の追加 COM(Microsoft Outlook ・・・)
3.参照の追加 .NET(System.Window.Forms)
ただし、私のC#.NET2005環境ではそのままではビルドできなかったので.NET2005版のソースを書きに記します。(ご参考まで。たいした変更は無いです)
/*ここから*/
using System;
using System.Windows.Forms; /* 追加 */
using Microsoft.Office.Interop.Outlook; /* 追加 */
// To use this namespace you must set a
// reference to the Microsoft Outlook 11.0
// COM server.
using OutLookApp = Microsoft.Office.Interop.Outlook.Application;
namespace OPine
{
class OPineApp
{
[STAThread]
static void Main(string[] args)
{
// Create an Outlook application object.
ApplicationClass outLookApp = new ApplicationClass();
// Ring up the new message event.
outLookApp.NewMailEx += new ApplicationEvents_11_NewMailExEventHandler(outLookApp_NewMailEx);
Console.WriteLine("Please wait for new messages...");
Console.ReadLine();
}
#region NewMail event handler.
private static void outLookApp_NewMailEx(string EntryIDCollection)
{
MessageBox.Show("You've got a new mail whose EntryIDCollection is \n" + EntryIDCollection,
"NOTE", MessageBoxButtons.OK);
}
#endregion
}
}
/* ここまで */
画面1 新着メール待ち受け昼画面(Outlookが起動していない状態も同様)↓
ソースコードを見て分かる通り"Please wait for new messages..."出力後入力待ちになっています。
キーを何か押すとプログラムを終了します。
プログラムが稼動している間はNewMailExイベントを受け付けます。
ですので、新着メール受信するたびに
MessageBox.Show("You've got a new mail whose EntryIDCollection is \n" + EntryIDCollection,"NOTE", MessageBoxButtons.OK);
が実行されます。
後は、このアプリケーションをサービス化することと、NewMailExイベント時に外部制御ができれば良いですね。
案外簡単に実現できそうです。
つづく...
