Linux - ServerThis forum is for the discussion of Linux Software used in a server related context.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Can someone tell me or direct me to reading that will let me learn about email sending and delivery?
As I understand things, modern email works like this:
I type my message and SEND
My message gets written to a local file along with some sort of local file "work order"
local software gathers all of the work orders for processing
processing involves connecting to the target domain
after connection, the message file gets passed to the target
after receiving a message file, a server turns some cranks
some of these cranks pass the message along to other servers
eventually, one crank causes notifications of the target addressee "new mail"
I know this is a vast simplification of the efforts of "Mail Transfer Agents[MTA]" and other parts of the system. My questions involve elapsed times and permitted delays.
I remember that email began when system operators had to dial phones and connect modems for each hop in the process. The modems relied on telephone lines that were rarely "leased lines" because they were so expensive based on accumulated connection time. This meant that each email hop might require an elapsed work-day.
We pat our feet and drum our fingers after pressing SEND and can mostly expect delivery in a couple of minutes or less. I know that I've received messages saying, "... still trying to deliver ..." or similar.
What determines how long my local system can take to pass a new message along to the first server?
Are there standards for email forwarding and delivery? For example, does an RFC state governing time-to-delivery, when to give up, and such?
Your mail client passes the mail directly to YOUR mail server (the servername configured in your client - typically your ISP's).
It may be passed to a specific server that handles the outbound mail or may do the job itself.
This should happen within seconds.
This server then determines the server responsible for the domain of the recipient (by querying DNS for the MX record for the domain) and attempts to deliver it directly (there may be several more "internally routed" mail servers within the domain for your mail to actually pass through, but the listed MX servers are the only ones that recieve that domains mail directly from the world).
If it gets rejected (typically with a 5xx series error code) or fails to find a server for that domain, it will generate a 'bounce' message to let you know.
If it gets deferred (typically a 4xx series error code) or encounters a temporary DNS error, it will requeue the mail to try again on subsequent queue runs.
The retry period, retry notification time, and give up time is configurable and will vary from server to server.
Commonly, retry is on the next pass, then 10 mins, then 30, then hourly or so.
"Retrying" notification isn't commonly done.
4 days is a common time until it gives up and sends you a FAILED notification.
Last edited by descendant_command; 09-06-2013 at 10:07 PM.
Your mail client passes the mail directly to YOUR mail server (the servername configured in your client - typically your ISP's). It may be passed to a specific server that handles the outbound mail or may do the job itself. This should happen within seconds.
I believe there is still a message-file handoff on my local workstation.
Eons ago, I think things ran on a cron cycle looking for outbound messages.
Today, I think that creating a new outbound message pokes and wakes the local daemon.
Quote:
Originally Posted by descendant_command
The retry period, retry notification time, and give up time is configurable and will vary from server to server. Commonly, retry is on the next pass, then 10 mins, then 30, then hourly or so. "Retrying" notification isn't commonly done. 4 days is a common time until it gives up and sends you a FAILED notification.
Is this "server" is at my ISP or employer rather than at my workstation?
Do you know the RFC or similar "authority" that describes how all this is supposed to work?
I believe there is still a message-file handoff on my local workstation.
Eons ago, I think things ran on a cron cycle looking for outbound messages.
Today, I think that creating a new outbound message pokes and wakes the local daemon.
If you have installed and configured a local MTA and set your client to use it, then yes.
Otherwise, if you enter an external servername in your client, no.
Your client may have a queue or "outbox" or such to temporarily store messages until they are successfully passed to whatever server it is configured to use.
Quote:
Is this "server" is at my ISP or employer rather than at my workstation?
Yes.
Quote:
Do you know the RFC or similar "authority" that describes how all this is supposed to work?
No. But teh interwebz produced this, which should keep you entertained for a while.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.