invio di posta dalla riga di comando di Linux


1

È possibile inviare posta dal terminale Linux a qualsiasi account Gmail.

Se possibile, quali sono le configurazioni necessarie.

Ho provato con mailx e sendmail ma non funziona.

Ho anche provato con Mutt in questo modo

echo "test" | mutt -s this-is-my-subjest XXXXX@gmail.com

ma non usare ...

Sto usando CentOS 6.2


Cosa non funziona? Hai ricevuto un messaggio di errore? Hai controllato qualche file di registro?
Emil Vikström

Non ricevo alcun messaggio di errore. ma non ricevere anche la posta.
max

Dovresti riuscire a trovare un file di registro /var/log/. Viene spesso chiamato maillog o simili. Cosa dice dopo aver provato il tuo comando?
Emil Vikström

niente, apparirà il prossimo prompt dei comandi.
max

in var / log / maillog la sua rappresentazione Network is unreachable
max

Risposte:


4

Vorrei consigliare di usare sendEmail:

sendEmail-1.56 by Brandon Zehm <caspian@dotconf.net>

Synopsis:  sendEmail -f ADDRESS [options]

  Required:
    -f ADDRESS                from (sender) email address
    * At least one recipient required via -t, -cc, or -bcc
    * Message body required via -m, STDIN, or -o message-file=FILE

  Common:
    -t ADDRESS [ADDR ...]     to email address(es)
    -u SUBJECT                message subject
    -m MESSAGE                message body
    -s SERVER[:PORT]          smtp mail relay, default is localhost:25

  Optional:
    -a   FILE [FILE ...]      file attachment(s)
    -cc  ADDRESS [ADDR ...]   cc  email address(es)
    -bcc ADDRESS [ADDR ...]   bcc email address(es)
    -xu  USERNAME             username for SMTP authentication
    -xp  PASSWORD             password for SMTP authentication

  Paranormal:
    -b BINDADDR[:PORT]        local host bind address
    -l LOGFILE                log to the specified file
    -v                        verbosity, use multiple times for greater effect
    -q                        be quiet (i.e. no STDOUT output)
    -o NAME=VALUE             advanced options, for details try: --help misc
        -o message-content-type=<auto|text|html>
        -o message-file=FILE         -o message-format=raw
        -o message-header=HEADER     -o message-charset=CHARSET
        -o reply-to=ADDRESS          -o timeout=SECONDS
        -o username=USERNAME         -o password=PASSWORD
        -o tls=<auto|yes|no>         -o fqdn=FQDN


  Help:
    --help                    the helpful overview you're reading now
    --help addressing         explain addressing and related options
    --help message            explain message body input and related options
    --help networking         explain -s, -b, etc
    --help output             explain logging and other output options
    --help misc               explain -o options, TLS, SMTP auth, and more

Funziona molto bene per me. Ricordati di usare TLS con gmail. È necessario fornire i dettagli del server che invierà l'e-mail con tali opzioni:

    -s SERVER[:PORT]          smtp mail relay, default is localhost:25
    -xu  USERNAME             username for SMTP authentication
    -xp  PASSWORD             password for SMTP authentication

È meglio per me in quanto consente di aggiungere allegati e può essere facilmente inserito negli script.

Esempio di utilizzo:

sendEmail -f x1user@gmail.com -t x2user@gmail.com -s test -m messageBody -s smtp.gmail.com -xu x1user@gmail.com -xp xxxxxpass -o tls=auto
Aug 17 16:21:37 z sendEmail[22420]: Email was sent successfully!

puoi fornire un semplice esempio?
max

1
sicuro che lo inserirò nella risposta in basso
mnmnc

sendmail può fare molto di più che mailto, ma ho trovato che è piuttosto complicato, uso sendmail in alertscript per ottenere tutto, ma per inviare semplicemente una mail, mailto è piuttosto semplice, penso. Come usare un fucile per sparare una zanzara per me.
Anarko_Bizounours

possibilmente. ma quello che probabilmente ti sei perso - sto proponendo E -mail. non sendmail. non ho mai avuto la possibilità di usare sendmail ma sendEmail fa tutto ciò di cui ho bisogno.
mnmnc

nessun comando sendEmail installato, quindi ho provato yum install sendEmail ma il suo dare No package sendEmail available
max

3

Il mail il programma terminale dovrebbe fare il trucco. Di solito funziona "immediatamente" per consentire agli utenti / programmi di inviare messaggi localmente, all'interno del sistema.

genere mail -s 'subject line' someone@gmail.com e premi return. Quindi digita il messaggio e chiudi / invia utilizzando Ctrl-D.


Ho provato questo, ma non funziona ... è necessaria alcuna configurazione, prima di fare questo?
max

1
Puoi provare a inviare una email a te stesso sulla macchina: mail -d -s subject your name@localhost. L'opzione -d fornirà l'output di debug per dirti che cosa sta causando il problema.
danielcraigie

Su alcuni sistemi devi usare mailx invece di posta.
mdpc

0

normalmente non hai alcuna configurazione specifica, CentOS ha ottenuto per impostazione predefinita un server di posta.

Se ricordo che il comando è mailto quindi digita le informazioni (da, oggetto etc, ...) e digita il testo, e quando hai finito di digitare ctrl + D, otterrai EOT.

Tieni presente che il tuo server di posta userà le tue informazioni utente, qualcosa del genere from : user@pcname ma non sono con Linux oggi, quindi non posso verificarlo.

Spero che questo ti sia d'aiuto.

MODIFICARE :

lì il link alla pagina man O'reilly:

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.