Applescript: используйте пользовательский ввод, чтобы получить контактную электронную почту из адресной книги и добавить в почтовое сообщение
Я хотел бы знать, какой сценарий я могу использовать для добавления адреса электронной почты человека в Контактах в Mac Mail?
Это то, что я имею до сих пор, он запрашивает различные входные данные, а затем использует их для компиляции сообщения. Остальная часть кода для сообщения работает нормально, но я бы хотел, чтобы скрипт нашел этого человека (на основе входных данных) в Контактах и добавил указанный в нем почтовый адрес к сообщению в поле Кому:
--User Inputs to get Client details
display dialog "You are about to Create Outgoing e-mail for: Test
Please enter Client's First Name:" default answer "First Name"
set ClientName to text returned of result
display dialog "Please enter Client's Last Name:" default answer "Last Name"
set ClientLastName to text returned of result
--Create e-mail
tell application "Mail"
set theMessage to make new outgoing message with properties {visible:true, subject:"Test", content:"Hi " & ClientName & ",
"}
tell theMessage
make new to recipient at end of to recipients with properties {address:ClientName & ClientLastName}
end tell
end tell
Это создает сообщение и добавляет "ClientName + LastName" в поле "Кому", но мне все равно нужно войти и найти адрес электронной почты. Я бы хотел, чтобы адресная книга искала человека по имени и фамилии, а затем добавила его адрес в поле "Кому".
1 ответ
Решение
Ну, это быстро вышло из-под контроля
repeat
display dialog "You are about to Create Outgoing e-mail for: Test
Please enter Client's First Name:" default answer "First Name"
set ClientName to text returned of result
display dialog "Please enter Client's Last Name:" default answer "Last Name"
set ClientLastName to text returned of result
tell application "Address Book" to set myContact to every person whose first name is ClientName and last name is ClientLastName
if myContact ≠ {} then
exit repeat
else
display dialog "There is not match for " & ClientName & space & ClientLastName & " in your Address Book." buttons {"Try again", "Cancel"} default button "Try again"
end if
end repeat
tell application "Address Book"
if (count of myContact) > 1 then
repeat with aPerson in myContact
display dialog "More than one person in your Address Book is named " & ClientName & space & ClientLastName & ". Please select your contact..." & aPerson's vcard buttons {"Select", "Next", "Cancel"} default button "Select"
if button returned of the result = "Select" then
set myContact to contents of aPerson
exit repeat
end if
end repeat
else if (count of myContact) = 1 then
set myContact to first item of myContact
end if
repeat
set contactEmail to emails of myContact
if contactEmail ≠ {} then
exit repeat
else
display dialog "There is not an email listed for " & ClientName & space & ClientLastName buttons {"Cancel"} default button "Cancel"
end if
end repeat
if (count of contactEmail) > 1 then
set theEmails to {}
repeat with anEmail in contactEmail
set end of theEmails to label of anEmail & ": " & value of anEmail
end repeat
set contactEmail to first item of (choose from list theEmails with prompt "Please select an email address:")
set AppleScript's text item delimiters to ": "
set contactEmail to text item -1 of contactEmail
set AppleScript's text item delimiters to {""}
else if (count of contactEmail) = 1 then
set contactEmail to value of first item of contactEmail
end if
end tell
tell application "Mail"
set theMessage to make new outgoing message with properties {visible:true, subject:"Test", content:"Hi " & ClientName & ",
"}
tell theMessage
make new to recipient at end of to recipients with properties {address:contactEmail}
end tell
end tell