0

We have an application that allows users to send emails to their customers stored in a data base. It is an ASP.NET app and it uses AspMail to send those emails.

The app sends the emails one by one in case users select too many customers. What we see is there are some users that have more than 10.000 customers and when they send emails to them we have problems with, for example, Hotmail. They block our IP due to too many emails. ALso those mails block our mail server sometimes.

We'd like the best way to do this. Maybe is better to send just 1 email to thousands of people.

What can we do? Is better to send one by one? Is there any other approach?

John Mathison
  • 904
  • 1
  • 11
  • 36
  • 1
    http://webmasters.stackexchange.com/questions/695/how-to-avoid-hotmail-live-rejections-for-legit-large-volume-emailing is a good answer for this question. – dash Oct 03 '12 at 15:13
  • possible duplicate of [How do you make sure email you send programmatically is not automatically marked as spam?](http://stackoverflow.com/questions/371/how-do-you-make-sure-email-you-send-programmatically-is-not-automatically-marked) – AakashM Oct 03 '12 at 15:15
  • There is no difference in sending 1 email to thousands of people (in Bcc) or thousand emails with one recipient separately with regards to probability of getting blocked.. – Michal Klouda Oct 03 '12 at 15:19

2 Answers2

0

The myriad of problems that can arise from mass emailing is why emailing services were born. There are a variety of mail service providers that have well documented APIs that you can use directly from .net. Mailgun is one example I have used. They have built their delivery service to email reliably to hotmail and other domains without becoming blacklisted.

Here are some links to email service providers.

Crake
  • 1,661
  • 1
  • 13
  • 30
0

One solution is to send your email in batches. You could use a console application to achieve this; I've already used this successfully for 2,000 emails using a rest period between every 100 emails sent:

http://www.codersbarn.com/post/2011/11/08/Calling-Console-Application-from-Web-Form.aspx

while (dr.Read())
{
    ....
    toAddress = dr[1].ToString();

    // Send email in batches of 100 with a 30 second pause between each batch 
    if ((count >= 100) && (count % 100 == 0))
        Thread.Sleep(30000);
    ....
}
IrishChieftain
  • 15,108
  • 7
  • 50
  • 91