代码之家  ›  专栏  ›  技术社区  ›  ItsPronounced Finn

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

  •  0
  • ItsPronounced Finn  · 技术社区  · 14 年前

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

    如果同样的脚本也能打开它们的.n2k文件并编辑这些地址,那就更好了。

    这可能吗?它是每个客户机的脚本还是可以在Exchange2007服务器(sans the n2k)上运行的脚本或cmd?

    谢谢!

    1 回复  |  直到 14 年前
        1
  •  0
  •   ItsPronounced Finn    14 年前

    我想我自己找到了解决办法。

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