Скрипт массовой рассылки email.

Сохранять как приложение через Automator(!), потому что при сохранении приложением через AppleScriptEditor глючит отсылка готовых - их содержание повторяется 4 раза. Причину глюка найти не удалось.
--начальный список адресов для отправки сообщений пуст
set ListOfEmails to {}
--переменная для повтора выбора группы, пока не появится хотя бы 1 адресат
set NoAddresses to true
display dialog "Cкрипт находит почтовые адреса из группы AddressBook, рассылает простое письмо или одно/несколько готовых писем из вашего почтового ящика." buttons {"Выход", "Далее"} default button 2
if button returned of result is "Далее" then
repeat while NoAddresses
tell application "Address Book"
--выбор группы, членам которой будут рассылаться письма
choose from list (get name of every group) with prompt "Выберите группу контактов для рассылки:"
if the result is not false then
repeat with CurrentPerson in people of group (item 1 of result)
try
--у каждого человека в группе считывается адрес почты
set EmailList to properties of emails of CurrentPerson
--добавление адреса в список рассылки
set ListOfEmails to ListOfEmails & (value of item 1 of EmailList)
end try
end repeat
end if
end tell
--смена счетчика, если адреса почты для отправки есть
if (count of ListOfEmails) is not 0 then
set NoAddresses to false
else
display dialog "Ни у одного из адресатов нет почтового адреса." & return & "Выберите группу для рассылки." buttons {"Далее"} default button 1
end if
end repeat
tell application "Address Book" to quit
display dialog "Вы хотите отправить простой текст или уже готовое письмо?" buttons {"Текст", "Готовое"} default button 2
--проверяем, какая кнопка была нажата
if button returned of result is "Текст" then
set MessageSubject to text returned of (display dialog "Введите название темы для письма:" buttons {"OK"} default button 1 default answer "")
set MessageContent to text returned of (display dialog "Введите текст письма:" buttons {"OK"} default button 1 default answer "")
tell application "Mail"
--для каждого адреса из списка выполняются следующие действия
repeat with CurrentAddress in ListOfEmails
--создание нового сообщения
set MessageToSend to make new outgoing message with properties {visible:false, subject:MessageSubject, content:MessageContent}
--указание адреса куда отправлять наше письмо
tell MessageToSend to make new to recipient at end of to recipients with properties {address:CurrentAddress}
--отправление письма
send MessageToSend
end repeat
end tell
else
tell application "Mail" to launch
display dialog "Выделите одно или несколько писем в Mail для отправки каждому адресату, затем нажмите кнопку ОК." buttons {"OK"} default button 1
tell application "Mail"
--считываем какие письма дял отправки выбрал пользователь
set SelectedMessages to the selection
--для каждого адреса из списка выполняются следующие действия
if SelectedMessages is not {} then
repeat with CurrentAddress in ListOfEmails
--создание нового письма с точным содержимым выбранного письма на отправку
repeat with MessageToSend in SelectedMessages
set MessageToRedirect to redirect MessageToSend
--добавление адреса
tell MessageToRedirect to make new to recipient at end of to recipients with properties {address:CurrentAddress}
--отправка письма
send MessageToRedirect
end repeat
end repeat
else
display dialog "Вы не выделили ни одного письма, поэтому ничего не было отправлено." buttons {"OK"} default button 1
end if
end tell
end if
end if
|
</> |