InterviewSolution
| 1. |
Explain The Working Of Qmail? |
|
Answer» For mail arriving from remote systems, tcpserver RUNS as a daemon listening for incoming connections on the SMTP port. Each time a connection arrives, it runs qmail-smtpd, which receives a message VIA SMTP and calls qmail-queue to queue the message. Regardless of where the message originates, qmail-queue writes the message to a temporary file in the queue/todo directory, putting a new Received: line at the top, and ALSO saves the envelope sender and recipient addresses to files. Then it notifies qmail-send by writing a byte to a "trigger" socket file. qmail-send TAKES the message out of queue/todo, and analyzes each recipient ADDRESS to see if it's local, remote, or virtual. For local addresses, it notifies qmail-lspawn to run qmail-local to do the local deliveries. For each remote address, qmail-send notifies qmail-rspawn to run qmail-remote to do the remote deliveries. For virtual addresses, qmail-send rewrites each virtual address as a modified local address, using the information from the virtualdomains files. For mail arriving from remote systems, tcpserver runs as a daemon listening for incoming connections on the SMTP port. Each time a connection arrives, it runs qmail-smtpd, which receives a message via SMTP and calls qmail-queue to queue the message. Regardless of where the message originates, qmail-queue writes the message to a temporary file in the queue/todo directory, putting a new Received: line at the top, and also saves the envelope sender and recipient addresses to files. Then it notifies qmail-send by writing a byte to a "trigger" socket file. qmail-send takes the message out of queue/todo, and analyzes each recipient address to see if it's local, remote, or virtual. For local addresses, it notifies qmail-lspawn to run qmail-local to do the local deliveries. For each remote address, qmail-send notifies qmail-rspawn to run qmail-remote to do the remote deliveries. For virtual addresses, qmail-send rewrites each virtual address as a modified local address, using the information from the virtualdomains files. |
|