Come inviare una e-mail da linea di comando?
-
22-10-2019 - |
Domanda
Come inviare una e-mail da linea di comando o uno script? Voglio essere in grado di eseguire lo script di programmazione passando il ricevitore e il messaggio.
Soluzione
mail -s subject someone@example.com
digitare il messaggio, premere Ctrl+D
alla fine
Altri suggerimenti
Ci sono due programmi che sono a conoscenza di che facilmente consentono di configurare il Mac per inviare e-mail da riga di comando.
Ho scritto fino HOWTO per entrambi:
Dei due, suggerisco msmtp
.
La configurazione è abbastanza complicato che io non sono sicuro se devo replicare tutti i passi qui, ma voglio dire che se si utilizza Homebrew è possibile installare msmtp usando
brew install msmtp --with-macosx-keyring
Poi il resto è solo una questione di creare i file di configurazione relativi
La prima è /usr/local/etc/msmtprc
# Begin msmtprc
# Set default values for all following accounts.
defaults
tls on
logfile ~/.msmtp.log
# A first gmail address
account example@gmail.com
host smtp.gmail.com
port 587
protocol smtp
auth on
from example@gmail.com
user example@gmail.com
tls on
tls_starttls on
# this next line is crucial: you have to point to the correct security certificate for GMail.
# If this doesn't work, check the mstmp documentation
# at http://msmtp.sourceforge.net/documentation.html for help
#
# This next line should all be on one long line:
tls_trust_file /path/to/Thawte Roots/Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem
# Set a default account
# You need to set a default account for Mail
account default : example@gmail.com
# end msmtprc
Si noti che la linea tls_trust_file
dovrebbe puntare a dovunque aver scaricato e installato i certificati da https: // www.thawte.com/roots/index.html .
ho messo il mio in ~/Dropbox/Thawte Roots
modo che io possa avere su tutti i miei Mac.
Allora avete bisogno di un file ~/.mailrc
dire dove si trova il file binario msmtp. Se si utilizza brew
sarà /usr/local/bin/msmtp
modo che il file sarebbe simile a questa:
set sendmail="/usr/local/bin/msmtp"
L'ultima ma fondamentale passo è fare in modo vostro portachiavi ha le informazioni esattamente nel formato msmtp si aspettano che:
Credo che copre la maggior parte dei dettagli. Vedere http: / /www.tuaw.com/2010/05/04/msmtp-a-free-tool-to-send-email-from-terminal/ se si desidera un paio di dettagli.
Il modo più semplice per inviare la posta è attraverso una sessione telnet con il server SMTP del provider / network. Dopo aver contattato il server e dopo ogni comando il server di rispondere se accetta il comando con qualcosa come "250 OK", o se non con un messaggio di errore.
Tutti i dettagli possono essere trovati in RFC2821 - Simple Mail Transfer Protocol, Google per esso. Questo modo di base è ideale per testare il motivo per cui qualcosa va storto invio di posta elettronica, ma penso che sia abbastanza complicato da copione si prova completa.
In primo luogo ottenere un'interfaccia a riga di comando sul computer, avviando Terminal. Si prosegue poi con i seguenti comandi, uno dopo l'altro.
Aprire una sessione telnet alla porta 25 del server SMTP del proprio provider / di rete
telnet name_or_ip_of_smtp_server 25
dire ciao più l'internetname del provider / network, come abc.com
EHLO name_of_your_network
un from = è necessaria indirizzo di ritorno,
MAIL FROM:<your_email_adress>
dare una o più destinazioni,
RCPT TO:<destination_email_address>
RCPT TO:<second_destination_email_address>
RCPT TO:<etc_destination_email_address>
dire al server che si desidera iniziare a inviare i dati
DATA
Ora che il server deve rispondere è possibile iniziare a inviare la posta e va in dati in modalità
your data
more data
etc
ora finire i dati con un punto come solo char su una linea
.
il server torna al comando-mode in modo da poter uscire da
QUIT
Questo ha funzionato per me, è stato scritto con Lion in mente, ma lavora per Mountain Lion. Btw questo sta usando Gmail, quindi se non sei ...
Non hai bisogno di scaricare nulla! (Solo l'installazione di un account Gmail)
http://www.anujgakhar.com/2011/12/09/using-macosx-lion-command-line-mail-with-gmail-as-smtp/
Configura Postfix per il file SMTP di Gmail Modifica /etc/postfix/main.cf
sudo vim /etc/postfix/main.cf
e aggiungere in seguito al di sotto delle relayhosts commentate: -
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_sasl_mechanism_filter = plain
Genera sasl_password se non esiste già
sudo vim /etc/postfix/sasl_passwd
e immettere nel seguente: -
[smtp.gmail.com]:587 username@gmail.com:password
eseguire i seguenti comandi
sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo launchctl stop org.postfix.master
sudo launchctl start org.postfix.master
e si è fatto ....
Ora, si dovrebbe essere in grado di inviare messaggi di posta elettronica all'interno della riga di comando per esempio per inviare il contenuto di una directory come un albero a un indirizzo e-mail
tree /var/www/somefolder | mail -s "contents" your@yourdomain.com
mtcmail è un'altra opzione: http://www.macupdate.com/app / mac / 33505 / mtcmail-cli .
[Ignora questo testo aggiuntivo. Aggiunto perché: il corpo deve essere di almeno 30 caratteri; immesso 27.]
Si può voler controllare postfixconf che consente e configura OS X per inviare messaggi di posta elettronica dal comando linea (usando il vostro ingresso).
Si basa sulla configurazione di postfix che sono ben documentate sul web qui , qui e qui .
Dal basa l'Unix, è possibile utilizzare sendmail di comando.