Sendmail + ETRN

Dan Lukes dan at obluda.cz
Fri Mar 19 17:41:39 CET 2004


Peter Rosa wrote:

>>Ale nebylo by nejjednodusi proste v cronu pravidelne spoustet nejakej
>>kratouckej skript, kterej se telnetem pripoji na ten server a udela tam

> Jasne, to som skusil ako prve:
> #!/bin/sh
> OURSITE=@domena
> MAILSERVER=mail-relay
> TELNET=/usr/bin/telnet
> PORT=25
> echo "etrn $OURSITE" | $TELNET $MAILSERVER $PORT
> exit 0
> 
> Problem je, ze to vzdy vypise "Connection closed by remote host" a dost.
> Alebo je to spravna hlaska ?

	No, tahle "hlaska" se vypisuje kdyz telnet uzavira spojeni (respektive, 
kdyz ho uzavrela protistrana). Nemelo by to ale byt to jedine, co telnet 
vypise ...

	Kazdopadne, v teto chvili si nejsem jist, zda je telnet schopen spravne 
pracovat "v davkovem" rezimu, a krome toho, telent protokol je pomerne 
sofistikovany protokol - a neni totozny s "RAW" spojenim, ktere 
potrebujete pro SMTP. Mohlo by se tedy stat, ze "protiserver" je zmateny 
z telnet-hanshakingu, pripadne je primo aktivne nastaven, aby telnet 
spojeni odmital (to je, samozrejme, pouze hypoteza).

	Kazdopadne, v portech/packages mate port/package "socket-1.1", coz je 
presne to, co provede "dalkove spojeni" aa propoji ho se svym vstupem a 
vystupem. Takze je to na podobnou aplikaci pravdepodobne "bezpecnejsi" vec.

	K tomu je potreba poznamenat take, ze server se nemusi bavit s 
klientem, ktery nedodrzuje pravidla SMTP protokolu (v tomto pripade 
schazi "HELO"), pripadne nemusi byt ochoten k "ETRN" vubec (nebo jen po 
autentizaci a pod). Jak je na tom ten konkretni server je potreba 
vyzjistit u jeho spravce, pokud se to nepodari vyresit "pokusem". Jinak 
- ja si nikdy nepamatuju, jestli u parametru ETRN ma nebo nema byt ten 
zavinac (ja tam vzdy pisu obe dve varianty, tedy dva ETRN ... ;-( ).

	Jinak ale - ac to uz neni primo "o FreeBSD", zkusim mirne a strucne 
naznacit, jak probiha dorucovani posty (a asi lze jen doporucit, abyste 
si to trochu nastudoval). Mail se dodava podle MX zaznamu (neexistuje-li 
pak podle A, ktere se povazuje za MX s prioritou 0) na nektery z MX 
stroju s nejlepsi prioritou. Nepodari-li se takovy stroj dosahnout, tak 
na stroje s priritou vyssi. Pokud uz klient sam je na "MX" seznamu, pak 
nikdy nedorucuje dopis na stroj se stejnou nebo nizsi prioritou nez ma 
sam. Pokud se nelze spojit na zadny vyhodujici server, zustava dopis ve 
fronte (maximalne po spravcem urcenou dobu), pokusy o doruceni se 
opakuji ve spravcem urcenych intervalech.

	Pokud se zprava dostala na stroj, ktery ma MX s nejnizsi prioritou v 
seznamu MX (coz nemusi byt nutne nula), pak je to zprava lokalni, ledaze 
je v tabulce "mailtertable" uvedeno,z e se ma dorucit jinam (tohle plati 
jen pro sendmail). Pokud se ma dopis dorucit nekam jinam, pak se tak 
deje ve spravcem stanovenych intervalech a po spravcem stanovenou dobu 
(pokdu se to nepovede hned).

	Jinymi slovy - pokud to vase "vnejsi" MX ma horsi prioritu nez to vase 
vnitrni, tak se i bez ETRN bude jednou za cas pokouset dorucit dopisy 
dovnitr - tim ETRN to ale lze urychlit (zajistit, ze se pokusi hned a 
nez az ve stanovenou dobu). Pokdu bdue mit vnejsi MX nejnizsi priprotu, 
ale mailertable na nem bude prislunou postu smerovat na MTA "dovnitr", 
bude to fungovat stejne.

	Rozdil mezi temito resenimi je v ohleduplnosti vuci uzivatelum 
Internetu - pokdu je vas "vnitrni" MX prevazen dostupny a vypadky jsou 
"vyjimecne", pak je vhodne reseni "vevnitr nejlepsi MX/venku horsi". 
Tohle resni neni navic "MTA" specific (a ja nevim, jestli vas vnejsi MTA 
je sendmail). Pokud by vypadky vnitrniho MTA byly castejsi nez 
vyjimecne, pak lze takovou konfiguraci vnimat jako bezohlednou a 
vhodnejsi je pouzit "mailertable" ...


						Dan






More information about the Users-l mailing list