I am trying to write a script that filters the persons in the Contacts application whose note include a specific keyword and sending those who has at least one e-mail address an e-mail. I have written the following code but something seems to be wrong. I couldn't figure out especially how to make a null check for e-mails.
property mailSubject : "A bulk message"
property mailBody : "Hi %NAME%"
property keyword : "topic"
tell application "Contacts"
set theRecipients to every person whose ((note contains keyword))
end tell
repeat with i from 1 to number of items in theRecipients
set theContact to item i of theRecipients
set theName to name of theContact
set theEmail to email of theContact
if (theEmail is not equal to "") then
set theBody to replaceName(mailBody, theName)
tell application "Mail"
set theOutMessage to make new outgoing message with properties {visible:true}
tell theOutMessage
make new to recipient at end of to recipients with properties {address:theEmail}
set sender to "o****.g****@gmail.com>"
set subject to mailSubject
set content to theBody
end tell
end tell
end if
end repeat
The execution of this script returns following error at the line set theEmail to email of theContact
:
Contacts got an error: Can’t make |email| of person id "2827E13D-907A-41C5-A649-2174D1F61093:ABPerson" into type specifier.
Any ideas?
Önder.