Look at it this way. Let's say we have a user named abc whom wants to send mail from his/her server at example.com to the email address he was given by his/her friend xyz whom resides on geomail.us.com.

example.com initates the conversation with geomail.us.com and informs it that it has a message for it

abc@example.com ---> xyz@geomail.us.com

Now, geomail.us.com being a good little email server, checks to see if it has a user by that name. after alot of internal checking it realizes that there is no user by that name. Normally this email would bounce, right? In most cases yes. In this rare instance, geomail.us.com has a catch all email address defined, in this case 'incoming@geomail.us.com' So the server redirects the email to that account.

xyz@geomail.us.com ---> incoming@geomail.us.com

All's well and good, abc@example.com believes that the message has been delivered. So, far as it knows the mail has been recieved by xyz@geomail.us.com. The catch all has caught this email and redirected it to incoming@geomail.com

Now comes the fun part? How do we get the mail caught by incoming@geomail.us.com to the actual recipient? Simple answer? We cheat.

We introduce a cgi script called 'mail-fetch.cgi' into teh mix. This scripts sole purpose is to log onto pop server and collect all the messages caught by incoming@geomail.us.com

During it's run, the script defines a hash key for each unique address in the list of recieved mail and sorts the individual emails into into their appropriate "mail boxes". It then checks those addresses against a database of "users" and pushes the appropriate emails to the appropriate users. If a user does not have an entry defined in the database, we generate a suitable error in that users name and push teh email back to the originating server.

xyz@geomail.us.com ---> db ----> xyz
pdq@geomail.us.com ---> db ----> no mbox ----> bounce

Am I making sense now?


In reply to Re^6: Email System Scalabilty by Anonymous Monk
in thread Email System Scalabilty by john.charles.aldrich

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.