2013-11-21 12 views
6

Próbuję utworzyć skrypt bash, który wyśle ​​wiadomość e-mail do wszystkich kontaktów, które będą zawierać wiadomość i załącznik. Nie służy to złośliwym celom.Terminal Mac Wysyłaj e-mail z załącznikiem

Jak mogę to zrobić? czy to możliwe? Z góry dziękuję.

+0

Gdzie są " wszystkie kontakty "są przechowywane dla Ciebie? Czy to są kontakty w twojej aplikacji do książki adresowej? Czy rozważałeś zastosowanie do tego skryptu Apple? – Floris

Odpowiedz

9

już wcześniej stosowany UUENCODE do osiągnięcia tego celu:

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

Można to wykorzystać w skrypcie bash. Próbka:

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

Co zastąpiłbym plik.txt? ~/Path/To/file.txt? Dlaczego są dwa? –

+0

Przepraszam za krótką odpowiedź ... pierwszym argumentem dla uuencode jest źródło, a drugim argumentem jest nazwa pliku docelowego .... więc jeśli lubisz: uuencode source.txt destination.txt | mail -s "subject" [email protected] to wyśle ​​twój plik źródłowy.txt z systemu lokalnego do twojego adresu e-mailowego id z nazwą file.txt – Kush

+0

Dzięki. Co zrobić, aby wysłać wiadomość e-mail do wszystkich osób z mojej listy kontaktów? –

1

Można również użyć 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 

Można użyć wyraźne obsługi run przekazywać argumenty z powłoki:

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]" 
Powiązane problemy