Menu Content/Inhalt
Home arrow Postfix arrow Der queue-Manager
Der queue-Manager PDF Drucken E-Mail

root# postconf queue_service_name
queue_service_name = qmgr
root#

Der Queue-Manager (qmgr) ist das Herzstück des Postfix-Systems. Er verwendet folgende fünf queues:
  • incoming
  • active
  • deferred
  • hold
  • corrupt
die zu finden bzw. festzulegen sind durch den Parameter

root# postconf queue_directory
queue_directory = /var/spool/postfix
root#

Nachstehende Skizze soll zeigen, wie qmgr arbeitet aber
vorher noch kurze Erläuterung: links stehen untereinander die beiden Input Agents, ganz rechts stehen die delivery-Agents, und dazwischen sind drei queues - Incoming-queue, die zeigt auf Active-queue, die zeigt weiter auf delivery-agents, ODER in die deferred-queue ...
Beginn Skizze

+--------------------------------------------------------------+
| Input Agents				       Delivery-Agents |
|==============================================================|
|  postdrop |			      	      |		       |
|	    |--->incoming-->active-->         | smtp           |
|  smtpd    |                 |               | local	       |
|	    |                 |               | virtual	       |
|	    |          	   deferred           | relay	       |
+--------------------------------------------------------------+

Ende Skizze
Die Skizze zeigt den Weg von eMail im Mailsystem. Irgendwie muss die eMail in die "incoming"-queue gelangen - also schauen wir uns das zuerst an.

Wenn eine eMail von ausserhalb hereinkommt (Ziel eMail-Adresse ist am server), dann wird diese eMail vom smtpd entgegengenommen, der sie in die incoming-queue legt. Der queue-Manager verschiebt die eMail in die active-queue, damit diese für einen der delivery-agents erreichbar ist. "local" stellt die eMail lokal zu, und "virtual" für virtuelle user; und so kommt die eMail in die Mailbox des jeweiligen users.

Wenn Sie eine eMail schicken, dann wird diese vom postdrop übernommen, der sie in die maildrop schickt, von wo sie der pickup-daemon herausholt und in die incoming-queue weiterreicht, von wo sie der qmgr in die active-queue legt und den smtp darüber informiert, das es Post zu versenden gibt.

Solange alles in Ordnung ist, schaut das ja ziemlich simpel aus, nicht warh?

Wenn postfix versucht, eMails an langsamere, langsame oder nicht vorhandene eMail-Server auszuliefern, dann bleiben die eMails etwas länger in der active-queue. Postfix wartet 30 Sekunden, um ein entferntes System zu erreichen.

Wenn es länger dauert, dann wird die eMail aus der active-queue für eine gewisse Zeit in eine andere queue verschoben, nämlich in die deferred queue (Verzögerungsqueue), was der Fall ist bei temporären Problemmen mit DNS oder dem Zielserver.

Wenn eine eMail unzustellbar ist oder es permanent Probleme mit einer eMail gibt, dann wird die eMail an den Absender zurückgesendet, was man "bounce" nennt.

root# postconf bounce_size_limit
bounce_size_limit = 50000
root#

dieses imit legt in bytes fest, wieviel von der Nachricht an den Absender zurückgsendet werden soll.

Wenn die Zustellung einer eMail aus Gründen von DNS-Problemen oder temporären Ausfall vom Zielserver oder bei internen Fehlkonfigurationen, dann wird die Nachricht mit einem Zeitstempel in die deferred-queue versehen. Die nachricht bleibt dann für eine gewisse Zeit in der deferred queue, bevor es zu einem erneuten Zustellversuch kommt.

qmgr verschiebt mail in active queue - jetzt hat er aber eMail in der incoming queue und in der deferred-queue, und deshalb holt der qmgr abwechselnd eMail von der incomig- und von der deferred-queue in die active queue (vorausgesetzt, es ist genügend Platz in der active queue).

Die queues werden regelmässig abgefragt. Jedes Mal, wenn postfix erneut erfolglos versucht hat, eine Nachricht zuzustellen, versoppelt sich die Zeit des Abwartens bis zum nächsten Zustellversuch; postfix wartet also immer länger, je öfter es versuchen muss, eine Nachricht zuzustellen. Die maximale Zeit, die das postfix-System versuchen darf, eine nachricht zuzustellen, wird in dem Parameter "maximal_queue_lifetime" festgelegt.

root# postconf maximal_queue_lifetime
maximal_queue_lifetime = 5d
root#

In welchen Abständen postfix die deferred-queue checken soll, das lässt sich festlegen in "queue_run_delay"

root# postconf queue_run_delay
queue_run_delay = 1000s
ROOT#

root# postconf minimal_backoff_time
minimal_backoff_time = 1000s
root# postconf maximal_backoff_time
maximal_backoff_time = 4000s
root#

Dieses Zeitintervall legt fest, wie oft postfix versuchen soll, eine eMail in deferred-queue zuzustellen. Die errechnete Zeit für eine erneute Zustellung darf 4000s nicht überschreiten und 1000s nicht unterschreiten.

qmgr sorgt für Auslieferung der eMail durch Aufruf der geeigneten MDA's.
Postfix achtet darauf, Zielsysteme NICHT zu überlasten, und stimmt seine Aussendungen darauf ab.

Jeder Transport kann ein Limit für maximale Prozesse besitzen, die in der maxproc-Spalte des master.cf-files fetgelegt werden kann. Wenn es hier keinerlei Fixierung gibt, dann greift der "default_process_limit"-Parameter

root# postconf default_process_limit
default_process_limit = 100
root#

Beschädigte bzw. unleserliche eMail kommen in die "corrup"-queue. Warum nicht gleich löschen? Wenn diese in der corrupt-queue liegen, dann kann man wenigstens noch einen Leseversuch starten.

 
< Zurück   Weiter >

Scroll-news

Mailingliste:
http://mlists.in-berlin.de/mailman/listinfo/lieo-mlists.in-berlin.de 

 

Das Forum ist online gegangen

 


Who's Online

Aktuell 142 Gäste online

Google AdSense