是否有更有效的方法来确定联系人是否不存在:
set theAddress to "foo@bar.com"
set found to false
repeat with aContact in contacts
if email addresses of aContact contains theAddress then
set found to true
exit repeat
end if
end repeat
if not found then
...
end if
如果找不到新联系人(并返回true
),则会创建新联系人:
set found to open contact email address "foo@bar.com"
**编辑**
Search Outlook contacts by category建议我应该可以使用Spotlight查询执行此操作:
-- the address to be found
set theEmailAddress to "foobar@acme.com"
-- search identity folder
set currentIdentityFolder to quoted form of POSIX path of (current identity folder as string)
--perform Spotlight query
set theContacts to words of (do shell script "mdfind -onlyin " & currentIdentityFolder & " 'kMDItemContentType == com.microsoft.outlook14.contact && [metadata element that represents an email address] == " & theEmailAddress & "' | xargs -I % mdls -name com_microsoft_outlook_recordID '%' | cut -d'=' -f2 | sort -u | paste -s -")
-- process results
...
代表联系人电子邮件地址的元数据元素是什么?
答案 0 :(得分:0)
您正在寻找的元数据元素是kMDItemEmailAddresses - 您可以在Apple's developer library找到更多内容,但我承认需要大量搜索才能找到它。
对我有用的Shell命令(用AppleScript包装它是读者的练习):
mdfind 'kMDItemContentType == com.microsoft.outlook14.contact && kMDItemEmailAddresses == "user@example.com"'