in reply to Re^2: Email System Scalabilty
in thread Email System Scalabilty

That's clearer. I take it that your service provider has an MTA that imposes the limit as it relays messages to your server, or perhaps its an honour system.

How will you ensure the senders all set headers appropriately? Do you have control of the senders?

Replies are listed 'Best First'.
Re^4: Email System Scalabilty
by john.charles.aldrich (Initiate) on Apr 18, 2009 at 09:52 UTC
    it's not an incoming limit or an outgoing limit. what I am refering to is the number of individual email accounts that the system will allow you to have. I'm not claiming to want or need control of people sending mail to the server from remote locations. All the work is basicly already done for me. I'm running off the "Envelope" header that gets set when mail is sent to my server by the remote mail server ( be that coming from 'mail.example.com', 'mail.test.com' or whatever ). all hosts set this header on outgoing messages.

      If you have no control of the senders, I expect using a catch all email address will not work.

      How will the "psuedo-email address" be manifest in the messages your system receives?

      In addition to thinking about what your server will do, you also need to think about your outgoing messages and how other systems will deal with them. For example, what "From" address will recipients see? and What address will replies be sent to?

        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?