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.

È stato utile?

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, sono parte del comando

MAIL FROM:<your_email_adress>

dare una o più destinazioni, sono parte del comando

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a apple.stackexchange
scroll top