Пожалуйста, можете проверить этот скрипт? Я не могу заставить его работать - я хотел бы использовать это, чтобы отправлять одно и то же электронное письмо на разные адреса, но с персонализированным приветствием.Applescript для массовой почты
- Скрипт требует наличия двух файлов в той же папке, что и скрипт. - «Email Addresses.txt» должен содержать адреса электронной почты, разделенные возвратом каретки. - «Email Message.txt» должен содержать тему в первой строке, а затем тело сообщения ниже (разделено возвратом каретки).
- Получить путь к скрипту, где должны храниться файлы поддержки.
set myPath to (path to me) as text
set oldDelims to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
set textChunks to text items of myPath
if last item of textChunks is "" then set textChunks to _chopLast(tectChunks)
set myFolderPath to _chopLast(textChunks) as text
set AppleScript's text item delimiters to oldDelims
log myPath
log myFolderPath
tell application "Finder"
-- Get the list of recipients
set recFile to (myFolderPath & ":Email Addresses.txt")
set recList to ""
set recFileID to (open for access (recFile as alias))
-- Extract text from the file
try
set fileLength to (get eof recFileID)
set recList to (read file recFile from 1 to (fileLength))
on error error_message number error_number
display alert "Error number: " & (error_number as string) & return ¬
& ("Message: ") & error_message
close access recFileID
end try
log recList
-- Get the email subject and body
set msgFile to (myFolderPath & ":Email Message.txt")
set msgFileID to (open for access (msgFile as alias))
-- Extract text from the file
try
set fileLength to (get eof msgFileID)
set emailBody to (read file msgFile from 1 to (fileLength))
on error error_message number error_number
display alert "Error number: " & (error_number as string) & return ¬
& ("Message: ") & error_message
close access msgFileID
end try
log emailBody
-- Seperate Subject from Body
set emailSubject to the first paragraph of emailBody
log emailSubject
set emailMsg to paragraphs 2 thru (count of paragraphs in emailBody) of emailBody
log emailMsg
set recListList to paragraphs in recList
-- Loop for each address.
repeat with eachAddress in (recListList)
set txtURL to ("mailto:" & eachAddress & "?subject=" & emailSubject & "&body=" & emailMsg as string)
open location txtURL
tell application "Mail"
activate
-- Uncomment the following line if you want to automatically send messages
-- send newMessage
end tell
end repeat
end tell
on _chopLast(theList)
return reverse of (rest of (reverse of theList))
end _chopLast
«Я не могу заставить его работать» недостаточно информации. Что не работает? Вы видите ошибку? Какая ошибка? Или, возможно, отправляются электронные письма, но они пустые? Или, возможно, все электронные письма отправляются по тому же адресу? Или что-то другое? – Mark
спасибо, Марк, ты прав. Извините за недостаток информации. Это дало мне ошибку, но я отказываюсь от этого сценария и буду работать с Лаури ниже. Я хочу отправить массовое электронное письмо, как показано ниже, но все еще осталось три вещи. 1) Мне нужно персонализированное приветствие, т.е. Привет (Это можно извлечь из электронной таблицы с адресами электронной почты). 2. Нужно, чтобы адреса также были вытащены из листа. 3.) Текст тела имеет один URL-адрес в них и некоторые различия шрифтов, поэтому он должен быть RTF или HTML. –
coachpienaar
Собственно, это именно то, что я делаю в одной из моих собственных рассылок. Я использую файлы CSV. Ядро сценария похоже на Lauri's. – Mark