Email sending limits - israel-dryer/Outlook-Python-Tutorial GitHub Wiki

Overview of limits

Believe it or not, you can't send as many emails as you want... Microsoft Outlook has sending limits which are based on the type and level of service that you have.

Most people with a business or corporate account are going to see limits approximately like:

  • 10,000 recipients per day
  • 500 recipients per email
  • 30 emails per minute

However, personal accounts may have lower limits than this. You can find the exact limits that apply to you in Microsoft's documentation.

Be aware that in addition to sending limits there are also receiving limits, but that is beyond the scope of this tutorial.

What does this mean??

  • You cannot send more than 10,000 emails per day, or to a total of 10,000 recipients whichever occurs first.
  • Your emails cannot have more than 500 recipients, which means to, cc and bcc.
  • Finally, you cannot send more than 30 emails per minute... what this really means is that Microsoft will not deliver more than 30 per minute... even if you manage to push them through your outbox at a faster rate than that.

The last point is the one that tends to raise the most eyebrows. I've heard about this rule getting implemented in different ways. Sometimes the emails get rejected outright. Other times, and in my experience, they simply get throttled on the server after they leave the inbox.

How do I get around these limits?

The limits can't be removed, but you can work around them.

Use a distribution list
If you are sending out an email to thousands of people, but the content is the same, then use a distribution list. A distribution list can contain (I think) as many people as you want. A distribution list will only count as one person towards the sending limit.

Break up the recipients into chunks
If you can't use a distribution list, and you are sending an email with non-customized content, then you can break up the recipients into chunks of 500.

Create and timed release
You can write a script to create all of the emails and save them to the drafts folder. Then you can set a timer to release 30 emails every minute until they are all sent.

In my experience, I can push about 70 to 100 emails through my outbox in a minute, but they will still be delivered at a rate of 30 per minute, but at least at that point they are in transit and off your to-do list.

Timed create and release Similar to the method above except that you create a script to create and send 30 emails per minute in a single step. The notes on pushing more through the outbox apply to this method as well.

Warning

One thing that you don't want to do is send thousands of emails at once. There are a few reasons for this:

  • Outlook cannot process all of these emails that quickly... so there is no sense in asking it to try.
  • It is easy for the outbox to become clogged and unresponsive, and then at that point you may have no recourse except to delete them and try again.
  • If you push thousands of emails to your outbox, all of Outlook's resources will be spent processing them, which means you wont' be able to do anything else in Outlook except wait. Better to stage it in batches so you can continue other work.