2013-11-21 2 views
6

Я пытаюсь создать сценарий bash, который отправит электронное письмо всем контактам, которые будут содержать сообщение и вложение. Это не для злонамеренных целей.Mac Terminal Отправка электронной почты с приложением

Как я мог это сделать? Это возможно? Заранее спасибо.

+0

Где находятся " все контакты "сохранены для вас? Это контакты в приложении адресной книги? Вы рассматривали использование сценария Apple для этого? – Floris

ответ

9

Ранее я использовал UUENCODE для достижения этой цели:

uuencode source.txt destination.txt | mail -s "subject of mail" [email protected] 

Вы можете использовать это в Баш скрипт. Пример:

uuencode /usr/bin/xxx.c MyFile.c | mail -s "mailing my c file" [email protected] 

http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds5/uuencode.htm

+0

Что бы я заменил file.txt? ~/Путь/к/file.txt? Почему есть два? –

+0

извините за короткий ответ ... первый аргумент для uuencode является источником, а второй аргумент - именем целевого файла .... так что если вам нравится: uuencode source.txt destination.txt | mail -s "subject" [email protected] это отправит ваш source.txt из локальной системы в ваш идентификатор электронной почты с именем file.txt – Kush

+0

Спасибо. Кроме того, как я могу сделать так, чтобы он отправил электронное письмо всем в моем списке контактов? –

1

Вы также можете использовать AppleScript:

tell application "Mail" 
    tell (make new outgoing message) 
     set subject to "subject" 
     set content to "content" 
     -- set visible to true 
     make new to recipient at end of to recipients with properties {address:"[email protected]", name:"Name"} 
     make new attachment with properties {file name:(POSIX file "/tmp/test.txt")} at after the last paragraph 
     send 
    end tell 
end tell 

Вы можете использовать явный обработчик выполнения, чтобы передать аргументы из командной строки:

osascript -e 'on run {a} 
    set text item delimiters to ";" 
    repeat with l in paragraphs of a 
     set {contact, address} to text items of l 
    end repeat 
end run' "Name1;[email protected] 
Name2;[email protected]" 
Смежные вопросы