1

I need to send about ~20k emails to potential clients and need the best way to avoid:

  • server crash
  • being put in spammers list

I've searched a few forums and people said it's best to send mails in 1k packages but my question is what delay between sending each 1k should I set? I mean 1k/day or 1k/hour or 1k/min etc.

user229044
  • 232,980
  • 40
  • 330
  • 338
nonab
  • 13
  • 4

5 Answers5

3

I recently had to build system to do so, here is the solution we chose :

1- The management system setup emails and store them in a database.

2- We setup a no-reply account on our mail server to get the bounces back.

3- We build a small code over the great mailing library swiftmailer (swiftmailer.org).

4- We run the script we build through a cron and send mails in packages of 50 per minute (hotmail will most likely flag email as spam if too much emails are sent from the same adresse/server in the same minute). We store each swiftId i the mail database

5- At the runtime of the mail sending script we check for bounces or other errors in our no-reply mailbox and flag our messages in our mail table accordingly (status : 1 - success, 2 - invalid email, 3 - bounces)

6- We sync back our data (upon user accessing the section of the system) in the main system when they have a status and that the last change was made at least 10 minutes in the past to limit the change of states in the system. (the synchronisation script can change the status of an item in the main system, but the 10 minutes delay reduce the risk of changes)

JF Dion
  • 4,014
  • 2
  • 24
  • 34
2

I think your 1K thing is a red herring. There have been a number of similar questions asked with good answers, have a look though these:

How do you make sure email you send programmatically is not automatically marked as spam?

Avoid being blocked by web mail companies for mass/bulk emailing?

Sending solicited mass email

Note that the primary requirement to avoid being your mail being marked as spam is NOT TO SEND SPAM. Your description sounds a lot like spam, in which case no amount of clever tricks will help you.

Providing you are not actually sending spam, a professional organisation such as http://www.campaignmonitor.com/ or http://www.mailchimp.com/ is probably cheaper than the amount of time you will require to do this properly.

Community
  • 1
  • 1
Colin Pickard
  • 45,724
  • 13
  • 98
  • 148
0

Your best bet is to farm it out to specialists.

There's a whole load of subtleties about mass mailing that are easy to get wrong.

Best case is that your server gets put on an email blacklist - meaning all your mails from now on get binned as spam. Worst case is fines and/or jail time, depending n your local laws and the laws where the recipients live.

pauljwilliams
  • 19,079
  • 3
  • 51
  • 79
0

When it comes down to being put in spammers lists, the question is, how many (very) similar mails from the same sender reach a certain host. If you flood yahoo-mail-accounts with thousands of mails within a short period of time, you can be sure to be on their list shortly.

What you can do: pay a professional service to send out the mails for you. They usually have contracts with the big providers so you don't end up on anyones blacklist (will cost you money, though).
If you're sending them out from your server, make sure the "reverse DNS lookup" for your server is activated - I don't know if that's checked any more but it gave me a hard time once.

If your mails don't need to be sent out at a certain time, I'd send the mails in very small packages, e.g. not more than one mail per second, not too much in a row. Then wait for a certain amount of time and repeat until all mails have been sent.
A company I used to work for would send out not more than 200 and then wait half an hour before the program proceeded. As far as I know, we never ended up on some blacklist.

Select0r
  • 12,234
  • 11
  • 45
  • 68
0

The spam list has been well answered, but as far as not bombing out your server, the answer is generally the same. Use a service that does this for you.

If you absolutely must send this volume of e-mail on your own, you want to do it with some sort of background service. This can be written in anything (provided that you don't simply buy one of the many pieces of software off the shelf), but ideally it should be multi-threaded.

Your management application should not be sending these e-mails... only queuing them up in a database or something.

Again though, why reinvent the wheel? You'll save yourself a lot of time by going with something off-the-shelf.

Brad
  • 159,648
  • 54
  • 349
  • 530