Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have an issue. I have situation where I need to send around 3000 emails per request using SMTP. However, only 30-40 reaches destination.

Do you have any idea what can be a problem and how to solve it. as server side script I am using PHP.

share|improve this question

closed as not constructive by John Gardeniers, TomTom, Chopper3, mailq, jscott Jun 22 '12 at 0:41

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

4 Answers 4

up vote 3 down vote accepted

I created a mailer for my last job that sends a bit over 3,000 emails every Monday morning (in batches of 50 with a delay between batches depending on the size of the message). 3,000 is not a particularly large amount and there's no reason your system shouldn't be able to handle it with ease.

I suspect that your real issue is one of spam. Specifically, unless your system has been appropriately configured and the messages properly constructed and written they will be trapped as spam by most receiving systems. Get those details sorted out and you should be fine. As for the specifics, that's another question altogether and a topic which has been very well covered many times before and doesn't need to be repeated.

share|improve this answer
    
Even properly configured I never send batches larger than 20. Per one SMTP connection. Simple like that. 3000 emails is pathetically low for any mass mailing - add some zeroes and it gets seirous. NO inherent problem, it is all about how the server is configured. –  TomTom Jun 21 '12 at 9:16

You should send the mails in batches. The batch size has to be tested but I'd start with 10 to 50 with short delays.

If that's not an option you might look into a service like http://aws.amazon.com/de/ses/

share|improve this answer

If you are sending that many and delivery matters, you should look into a company like

http://sendgrid.net

We use them and you just config postfix to act as a relay and all your mail will get relayed to them.

share|improve this answer
    
I do have my own mail server. can i configure it for such amount –  Akram Jun 21 '12 at 2:52
5  
If you could, you wouldn't need to ask this question. –  David Schwartz Jun 21 '12 at 3:17
    
sending that much mail isn't worth it.. you haven't spent the time to get whitelisted on major providers email servers like sendgrid has. If deliverability is important to you.. do not do it yourself. Like for example.. aol.com's email server will block you have it see's a new email server hitting it more then like 50 times in a single day. –  Mike Jun 21 '12 at 12:42

This should run from cron and not from HTTP request, because it will timeout so this way not all mails will be delivered, which you have described.

share|improve this answer
1  
-1 Nothing in the question implies either using-HTTP or not-using-cron. –  nickgrim Jun 21 '12 at 9:14
    
Like what, it says "request" and "php", and php request going over HTTP –  Andrew Smith Jun 21 '12 at 9:16
    
It says, server side PHP script sending 3000 emails from single request. So I say, 3000 emails run from cronjob, because the loop with exit after 30 seconds of CPU usage. –  Andrew Smith Jun 21 '12 at 9:18
1  
You can write "server-side" scripts in PHP, and run them from cron; "PHP" does not necessarily imply "HTTP". –  nickgrim Jun 21 '12 at 11:15
    
"3000 emails per request" - so what do you think it means? –  Andrew Smith Jun 21 '12 at 16:00

Not the answer you're looking for? Browse other questions tagged or ask your own question.