如何使用 AppleScript 删除 OS X 联系人中具有特定域的所有电子邮件地址?

How to delete all email addresses with a specific domain in OS X Contacts using AppleScript?

我的联系人中有一堆电子邮件地址,这些电子邮件地址是 Verizon 提供给他们的 phone 号码的电子邮件地址。

例如:

1234567890@vtext.com or 

我想创建一个删除所有这些电子邮件地址的 Applescript。

您不能直接select所有人的所有电子邮件的所有 ID,您需要遍历人员,并在每个人中获取包含您的模式的电子邮件。

下面的脚本正在运行。我只是添加了一个 selection 标准(用于我的测试),其中 select 是所有姓名为 "tests" 的人。 如果您想查看所有联系人,请删除此行并删除下一行的“--”。

最后但并非最不重要的一点,因为您可能会删除很多数据,请确保您之前已经备份了所有联系数据库!!

tell application "Address Book"
    set All_Contacts to every person whose name contains "tests"
    --set All_Contacts to every person
    tell me to display dialog "Are you sure you want me to check emails of  " & (count of All_Contacts) & " contacts ?"
    repeat with My_Contact in All_Contacts
        set Bad_Id to (id of every email of My_Contact whose value contains "vtext.com")
        repeat with my_Id in Bad_Id
            delete (emails of My_Contact whose id is my_Id)
        end repeat
    end repeat
save
end tell

我还没有试过 pbell 的答案,但下面的脚本对我有用。

tell application "Contacts"
    tell every person
        delete (every email whose value contains "vtext.com")
    end tell
    save
end tell