A sendmail(8) a FreeBSD alapértelmezett levéltovábbító ügynöke (Mail Transfer Agent, MTA). A sendmail feladata fogadni a levelező kliensektől (Mail User Agent, MUA) érkező leveleket és kézbesíteni azokat a konfigurációs állományában megadott megfelelő levelezőnek. A sendmail hálózati kapcsolatokat is fogad, képes a helyi postaládákba vagy akár más programoknak is leveleket továbbítani.
A sendmail a következő állományban tárolja beállításait:
| Állomány | Szerep | 
|---|---|
| /etc/mail/access | A sendmail által engedélyezett hozzáféréseket tároló adatbázis | 
| /etc/mail/aliases | A postaládák álnevei | 
| /etc/mail/local-host-names | Azon nevek felsorolása, amelyek számára a sendmail leveleket fogad | 
| /etc/mail/mailer.conf | A levelező programok beállításai | 
| /etc/mail/mailertable | A levelező programok kézbesítési táblázata | 
| /etc/mail/sendmail.cf | A sendmail központi beállításait tároló állomány | 
| /etc/mail/virtusertable | Virtuális felhasználók és tartományok táblázatai | 
Az engedélyezett hozzáféréseket
	tároló adatbázis tartalmazza milyen
	hálózati neveken vagy IP-címeken lehet
	elérni a helyi levelező szervert és azok
	milyen típusú hozzáférést
	kapnak.  A gépek az OK (rendben),
	REJECT (visszautasít),
	RELAY (továbbítás)
	beállításokat alkalmazhatjuk, vagy
	egyszerűen meghívhatjuk hozzájuk a
	sendmail hibakezelő
	rutinját egy adott kézbesítési
	hibával.  Ha egy gépet az OK
	beállítással veszük fel a
	listára, ami egyébként
	alapértelmezés, akkor ez a gép levelet tud
	küldeni egészen addig, amíg a
	végső cél a helyi gép marad.  A
	REJECT beállítással
	felsorolt gépek számára semmiféle
	levelezés nem engedélyezett.  Ha pedig egy
	gép mellett a RELAY
	beállítás jelenik meg, akkor a szerveren
	keresztül tetszőleges címre
	küldhet.
Példa 28-1. A sendmail elérését szabályozó adatbázis beállítása
cyberspammer.com 550 Nem szeretjuk a spammereket FREE.STEALTH.MAILER@ 550 Nem szeretjuk a spammereket another.source.of.spam REJECT okay.cyberspammer.com OK 128.32 RELAY
Ebben a példában öt bejegyzést láthatunk. A táblázat bal felének valamelyik sorára illeszkedő küldőkre a táblázatban a sor jobb felén megjelenő cselekvés érvényesül. Az első két sorban a sendmail hibakezelő rutinjának adunk át hibakódokat. A hozzá tartozó üzenet akkor fog megjelenni a távoli gépen, amikor a tőle érkező levél illeszkedik a bal oldali szabályra. Az ezeket követő bejegyzésben visszalökünk minden olyan levelet, amely az internetről egy adott számítógéptől érkezik, például az another.source.of.spam címről. A következő bejegyzésben az okay.cyberspammer.com címről elfogadjuk a kapcsolódást, ami viszont sokkal pontosabb megjelölés a fentebb szereplő cyberspammer.com sornál. A pontosabban kifejtett nevek felülbírálják a kevésbé pontosan megnevezetteket. Végül az utolsó bejegyzésben engedélyezzük a levelek továbbküldését minden olyan gép számára, amelynek címe a 128.32 előtaggal kezdődik. Ezek tehát képesek ezen a levelező szerveren keresztül bárhova leveleket küldeni.
Az állomány módosítása után az adatbázis frissítéséhez mindig le kell futtatnunk egy make parancsot az /etc/mail/ könyvtárban.
Az álneveket tartalmazó adatbázis virtuális postaládákat sorol fel, amelyek más felhasználókra, állományokra, programokra vagy további álnevekre vonatkozhatnak. Íme néhány példa az /etc/mail/aliases állományban szereplő bejegyzésekre:
Példa 28-2. Virtuális postaládák
root: localuser ftp-bugs: joe,eric,paul bit.bucket: /dev/null procmail: "|/usr/local/bin/procmail"
A formai szabályok egyszerűek: a kettőspont
	bal oldalára kell írni azt a
	postaládát, amely a jobb oldalán levő
	célokra bomlik.  A példa első sorában
	egyszerűen megfeleltetjük a root
	postaládáját a
	localuser
	postaládájának, majd ezt a nevet
	keressük az álnevek adatbázisában.  Ha
	nem találunk már rá illeszkedést,
	akkor az üzenetet a localuser
	nevű helyi felhasználónak
	továbbítjuk.  A következő sorban
	címek listáját láthatjuk.  Ennek
	megfelelően a ftp-bugs
	postaláda címére küldött levelek
	három további helyi postaládára
	mennek tovább: ezek név szerint a
	joe, eric és
	paul felhasználók
	postaládái.  Itt a távoli
	postaládák
	<felhasználó@példa.hu> alakban
	adhatóak meg.  A következő sor az
	állományok használatát
	példázza, ahol konkrétan a
	/dev/null állományba
	irányítjuk át az adott címre
	érkező leveleket.  Az utolsó sorban pedig a
	programok használatára láthatunk
	példát, ahol ebben az esetben a levél egy
	UNIX®-os csövön keresztül a
	/usr/local/bin/procmail szabványos
	bemenetére kerül.
