Come viene effettivamente inviata la posta quando utilizzo il comando "mail" di Linux?


17

Quale account di posta elettronica viene utilizzato per inviare un'e-mail quando si utilizza il mailcomando dal terminale Linux come in:

echo "Body of email" | mail -s "Subject" abc@def.com

Se le e-mail non vengono inviate, è necessario specificare il nome utente e la password di un indirizzo e-mail di invio? Tutti i mailtutorial che ho letto non specificano nulla sull'indirizzo del mittente.

Modifica: Quindi se ricevo un messaggio di errore con l'effetto di "Invio a domini remoti non supportati", questo significa che il mio ISP ha bloccato l'invio di e-mail? C'è un modo per aggirare questo? Grazie.

Risposte:


12

Quale account di posta elettronica viene utilizzato per inviare un'e-mail quando si utilizza il comando mail dal terminale linux come in:

Nelle configurazioni predefinite, è lo stesso account utilizzato per accedere. Sul computer è installato un programma server di posta (un MTA); di solito Postfix o Exim4, a volte Sendmail o qmail.

L'indirizzo e-mail di questo account è o , da cui è possibile ottenere l'FQDN . Tuttavia, al momento non è possibile ricevere posta su questo account, poiché l'MTA è configurato per "solo posta locale" (come dice il messaggio di errore riportato di seguito) e non accetterà messaggi dall'esterno.your-login@hostnameyour-login@fqdnhostname -f

Modifica: Quindi se ricevo un messaggio di errore con l'effetto di "Invio a domini remoti non supportati", questo significa che il mio ISP ha bloccato l'invio di e-mail? C'è un modo per aggirare questo?

No; questo messaggio di errore viene restituito dal tuo computer. Il server di posta è configurato per trasferire solo posta locale - da un utente all'altro (più comunemente, dal demone cron se un cronjob fallisce). Di solito questi messaggi vanno a e sono leggibili utilizzando , , o programmi simili. (IIRC, Thunderbird aveva anche la capacità di importare spool di posta locale.)/var/mail/loginmailmuttre-alpine

Non è difficile riconfigurare il server di posta per inviare e ricevere posta da / verso altri siti; a seconda dell'MTA installato e della distribuzione Linux, anche un singolo comando potrebbe essere sufficiente: ad esempio, dpkg-reconfigure postfixse il sistema è Debian con Postfix.

Tuttavia, immagino che tu lo stia usando su un personal computer, quindi sarebbe meglio usare un account di posta esterno, ad esempio il tuo indirizzo Gmail se ne hai uno. Scopri quale MTA è installato (su Ubuntu / Debian, dpkg -S /usr/sbin/sendmailti dirà), quindi google per " program-name relay gmail" per un tutorial.

In alternativa, installare un MTA appositamente progettato per l'inoltro; msmtpe esmtpsono buone scelte e facili da configurare.


Grazie per tutto l'aiuto. Il comando pastebin che hai suggerito ha finito per soddisfare le mie esigenze. Lavorerò sulla configurazione di uno smarthost per l'inoltro della posta.
user001

4

Ad esempio, è il nome dell'account e il nome host dell'utente che invia root@myserver. Non è necessariamente una vera casella di posta che può ricevere e-mail dall'esterno.


2
@ User001 Fa questo aiuto?
Daniel Beck

2
@ user001: in questi casi, potresti dare un'occhiata a pastebins , alcuni dei quali sono facili da usare dalla riga di comando. Ad esempio curl -Fsprunge=\<- http://sprunge.us < myfile,.
user1686

1
@ user001: hai il exim4demone in esecuzione? Non sudo mailqelencare il messaggio? Hai controllato i registri del server di invio ( /var/log/exim4/mainlog) e del destinatario (se possibile)?
user1686

1
@ user001: è possibile che l'ISP stia bloccando la connessione. Ciò è particolarmente comune nelle connessioni domestiche: tutto ciò che viene portato alla porta 25 viene semplicemente eliminato, al fine di ridurre le enormi quantità di spam inviato da PC infetti. ( Tuttavia, è ancora possibile configurare l' inoltro , che utilizza una porta e un'autenticazione SMTP diverse.)
user1686

1
@ user001: l'inoltro avviene tramite un altro server di posta (a volte chiamato "smarthost"). Gli amministratori della tua rete potrebbero aiutarti in questo, se l'Accademia ha il suo dominio di posta. In caso contrario, potresti configurare il tuo server per l'invio dalla tua casella di posta Gmail o simile; tutorial qui .
user1686

4

Il comando mail invia e-mail con l'account corrente, ovvero nome utente @ dominio; tuttavia, in genere i provider di servizi Internet impediscono agli utenti di eseguire i propri server di posta (bloccando le porte pertinenti) per evitare lo spam e pertanto la tua e-mail non viene inviata.

Ma il problema di invio potrebbe anche essere correlato alla configurazione della tua macchina.

Modifica: abilita la posta a inviare e-mail da es. Gmail. Inserisci le seguenti informazioni nel tuo file ~ / .mailrc, che fornisce la configurazione di base alla posta. Tuttavia, assicurati che questo file sia accessibile solo a te (usando chmod 600 ~ / .mailrc)

account gmail {
set smtp-use-starttls
set ssl-verify=ignore
set smtp=smtp.gmail.com:587
#set smtp-auth=login
set smtp-auth-user=name@gmail.com
set smtp-auth-password=pass
set from=name@gmail.com
}

Nel qual caso l'e-mail verrà da "nome@gmail.com".


@ user001: vuoi solo essere in grado di inviare mail (ad es. da script) o anche di riceverle?
Karolos,

Solo per essere in grado di inviare un messaggio da uno script. Grazie.
user001

2
Si noti che questa mailrcsintassi è specifica di heirloom-mailx. Alcuni sistemi potrebbero venire con GNU mailutilso BSD mailx, entrambi i quali si lamenterebbero di errori di sintassi. (Se ciò accade, suggerisco di installare heirloom-mailx- o anche meglio, mutto re-alpine.)
user1686

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.