I have a dream email system that I'd like to set-up. Well, actually, I've already set it up, but I've got a few questions to ask and there's also some limitations that I'd like to work through. I think that this topic might be helpful for lots of other folks 'cause my dream system seems like it's the same system that anyone with a public-facing web application might like to have. My dream email system has two purposes: Purpose 1. General Purpose Corporate Email (all email addresses except "firstname.lastname@example.org") -- employee email, responding manually to users with support questions, etc. For this I've set-up gmail for my domain and I've set up an MX record at my domain registrar (1and1) directing it to use gmail as my mailserver. Purpose 2. Automated Interaction with My Users (email address "email@example.com") -- sending password reset, sending welcome email when new account established, bulk email to all of my users who "opt in" to bulk communication, etc. For this I'm using ActionMailer and the sendmail program on my server (this bypasses gmail). It's all up and working but I've got a few questions. Question 1. What is the performance threshhold for a bulk email using sendmail? I haven't hit it yet but my largest email has gone out to 500 recipients. What if I sent an email to 10,000 recipients? Will it send or will it break? I'd rather anticipate this problem now rather than find out about it later. Question 2. It seems like right now sending my Purpose 2 email is invisible to google. That is, 1and1 isn't telling google that I'm bypassing them and sending some of my email with sendmail. That's the way I want it and I hope that's actually true. Is it? I don't want to get google mad at me 'cause I'm sending bulk emails that are touching their system when I don't intend to. Question 3. My Purpose 2 setup has a problem in that delivery errors are not posted back to ActionMailer. Rather, 1and1 uses the MX record to divert the delivery errors to my gmail account. An example: sendmail sends a Purpose 2 email to "firstname.lastname@example.org" from "email@example.com" and the bounceback is directed by the 1and1 MX record to gmail. Is this confusing to gmail since gmail didn't send the message to begin with? Are they going to get mad at me? The best solution would be to have two MX records for my domain -- a Purpose 1 MX record directing to gmail and a Purpose 2 record directing to ActiveRecord/sendmail. However, 1and1 tells me that they can't have multiple MX records for one domain. Question 4. Given its limitations, my solution really seems like a bad one. What is the right way (the Ruby Way? :)) to handle Purpose 1 and Purpose 2 email? Some ideas: Idea 1. Set up a second domain "mysitemail.com" and build a corresponding second rails app which handles Purpose 2 email. In that case, how could I configure my orginal rails app "mysite.com" to send mail through "mysitemail.com" rather than through itself? Is this a good idea? Note that this is not optimal in that my users would get email from a confusing second site. Idea 2. Find a domain registrar that allows multiple MX records? Does anyone know of anyone? How have other folks handled all of this?
on 2008-10-30 20:25
on 2008-10-31 15:26
John C. wrote: > Idea 2. Find a domain registrar that allows multiple MX records? Does > anyone know of anyone? Multiple MX records are only of use when the primary MX is unvailable. There are no external routing options other than at the domain level or subdomain level - you can create junk.mysite.com and have a separate MX to mysite.com's. Personally I would also use qmail for your outgoing mail also. I'm not sure where google come into this ? If you are not using a smart relay the delivery errors will be generated by your mail server so they will never go near the internet. I'd bin them personally and scan mail logs for failures. Bounces should only occur in the event of a destination mail server accepting the email first and for some reason failing to deliver it itself. This shouldn't occur that often as most (good) mail servers will reject during the email delivery attempt - which does not generate a bounce - though your mail server will subsequently inform you via email of the failure to deliver it will log it also (qmail does anyhow).
on 2008-10-31 15:46
Thanks Andrew. I will take a look at qmail -- I hadn't even heard of it before. Google is involved because I really like the gmail system for my corporate email. They have excellent spam-fighting, and well, gmail is just the best in my opinion. I've been investigating the following system: Incoming Mail ------------- Internet --> Domain Host (1and1.com) Mx Records --> Some kind of router on my domain (sendmail or qmail??) --> if (mail to firstname.lastname@example.org) (route mail to sendmail/ActionMail on my domain) else (route mail to gmail using gmail's Mx records) end The key thing is that all incoming mail is routed to my domain which then bounces the relevant mail to gmail. What is the best program / method to check incoming email's "to" address and route the email accordingly? Is this a reasonable thing to do?
on 2008-10-31 16:00
John C. wrote: > Is this a reasonable thing to do? Is this a personal thing or a service that other people will be using ? If the latter - run your own mail server. If the former - run your own mail server ;) I really don't see any credibility in routing email via google. If SPAM is an issue run ASSP in front of your mail server - it rocks.
on 2008-10-31 16:19
John C. wrote: > Question 1. What is the performance threshhold for a bulk email using > sendmail? I haven't hit it yet but my largest email has gone out to 500 > recipients. What if I sent an email to 10,000 recipients? Will it send > or will it break? I'd rather anticipate this problem now rather than > find out about it later. I can't answer your question, but I had the same question earlier this year. I decided to send the email to groups of N users at a time. Peace.