2013-11-21 16 views
6

Sto provando a creare uno script bash che invierà un'e-mail a tutti i contatti che conterranno un messaggio e un allegato. Questo non è per scopi dannosi.Terminale Mac Invio e-mail con allegato

Come posso fare questo? È possibile? Grazie in anticipo.

+0

Dove sono " tutti i contatti "memorizzati per te? Sono i contatti nella tua applicazione della rubrica? Hai preso in considerazione l'utilizzo di script Apple per questo? – Floris

risposta

9

ho usato in precedenza uuencode per raggiungere questo obiettivo:

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

È possibile utilizzare questo nello script bash. Esempio:

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

Cosa sostituire con file.txt? ~/Path/to/file.txt? Perché ci sono due? –

+0

scusa per la risposta breve ... il primo argomento di uuencode è source e il secondo argomento è il nome del file di destinazione .... quindi se ti piace: uuencode source.txt destination.txt | mail -s "subject" [email protected] questo invierà il tuo source.txt dal sistema locale al tuo ID e-mail con nome file.txt – Kush

+0

Grazie. Inoltre, come potrei fare in modo che invii un'email a tutti i miei contatti? –

1

si potrebbe anche usare 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 

È possibile utilizzare un gestore di corsa esplicito a passare gli argomenti da una shell:

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]"