Come configurare sendmail per l'inoltro attraverso un server specifico


11

Ho una piccola configurazione del server di casa dietro il mio modem via cavo (comunicazioni bresnan). Voglio essere in grado per questa casella di inviare e-mail (non ricevere) per le notifiche e quant'altro.

Cosa ho già fatto:

  • Ho installato e configurato sendmail.
  • Ho aggiunto mail.bresnan.netcome mia SMART_HOSTdirettiva.

Quello che credo sia il problema

Quando tento di inviare un'e-mail, nel registro di posta ricevo quanto segue:

Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530: from=aburns, 
  size=140, class=0, nrcpts=1, 
  msgid=<201012221724.oBMHOHrs001530@bresnan.net>, 
  relay=aburns@localhost
Dec 22 10:24:17 batcave sm-mta[1531]: oBMHOHWZ001531: from=<aburns@bresnan.net>, 
  size=397, class=0, nrcpts=1,
  msgid=<201012221724.oBMHOHrs001530@bresnan.net>,
  proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530:
  to=<my@work-address.com>, ctladdr=aburns (1000/1000),
  delay=00:00:00, xdelay=00:00:00, mailer=relay,
  pri=30140, relay=[127.0.0.1] [127.0.0.1],
  dsn=2.0.0, stat=Sent (oBMHOHWZ001531 Message accepted for delivery)
Dec 22 10:24:18 batcave sm-mta[1517]: oBMH9mVv001357:
  to=<my@work-address.com>, ctladdr=<aburns@bresnan.net>
  (1000/1000), delay=00:14:30, xdelay=00:00:42, mailer=relay,
  pri=300339, relay=pmx0.bresnan.net. [69.145.248.1],
  dsn=4.0.0, stat=Deferred: Connection timed out with pmx0.bresnan.net.

Puoi vedere dove il messaggio è accettato per il recapito dal mio server sendmail, quindi dove tenta di passare al server di bresnan e il timeout.

Questa è la mia domanda. I lettori di Asstute noteranno che pmx0.bresnan.netnon è quello che ho SMART_HOSTimpostato la mia direttiva. Questo è il MXserver (esterno?) Per il dominio bresnan.com/net. Apparentemente bresnan ha la sua rete configurata in modo che non puoi accedere a questo server dalla propria rete e invece devi usare il mail.bresnan.netserver (al quale posso collegarmi). Il problema è che non so come dire a sendmail di usare questo server e non il dominio .

Quello che ho provato

  • Impostazione di una voce host in modo che il server pmx0 punti all'indirizzo IP di posta. Non funziona, il che ha senso dato che sendmail sta ovviamente eseguendo una query MX per trovare il server che restituisce l'IP, quindi non è mai necessario eseguire una risoluzione DNS "normale" in modo che il file hosts non venga mai coinvolto.

La correzione (per tutta la posta in uscita):

Ancora una volta, gli oggetti di scena vanno su webmin (vedi nota sotto) per aiutarmi a imparare questo. Se inserisci il tuo smarthost con parentesi quadre che indicano a sendmail di non effettuare una ricerca MX, quindi: define('SMART_HOST','[69.145.248.18]')(Correggi le virgolette-> backtick) funziona effettivamente senza una tabella mailer.

La correzione (per domini specifici):

Come indicato di seguito mailertableè necessario impostare a . Tuttavia, come sottolineato nella pagina man , anche questa funzione deve essere abilitata nel tuo sendmail.mcfile.

Inoltre, il percorso del mailer non impone a sendmail di utilizzare il server specificato per tutte le operazioni, ma si basa sull'indirizzo del destinatario. Questo in realtà è OK per me in quanto ho solo bisogno di inviare a pochi domini (Gmail, Google ospitato e il mio lavoro).

Riepilogo :

  • Aggiungi FEATURE('mailertable')al tuo sendmail.mcfile. (nota che la prima citazione dovrebbe essere un backtick.
  • Crea il tuo /etc/mail/mailertablefile (Vedi la pagina man )
  • Crea un file map: sudo makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
  • Ricostruisci le tue configurazioni make -C /etc/mail
  • Riavvia sendmail: service sendmail restart

NOTA: I altamente consiglia di utilizzare WebMin a modificare / ricostruire questi file. Senza di esso sarei impazzito cercando di capire perché il mio file mailertable veniva ignorato.


Possiamo vedere il tuo sendmail.mc?
Larks

Quando hai apportato modifiche al file di configurazione sendmail.mc, hai riavviato sendmail dopo ogni modifica?
ewwhite,

Risposte:


7

Puoi aggirare la ricerca MX aggiungendo una breve voce nel tuo /etc/mail/mailertablefile sendmail .

Il contenuto del file dovrebbe probabilmente avere una sola riga come:

bresnan.net       esmtp:[69.145.248.18]

Salvare il file e riavviare sendmail (o ricostruire sendmail.cf se deve essere fatto manualmente).


2
La tua risposta è stata corretta; tuttavia ho dovuto fare alcuni passi aggiuntivi. Per gli altri che riscontrano questo problema, vedi la mia modifica sopra.
ErebusBat,
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.