更改Outlook联系人电子邮件地址的脚本

问题描述:

Exchange 2007环境。每个邮箱都有自己的本地联系人副本。更改Outlook联系人电子邮件地址的脚本

我刚刚更改了我们的域以缩短它,而不是让用户进入并更改他们每个本地联系人,我想编写一个脚本遍历每个本地联系人,如果电子邮件地址以'@ oldemailaddress.com'结尾,我想将其更改为'@ newaddy.com'。

如果同一个脚本会打开他们的.n2k文件并编辑这些地址,那也不错。

这可能吗?它会成为每个客户端的脚本,还是它会成为我可以在Exchange 2007服务器上运行的脚本或cmd(不包括n2k)?

谢谢!

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

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."