Come configuro exim4 per inviare la posta attraverso un server di posta ssl smtp protetto da password?


19

Vorrei che i miei cronjobs potessero inviare posta dal mio computer di casa. I miei server configurano exim4 in questo modo:

dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1'
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

Tuttavia, a casa, il mio ISP blocca la posta inviata direttamente tramite un firewall. Ho un server ssl smtp protetto da password che potrei instradare la posta, ma non sono riuscito a capire come configurare exim4 per farlo funzionare. Spero che qualcuno possa darmi un esempio di configurazione in cui posso collegare il nome host, il nome utente, la password e "usare ssl" per far sì che invii posta attraverso un singolo server SMTP.

Risposte:


25

Alla fine ho trovato una serie dettagliata di istruzioni di Tony Scelfo che funzionano davvero . Sembra che devi usare la sicurezza del livello di trasporto (TLS) sulla porta 587. Non ho ottenuto SSL SMTP per funzionare.

Prima esecuzione sudo dpkg-reconfigure exim4-confige utilizzare queste opzioni di configurazione:

  • Tipo generale di configurazione della posta: posta inviata da smarthost; ricevuto via SMTP o fetchmail
  • Nome e-mail di sistema: <nome host>
  • Indirizzo IP da ascoltare per le connessioni SMTP in entrata: 127.0.0.1
  • Altre destinazioni per le quali è accettata la posta: <il tuo nome host>
  • Macchine per inoltrare la posta per: <lasciare vuoto>
  • Indirizzo IP o nome host dello smarthost in uscita: mail.example.com::587
  • Nascondere il nome della posta locale nella posta in uscita?
    • Sì: tutta la posta in uscita sembrerà provenire dal tuo account Gmail
    • No: la posta inviata con un'intestazione del nome del mittente valida manterrà il nome del mittente
  • Mantenere il numero minimo di query DNS (dial-on-demand)? No
  • Metodo di consegna per la posta locale: <scegli quello che preferisci>
  • Dividere il file di configurazione in piccoli file? Sì (è necessario modificare uno dei file successivamente)

Quindi esegui sudo vi /etc/exim4/passwd.cliente aggiungi le seguenti righe per il tuo host di posta e tutti gli alias che ha (trovato attraverso nslookup). Sostituisci <indirizzo e-mail> e <password> con l'account attraverso il quale instradare la posta):

mail.example.com:<email address>:<password>
mail.yourhosting.provider:<email address>:<password>

Dopo aver modificato il passwd.clientfile, esegui sudo update-exim4.confche integrerà le modifiche nella tua configurazione Exim4.

Eseguire sudo /etc/init.d/exim4 restarte assicurarsi che il servizio si arresti e si avvii correttamente. Se il servizio non è in grado di riavviarsi, è probabile che qualcosa sia andato storto durante la modifica del passwd.clientfile.

Se Exim4 è stato riavviato, andare avanti ed eseguire sudo tail -f /var/log/exim4/mainlogper guardare i registri della posta. In un'altra finestra, invia un'e-mail dal tuo sistema e assicurati di vedere un record che contiene R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com ... X=TLS-1.0:RSA_ARCFOUR_MD5:16. I X=TLSmezzi che la mail è inviato con Transport Layer Security che è quello che vuole.


1
Non è necessario "dividere il file di configurazione in file di piccole dimensioni" poiché in /etc/exim4/passwd.cliententrambi i casi è un file separato.
Esegui CMD il

Si noti che la specifica della porta SMTP potrebbe non funzionare con tutti i server di posta. Ma exim4utilizzerà TLS comunque con la porta SMTP predefinita se le MailServer offre. Può essere verificato guardando le X=informazioni in/var/log/exim4/mainlog
Esegui CMD il

Per favore, indicami la direzione corretta. Non voglio duplicare alcune domande. Cosa succede se desidero che tutti gli utenti impostino le proprie password stmp nelle loro directory HOME? Exim4 cercherà vari passwd.client? Tx
Dr Beco,

Mi sembra una nuova domanda
Stephen Ostermiller il

@DrBeco Se hai una domanda specifica che non è specifica a questa domanda o risposta, ti preghiamo di farla come domanda .
Thomas Ward

5

Se il tuo ISP richiede l'autenticazione, dovresti impostare dc_smarthost sul nome host del server di posta e la combinazione di porte utilizzate dal tuo ISP e dc_eximconfig_configtype su "smarthost" in questo modo:

dc_eximconfig_configtype='smarthost'
dc_smarthost='mail.example.com::587'

Quindi, puoi aggiungere le tue credenziali in questo /etc/exim4/passwd.clientmodo:

mail.example.com:username:password

Quindi, qualsiasi posta inviata tramite il tuo server exim4 verrà instradata attraverso questo host di posta.


10
In update-exim4.conf ho inserito due punti per la linea smarthost, come in dc_smarthost='mail.example.com::587'e ha fatto la differenza! Finalmente ha iniziato a inviare posta attraverso.
Marcos,

+1 Questo è un errore molto comune che ho visto in molti tutorial.
TwystO

4

Questo funziona molto bene per me. Il mio ISP utilizza la porta 25 e dc_smarthost='myisp.mail.server:25' dopo aver modificato questi file ed emettere i comandi:

  1. update-exim4.conf
  2. /etc/init.d/exim4 restart

Dopo aver effettuato un test per inviare un'e-mail tramite il campione exim4 classico come:

echo "content of mail body with pt-br chars ação avião língua é essa em 1609." | mail -s "Confirmar 16DOM" my-user-in-isp@my-domain-url

E questi vanno bene nella posta in arrivo di my-userin my-domain-url.

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.