For hosting accounts with Dada Mail installed that have sending limits imposed by the hosting company, you'll want to follow the below advice closely. The majority of the problems people experience with sending out a mass mailing with Dada Mail can be avoided by simply sending messages at a rate slightly lower than the server-imposed limit.
For this example, we'll state that our own limit is sending out 500 messages, every hour.
If you have Dada Mail installed on a shared hosting account, you most likely also have a limit on how many email messages you may send out. Generally the only way to find out exactly what you're limit is, is to contact your host's support directly. We'll also be assuming you're using sendmail to send, we'll cover other options later in this doc.
In your list control panel, go to, Mail Sending - Mass Mailing Options
Enable Batch Sending
Check the option labeled, Enable Batch Sending
Set your batch settings to send below 500 message/hour. For example, set the two parameters below the, Enable Batch Sending to the following:
Send: 1 message(s) per batch
and then wait: 8 seconds, before the next batch.
This will have Dada Mail send a mass mailing below your hourly limit, giving a little room for other messages to be sent by other people/apps.
Enable: Adjust Sleep Time
Enable: Auto-Pickup Dropped Mass Mailings
These are also the default settings for Dada Mail.
Keep the Monitor Your Mailings screen open
After you've submitted a mailing list message, keep that screen open until your message has completed.
The Dada Mail Manual goes over every option in the Mail Sending - Mass Mailing Options screen:
Dada Mail sends out a mass mailing by sending one message after another. Without batch settings enabled, The speed of the mass mailing is dependent on basically two things:
The amount of time it takes to create a message
The amount of time it takes to send a message
Message creation varies with the size and complexity of your message, but with a modern server that's not overloaded, it's pretty quick - less than a second per message.
Message sending also varies on the load of the mail server (which could be the same as the mail server) and whatever settings the mail server is set up with. This is also where network lag could come in play, if you mail server/service is on a different server than your webserver. But generally, if things are working well, this is also pretty quick - less than a second. Give a tiny bit more time when talking to an outside server.
This means sending out a mass sending to thousands can potentially take little time - minutes, perhaps. This is good if your server can handle it, this is bad if it cannot.
If you're on a shared hosting account, you're going to have a set limit on how many messages you're allowed to send out, regardless of what the potential is, for your server setup. Sending out faster than your limit is not a good thing, as messages received by the mail server, once this limit is reached are usually ignored and trashed, sometimes without any warning.
So given that mass mailing takes little time to actual complete, Batch Sending is used primarily to slow down a mass mailing and space out message sending over a longer period of time. It has basically two parts to it:
How many messages get sent out at once (how large your batch is)
How long to wait before mailing another batch of messages
During a Mass Mailing, Dada Mail will send a specific amount of messages out, wait a specific amount of time and then send another, "batch" of messages.
Batch sending does not work by sending a specific amount of messages during a specific amount of time. Close, but it's not exactly that.
Batch setting is configured in the list's control panel: Log into your list and go to: Mail Sending - Mass Mailing Options.
We'll be throwing a few words around that you may not be familiar with, so here's a list:
Sending a message to your mailing list. Usually, this means you're entire mailing list or at the very least, a part of it.
This type of mailing is a little different from the other types of mailings Dada Mail does, which include subscription and unsubscription requests, sending archives to individucals, etc. These are known as transaction emails
One benefit of using the batch settings is that you'll receive a message in your Dada Mail's mass mailing log when a batch is completed, with some verbose information on the status of your list mailing.
It sort of looks like this (broken up into a few lines:
[Fri Oct 13 00:44:41 2006] listshortname 127.0.0.1 Batch Successfully Completed Subject: My Message!, Start Time: Mailing Started: 10/13/2006 00:44:11 process_has_stalled: 0 should_be_restarted: 0 first_access: 1160721851 percent_done: 0 is_batch_locked: 1 last_access: 1160721881 id: <firstname.lastname@example.org> total_sending_out_num: 1014 type: list total_sent_out: 4
This log can be accessed in the individual mass mailing's monitor screen. In your list control panel, go to: Mass Mailing - Monitor Your Mailings. Select the mass mailing that you'd like to view the log for. On that screen, click the button labeled, Open Mass Mailing Log in a New Window
This log is deleted, once a mass mailing is finished. To help with debugging mass mailings, you can keep these logs, after the mass mailing is finished, by enabling the setting, Save Mass Mailing Logs in the list control panel under, Mail Sending - Mass Mailing Options.
These logs will be saved in the,
.dada_files/.logs directory, and can be viewed using Dada Mails Log Viewer plugin, that comes with Dada Mail.
Consider these extremely important points:
Check up with your hosting company:
If you're on a shared hosting account, you have a limit imposed by the mail server on how many messages you can send out over a period of time.
For inexpensive hosting accounts - ones that cost between $5 - $50 a month, you're probably limited to 500 messages/hour. Please check with your own hosting company and get the exact amount that they say is, "OK". Set your batch settings a little lower than what the limit is - since you may receive sub/unsub requests, etc.
So, if your hosting account limits you to 500/messages an hour, try setting your batches to something like: 1 message, every 8 seconds. In fact, that may be the factory default setting.
A few tell-tale signs your going over you're sending limit:
Like, the last half of your entire list bounce back and you know, know they'll valid email addresses, with mailboxes attached to them.
Sometimes the bounce will say something like:
email@example.com unrouteable mail domain "example.com"
Sending errors don't always get logged in Dada Mail's error log - the mail server just won't send back an error, as it will happily and silently not send your message out, which is a real head scratcher.
Sometimes errors are logged - here's tell-tale sign you've hit your account's hourly limit:
451-SPEED LIMIT: Account has exceeded the max emails per hour allowed
Clear as crystal.
Dada Mail does detect sending errors during mass mailing.
If a message to an specific email address does not successfully send out, Dada Mail waits the total time you've set for batches to wait, it'll try two more times, with a similar wait. If after, three times unsuccessfully sending a message out, Dada Mail will stop the entire mass mailing, and restart itself, at exactly the same place it stopped, with this same email address, trying for an additional three times.
If none of these tries is successful, Dada Mail will log the problem address, and move on with the rest of the addresses to send to. Clearly there's going to be something wrong with sending to this address.
Reports for these sending errors can be viewed in the included Tracker plugin. If there are many sending errors of many addresses, one reason could be that you're going over your sending limits. The above process of trying three times, and then three more times after a largish break is purposely used to slow down batch sending, so that after your (potentially) hourly limits are reset, the least amount of addresses would have a failed delivery on your side.
Sending out a lot of email messages is CPU and memory resource intensive.
If you're using a shared hosting account, you're going to run into problems just blazing a few million messages - so don't. Usually, you'll have imposed limits on how much CPU Time you're taking up and also actual server memory. If you go over these limits, you're likely to get an angry (but calmly angry) email from your hosting account support team, telling you to knock it off.
Let's say your email message - what you're sending, is 40k is size. You have 25,000 subscribers (a big list, by some scales). In that total mailing, you're moving almost a GIG of information out of the server. That's quite the load. If you try to do this without using batching - meaning, in the course of a few seconds/minutes - first off, unless you have some fat pipes, it's not going to happen and secondly if you do somehow make it out, that's a whole load the server has to take on.
Now, 25,000 messages at once will flood your mail server. It's going to hate you and probably tell you, in its own little way, to stop - it won't want to process that many messages at once. Sometimes this is by silently dropping the messages you send to it, into the Great Ether of the Intarweb. A big culprit in the, "My messages aren't being delivered" puzzle. It drops messages, because it's better to do this than crash.
And also consider that every mailing list message mailing that you do, will have bounces - for whatever reason. Sending a whole lot of messages out, will give you many messages coming in - from different places - basically, you'll give yourself a Denial of Service attack. Don't do that.
So have a heart, batch at something that's realistic. If you're on a shared server, realistic may mean what you're hosting companies impose. Follow their restrictions - don't ever go over. If it's too strict, tell them - ask them what can be done. Use your right as a consumer. Find a better host that'll work and tell your current host about it. Hosting companies are nothing if competitive against each other. By again, be realisitic: For a few bucks a month for hosting, you are not going to get the moon and stars - hopefully, you'll get something usable. If you need more, consider upgrading to a plan that allows more resources at your disposal. If you have a large enough list, you may have a big enough business to require it.
Once enabled, this feature will help make sure the process of sending out a mailing will succeed to completion.
You can configure the feature in your List Control Panel, under Mail Sending - Mass Mailing Options.
You have two settings to which to play with:
Auto-Pickup Dropped Mass Mailings
That turns on the feature. Have that checked.
Restart Mailings After Each Batch
The Monitor Your Mailings screen will tell you how far along your mass mailing has gone.
In the list control panel, when you send out a message, by pressing Send Mass Mailing button on the, Send a Message screen (and friends), the screen will refresh and you'll see another screen, stating your mailing is on its way. The screen will refresh again to the Monitor Your Mailing screen.
Keeping this screen open until your mass mailing has finished will make sure your mass mailing goes to completion.
The Monitor Your Mailings screen should refresh every few seconds to update the status of your mass mailing. During a refresh, if Dada Mail sees a mailing has been dropped, it will automatically pick up the lost mailing at the exact spot it was dropped.
If you are not on the Monitor Your Mailings screen, its Auto-Pickup feature will not work.
The Monitor Your Mailings screen does not control a mass mailing - it only monitors and reports what's going on. If it finds a mass mailing has dropped, it will initiate the auto-pickup function and restart your mailing.
But! If a mass mailing is dropped, it won't be restarted, until you go back to this Monitor Your Mailings screen, so it is a good idea to keep it open.
If you do navigate away by mistake, it's not the end of the world, just navigate back.
Log into your list via the list control panel. Under Send a Message, click on, Monitor Your Mailings. This screen will give you a list of the mass mailings currently active. Click on the subject of the mass mailing you'd like to monitor. And, you're back.
If you're using the Bridge plugin, it also has the same functionality as the Mailing Monitor plugin built in.
in Dada Mail itself, see the Mailing Monitor plugin noted above, or the
sending_monitor() subroutine in the mail.cgi file.
Multiple Mass Mailings can go on at one time.
By default (conservatively) Dada Mail only allows you to have one mass mailing at one time. You can change this limit in the Dada Mail Installer under, Advanced Configuration (Optional), Configure Global Mass Mailing Options, Mass Mailings at Once Limit.
You may also change this variable directly in your global config via the variable,
Be careful with setting this limit higher than the default. If you're allowed to send 500 messages and hour, and you have your batch settings set to send one message every 8 seconds, that's approx. 450 messages you'll be sending each hour. If you're only allowing one mass mailing to go out at one time, you'll be sending approx. 450 messages each hour - pretty easy.
There's a bit of wiggle room for other emails that may get sent out, like subscription and unsubscription notifications.
Any mass mailings that have been submitted to Dada Mail that are over the limit set will be queued. They'll just wait in line until the number of mass mailings is less than the limit.
One exception to this rule is sending out test mass mailings. Test mass mailings will go through to completion, without having to wait in the queue.
The order at which awaiting mass mailings are sent is usually chronological, first in, first out. If you submit a mass mailing that's submitted at 10:00am and submit another mass mailing at 11:00am, the mass mailing you submitted at 10:00 am will be sent out first.
There is one way to change this queue and that's by pausing a mass mailing.
Pausing a mass mailing will basically move that mass mailing to the bottom of the queue and it won't ever be reloaded to be sent until after its manually unpaused.
If you do unpause a mass mailing, it will jump back in line where it once was. For example, if you have three mass mailings, one that is submitted at 10:00am and one at 11:00am and another at 12:00pm and you decide to pause the 10:00am one, it will stop sending out and the mass mailing submitted at 11:00am will start. The 10:00am mass mailing will be at the bottom of the queue.
If you then unpassed the 10:00am one, it will jump back where it once was, but since the 11:00am mass mailing is going, it won't restart until either the 11:00 am mass mailing has unexpectantly stopped, or the 11:00am mass mailing has finishe
Mass Mailings can become stale, meaning, they've been inactive in mail sending for a specific period of time and won't automatically restart. This is to stop mailings that, for whatever reason, aren't active not become all of a sudden, active and start sending out a message that may be a little bit old in the news department.
By default, mass mailings that haven't sent anything in a day are considered stale. You may change this time in the Dada Mail Installer under, Advanced Configuration (Optional), Configure Global Mass Mailing Options, Mass Mailings Stale After
You may also change this variable directly in your global config, via in the variable,
$MAILOUT_STALE_AFTER, which expresses this time in seconds.
If you are running Dada Mail on a shared hosting account and find the limits they set less than ideal for what you want to with your own mailing list, you may be able to talk to your support to get your personal limit raised.
If you cannot get them raised, it's time to start looking for alternatives to sending out your mail.
One service we highly suggest is to use Amazon SES, which works seamlessly with your already-installed Dada Mail, hosting setup, and is quite inexpensive. More information on SES and Dada Mail:
If you're running a group of hosting accounts powered by WHM, here are the docs on changing the email limit settings for each account: