scripts/title2.ws (ファイルに保存にしてください)
------------------------------------------------------------
<JOB ID="title2">
<REFERENCE GUID="{00062FFF-0000-0000-C000-000000000046}"/>
<SCRIPT LANGUAGE="JavaScript">
var myOlApp = WScript.CreateObject("Outlook.Application");
var myNameSpace = myOlApp.GetNameSpace("MAPI");
var folder = myNameSpace.GetDefaultFolder(olFolderInbox);
GetMailTitles(folder);
//そのフォルダの下のすべてのメールのタイトルを表示する
function GetMailTitles(folder) {
var i;
for(i = 1; i <= folder.Items.Count; i++)
WScript.Echo(folder.Items(i).Subject);
for(i = 1; i <= folder.Folders.Count; i++)
GetMailTitles(folder.Folders(i));
}
</SCRIPT>
</JOB>
var folder = myNameSpace.GetDefaultFolder(olFolderInbox);
folder.Folders.Add("極秘フォルダ");
受信トレイの下に「極秘フォルダ」という名前のフォルダができます。
[表示] − [フォルダ一覧] で確認できると思います。逆にフォルダを削除するにはフォルダオブジェクトの Delete メソッドを使います。
var folder = myNameSpace.GetDefaultFolder(olFolderInbox);
folder.Folders("極秘フォルダ").Delete();
var folder = myNameSpace.GetDefaultFolder(olFolderInbox);
folder.Items(1).Move(folder.Folders("極秘フォルダ"));
例えば、ある期間経ったメールを受信トレイの下のフォルダーに移動するスクリプトは
次のようになります。
scripts/movemail.ws (ファイルに保存にしてください)
--------------------------------------------------------------
<JOB ID="title2">
<REFERENCE GUID="{00062FFF-0000-0000-C000-000000000046}"/>
<SCRIPT LANGUAGE="JavaScript">
var myOlApp = WScript.CreateObject("Outlook.Application");
var myNameSpace = myOlApp.GetNameSpace("MAPI");
var folder = myNameSpace.GetDefaultFolder(olFolderInbox);
//受信トレイの下のフォルダをfに登録しておく
var f = new objfolders();
var folders = folder.Folders;
var nfolders = folders.Count;
for(var i = 1; i <= nfolders; i++)
f[folders(i).Name] = folders(i);
var mails = folder.Items;
var nmails = mails.Count; //メールの数
var oldDate = FromToday(0, 0, -60); //60日前
for(var i = nmails; i >= 1; i--)
//約2ヶ月以上前のメールは移動する
if(mails(i).ReceivedTime < oldDate) {
//移動先のフォルダ名
MonthFolder = GetFolderName(mails(i).ReceivedTime);
if(!f[MonthFolder]) { //もしフォルダがなかったら
//フォルダを追加
folder.Folders.Add(MonthFolder);
//フォルダをfに登録
f[MonthFolder] = folder.Folders(MonthFolder);
}
mails(i).Move(f[MonthFolder]); //移動
}
//年月をyyyymmの形式で文字列にして返す
function GetFolderName(d) {
var jsd = new Date("" + d); //JavaScriptのDateオブジェクト
var y = jsd.getYear();
var m = jsd.getMonth() + 1;
return "" + (y < 100 ? y + 1900 : y) + (m < 10 ? "0" + m : m);
}
function objfolders() {}
function FromToday(year, month, day) {
var d = new Date();
year += d.getYear();
if(year >= 100)
year += 1900;
month += d.getMonth();
day += d.getDate();
return new Date(year, month, day);
}
</SCRIPT>
</JOB>
受信から約60日経ったメールを月ごとのフォルダに移動しています。
ときどきこのスクリプトを走らせるとメールを整理することができるでしょう。