Ha megváltoztatjuk ezt az állományt, akkor utána az adatbázis frissítéséhez ne felejtsük el meghívni a make parancsot az /etc/mail/ könyvtárban.
Ebben az állományban adhatjuk meg, hogy a sendmail(8) milyen hálózati neveket fogadjon el helyi hálózati névként. Ide kell raknunk azokat a tartományokat vagy címeket, amelyektől a sendmail leveleket fogad el. Például, ha a levelező szerver az minta.com tartományból és a level.minta.com címről fogad el leveleket, akkor a local-host-names valahogy így fog kinézni:
minta.com level.minta.com
Az állomány módosításakor a sendmail(8) programot újra kell indítani a változások érvényesítéséhez.
Ahogy a sendmail központi konfigurációs állománya, a sendmail.cf irányítja a sendmail átfogó viselkedését, beleértve mindent az e-mail címek átírásától kezdve a távoli szervereknek küldött elutasító üzenetek küldéséig. Mivel ennyire sokfajta szerepet tölt be egyszerre, ezért ez a konfigurációs állomány meglehetősen összetett és a részletezése meghaladná ennek a leírásnak a határait. Szerencsére az átlagos levelező szerverek esetében ezt az állományt nagyon ritkán kell módosítani.
A sendmail központi konfigurációs állománya a sendmail lehetőségeit és viselkedését meghatározó m4(1) makrókból építhető fel. A pontosabb részleteket a /usr/src/contrib/sendmail/cf/README állományban találjuk meg.
Az állomány megváltoztatása után a módosítások érvényesítéséhez újra kell indítani a sendmail programot.
A virtusertable állomány képezi le a virtuális tartományokhoz tartozó címeket valódi postaládák címeire. Ezek a postaládák lehetnek helyiek, távoliak, az /etc/mail/aliases állományban megadott álnevek vagy állományok.
Példa 28-3. Példa a virtuális tartományok leképezésére
root@minta.com root postmaster@minta.com postmaster@noc.minta.net @minta.com joe
A fenti példában megadtunk egy
	leképezést a minta.com tartományhoz.  Ez az
	állomány úgy dolgozódik fel, hogy
	fentről lefelé illesztődnek a címek,
	egészen az első egyezésig.  Az első
	bejegyzés szerint a <root@minta.com> a helyi
	root felhasználó
	postaládájára képződik le.  A
	következő bejegyzés szerint a
	<postmaster@minta.com> a noc.minta.net címen
	található postmaster
	nevű felhasználó
	postaládájára képződik le.
	Végezetül, ha a minta.com címről eddig
	még semmi sem illeszkedett volna, akkor az utolsó
	leképezés veszi át, amely az minta.com tartományon
	belül az összes többi címre
	küldött levelet a helyi joe
	nevű felhasználó
	postaládájára képezi le.
| Előző | Tartalom | Következő | 
| Az elektronikus levelezés használata | Fel | A levéltovábbító ügynök megváltoztatása | 
Ha kérdése van a FreeBSD-vel kapcsolatban, a következő
		  címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése,
		  kérjük erre a címre írjon: <gabor@FreeBSD.org>.