2013-05-09 26 views
6

Sto provando a scrivere uno script bash, per essere eseguito da un'attività cron, che mi invierà un'e-mail in determinate circostanze.Utilizzo di sendmail dalla riga di comando

Al fine di cercare di ottenere sendmail lavorare con i miei impostazioni SMTP SendGrid, ho modificato il file /etc/postfix/main.cf con il seguente:

smtp_sasl_password_maps = static:<username>:<password> 
smtp_sasl_security_options = noanonymous 
smtp_tls_security_level = may 
smtp_tls_security_level=encrypt 
header_size_limit = 4096000 
relayhost = [smtp.sendgrid.net]:587 

ho riavviato postfix utilizzando sudo /etc/init.d/postfix restart

e ha cercato l'invio di una e-mail dalla riga di comando utilizzando il seguente comando:

sendmail [email protected] < /tmp/email.txt

Il risultato è il seguente output:

Hai nuovi messaggi in/var/mail/ubuntu

Perché non è sendgrid che invia con la mia email usando i dettagli SMTP di Sendgrid che ho specificato in main.cf?

Si prega di notare che questa domanda riguarda solo sendmail, non voglio installare altri client e app SMTP, deve funzionare così com'è.

risposta

10

La configurazione di Postfix era errata. Avevo bisogno di utilizzare il seguente:

smtp_sasl_auth_enable = yes 
smtp_sasl_password_maps = static:<username>:<password> 
smtp_sasl_security_options = noanonymous 
smtp_tls_security_level = may 
header_size_limit = 4096000 
relayhost = [smtp.sendgrid.net]:587 

L'invio della e-mail tramite script bash è fatto come segue:

sendmail [email protected] <<EOF 
subject:This is a test 
from:[email protected] 
Body message here... 
EOF