WSH/JScriptで,Outlookを操作しよう (受信メール内からURLを抽出してみる)
WSHのバッチでOutlookにアクセスし,メーラー上の定型作業を済ませる。
そのための,"Outlook.Application"というAPIの使い方のサンプルコード。
サンプルコード
以下を open_url.js とかで保存し,ダブルクリック。
// Outlookの最新の受信メール内に記載されているURLをIEで開く // // 参考: // http://homepage3.nifty.com/aya_js/office2k/index.htm // 新規outlookを起動 var outlook = WScript.CreateObject("Outlook.Application"); // 受信トレイを開く var olFolderInbox = 6; // 受信トレイを表す定数 var name_space = outlook.GetNamespace("MAPI"); var folder = name_space.GetDefaultFolder( olFolderInbox ); folder.Display(); // http://www.ken3.org/guchi/backno/guchi022.html // メールの合計件数を表示 //WScript.Echo( folder.Items.Count ); // 1件目のメール(=最も古いメール)の本文を表示 //WScript.Echo( folder.Items(1).Body ); // 最新のメールの本文をHTMLソース形式で取得 var src = folder.Items( folder.Items.Count ).HTMLBody; //WScript.Echo( src ); // Outlook VBAであれば,ActiveInspector.CurrentItemで // 現在表示中のメールアイテムにアクセスできる // http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=23826&forum=8&start=8 // 本文からURLを抽出 var match_results = src.match( /<a href="(http:.+)">/i ); if( match_results != null ) { var link = match_results[1]; // gオプション無しのString.matchは, // 最終マッチ文字列全体と,キャプチャ文字列たちの配列を返す。 // http://d.hatena.ne.jp/chalcedony_htn/20090315/1237121111 //WScript.Echo( link ); // そのリンクをIEで開く var ie = WScript.CreateObject("InternetExplorer.Application"); ie.Navigate( link ); ie.Visible = true; } else { WScript.Echo( "URLが記載されていません。" ); } // Outlookの最新のウィンドウを閉じて終了する outlook.explorers.Item( outlook.explorers.Count ).Close(); // <EXCEL/VBA> OUTLOOKのウインドを閉じる方法 // http://oshiete1.watch.impress.co.jp/qa5722929.html // outlookの全ウィンドウを終了したい場合 //outlook.Quit();