Come inviare e-mail con allegato tramite postfix dalla riga di comando?


10

Ho appena installato un nuovo server Ubuntu 10.04 LTS su linode per me stesso. Seguito un'istruzione eccellente su: qui per completare l'installazione di alcune cose di base tra cui postfix.

Sto cercando di trovare un modo per inviare un'email al mio indirizzo Gmail con un allegato, ma non riesco a trovare il modo. Già confermato che l'e-mail può raggiungere il mio account Gmail.

Alla fine devo usare mutt per inviare l'e-mail con gli allegati, probabilmente anche SendEmails farà bene, ma mi chiedo come fare la stessa cosa in postfix dalla riga di comando?

Molte grazie in anticipo per questa stupida domanda.

Risposte:


14

Perché deve essere postfixdirettamente? mailx -a, mutto mutt -autilizzerà anche l' sendmailinterfaccia, a meno che non vengano configurati per SMTP.

echo "Questo è un messaggio di prova" | mutt -s Test -a foo.zip - $ USER
echo "Questo è un messaggio di prova" | mail -s Test -a foo.zip $ USER

(Nota, in bsd-mailx l'opzione è -Ainvece.)


Ad ogni modo, ecco un esempio di "postfisso".

Sostituisci $USER, tipo di contenuto e nome file in base al tuo ambiente. L'esempio presuppone che tu stia inviando il messaggio a te stesso e abbia un file ZIP foo.zipnella directory corrente.

(printf "%s\n" \
    "Subject: test" \
    "To: $USER" \
    "Content-Type: application/zip" \
    "Content-Disposition: attachment; filename=foo.zip" \
    "Content-Transfer-Encoding: base64" \
    "";
 base64 foo.zip) | sendmail "$USER"

(Creazione di messaggi MIME multipart lasciati come esercizio al lettore.)


mail -a foo.zipnon si allega foo.zipa un messaggio come con mutt.
n.

@ nicolai.rostov: dipende mail, credo. Lo fa in Heirloom-Mailx.
user1686

7

Postfix è un agente di trasferimento posta (MTA) . Il suo compito è gestire la consegna della posta: ritirala e spediscila al punto successivo del suo percorso. Postfix è un impiegato delle poste, il cui compito è prendere una busta e (con l'aiuto dei suoi colleghi) portarla al destinatario.

Quello che stai chiedendo qui è il lavoro di segreteria: assemblare i documenti per metterli nella busta. Questo non è il lavoro di Postfix: è un lavoro per un agente utente di posta (MUA) . Puoi scrivere un MUA grezzo che assembla solo pezzi per creare una posta in poche righe di shell, come ha fatto Grawity , ma Mutt è davvero un ottimo strumento per questo compito.


4

Dalla riga di comando, mi piace usare "sendemail", che su ubuntu / debian può essere installato dalla riga di comando in questo modo:

apt-get install sendemail

Quindi puoi semplicemente dirgli di usare localhost (Postfix) come MTA.

In realtà ho appena notato che localhost: 25 è l'impostazione predefinita:

-s SERVER[:PORT]          smtp mail relay, default is localhost:25

Quindi aggiungi gli allegati usando il flag -a:

sendemail -f sender@example.com -t recipient@example.com -m "This is the message" -u "This is the subject" -a file1.zip file2.zip

1

mailx 12.4 ha un'opzione per allegare file:

-a file
    Allega il file indicato al messaggio.

Per esempio:

[gawad @ centos Desktop] $ mail -s "pine" -a pine.rpm.gz root @ localhost Enter
questo è il software di pino richiesto Enter
.Enter
EOT
[gawad @ centos Desktop] $ 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.