2010-07-26 93 views
0

Exchange 2007環境。每個郵箱都有自己的本地聯繫人副本。更改Outlook聯繫人電子郵件地址的腳本

我剛剛更改了我們的域以縮短它,而不是讓用戶進入並更改他們每個本地聯繫人,我想編寫一個腳本遍歷每個本地聯繫人,如果電子郵件地址以'@ oldemailaddress.com'結尾,我想將其更改爲'@ newaddy.com'。

如果同一個腳本會打開他們的.n2k文件並編輯這些地址,那也不錯。

這可能嗎?它會成爲每個客戶端的腳本,還是它會成爲我可以在Exchange 2007服務器上運行的腳本或cmd(不包括n2k)?

謝謝!

回答

0

我想我自己找到了解決方案。

Const olFolderContacts = 10 
sOldDomain = "@olddomain.com" 
sNewDomain = "@newdomain.com" 

Set oOutlook = CreateObject("Outlook.Application") 
Set oNamespace = oOutlook.GetNamespace("MAPI") 

Set oContactFolder = oNamespace.GetDefaultFolder(olFolderContacts) 

For Each item in oContactFolder.Items 
    If InStr(1, item.Email1Address, sOldDomain, vbTextCompare) > 0 Then _ 
     item.Email1Address = Replace(item.Email1Address, sOldDomain, sNewDomain, 1, 1, vbTextCompare) 
    If InStr(1, item.Email2Address, sOldDomain, vbTextCompare) > 0 Then _ 
     item.Email2Address = Replace(item.Email2Address, sOldDomain, sNewDomain, 1, 1, vbTextCompare) 
    If InStr(1, item.Email3Address, sOldDomain, vbTextCompare) > 0 Then _ 
     item.Email3Address = Replace(item.Email3Address, sOldDomain, sNewDomain, 1, 1, vbTextCompare) 
    item.Save 
Next 

Wscript.Echo "Finished." 
相關問題