So I have run some benchmarking here and using the mautic spool and cronjob it seems that the maximum number of mails sent per minute is around 290!!
I have set the system up to send 4500 per minute, I did this by running the cronjob every minute and the number of mails per send as 4500, however look at my benchmarking below:
The system is currently sending out 2 segment mailers and a campaign mailer (m1,m2,m3). M1 was started 2 hours after the segment mailers (m2 & m3) so it seems that the logic is neither FILO or LILO or FIFO - what is it - how does this thing work
I know removed the mautic queue and used Send Immediately. Remember my Amazon SES rate limit is set to 4,500/minute (77/seconds).
The only way I could benchmark this was old school by actually timing the minute I start and the minute the send finishes watching the screen and to send out 30,000 emails it took 39 minutes!!
Is this something that sounds correct ? I know understand why the client was surprised he received an email at 10 in the evening when it was scheduled during the day, however it was sending to a segment of 600K.
Am I missing something to speed things up here ?
@joeyk@rcheesley - any ideas, have you had any different experience ?
As a mistake which subsequently turned into a test, I set a campaign to automatically restart contacts and allowed contacts to restart the campaign. Within minutes I had spooled something like 4000 emails (luckily to my test account) and rate limited the email server we use. Fortunately, the mail server meets our relatively low sending volumes, but I was quite alarmed at the sheer amount of emails Mautic generated with my buggy campaign setup.
What is the maximum number of emails that can be sent per second through Mautic?
What is the best practice to setup Mautic infra?
Using AWS RDS will make emails go faster or not?
Hello,
It depends on your infrastructure, I’m not using AWS RDS, I can’t consult you on that.
You can send faster if you use multi-thread.
What is your SMTP?
Hi, I don’t know about any article, I agree it would be good if someone would create one.
You need to use this in order to have multiple threads:
--lock-name[=LOCK-NAME]
Here is the full help:
Help:
The help command displays help for a given command:
php bin/console help list
You can also output the help in other formats by using the --format option:
php bin/console help --format=xml list
To display the list of available commands, please use the list command.
root@mauticsichtbar:/var/www/html/mautic# php bin/console mautic:email:send -help
Description:
Processes SwiftMail's mail queue
Usage:
mautic:emails:send [options]
Options:
--message-limit[=MESSAGE-LIMIT] Limit number of messages sent at a time. Defaults to value set in config.
--time-limit[=TIME-LIMIT] Limit the number of seconds per batch. Defaults to value set in config.
--do-not-clear By default, failed messages older than the --recover-timeout setting will be attempted one more time then deleted if it fails again. If this is set, sending of failed messages will continue to be attempted.
--recover-timeout[=RECOVER-TIMEOUT] Sets the amount of time in seconds before attempting to resend failed messages. Defaults to value set in config.
--clear-timeout[=CLEAR-TIMEOUT] Sets the amount of time in seconds before deleting failed messages. Defaults to value set in config.
--lock-name[=LOCK-NAME] Set name of lock to run multiple mautic:emails:send command at time
--bypass-locking Bypass locking.
-t, --timeout=TIMEOUT If getmypid() is disabled on this system, lock files will be used. This option will assume the process is dead after the specified number of seconds and will execute anyway. This is disabled by default.
-x, --lock_mode=LOCK_MODE Allowed value are "pid" or "flock". By default, lock will try with pid, if not available will use file system [default: "pid"]
-f, --force Deprecated; use --bypass-locking instead.
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-e, --env=ENV The Environment name. [default: "prod"]
--no-debug Switches off debug mode.
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Help:
The mautic:emails:send command is used to process the application's e-mail queue
php bin/console mautic:emails:send
I suggest to experiment around with all options before you ask further questions, because how fast sending is really depends on your setup.
I don’t like to send too fast, because it really destroys deliverability if you just send the same content. Not worth it. I’m trying to send not faster then 200-300 Email / min, which is up to 10k / hour.