Send mass (around 2000) email

Hi, I need to send a mass email to my customers/contacts, I calculate around 2000 emails for each sending.
Is this operation possible with the standard dolibarr module?
If not, which additional modules do you recommend?
Thanks for your suggestions

To the best of my knowledge, you can make an “unlimitedly large” mass mailing using Dolibarr’s native “Mailing” module. Considerations:

  • To avoid risking the reputation of the email sent from your server/IP/domain, it’s most advisable to use third-party services (AWS, Sendinblue, Sendgrid, Mailchimp, etc.) for sending marketing emails.
  • If you decide to use your Dolibarr for mass mailing, make sure you have a correct SMTP configuration in the email sending settings.
  • The creation of “mailings” in Dolibarr is done from the “Tools” module.
  • While you have the new emailing you’re preparing in DRAFT, you can modify the subject and body of the email, as well as the list of recipients.
  • The recipient list can be populated with various “profiles”: “third parties” meeting certain conditions (including the third party’s language), “contacts”, etc. You can even manually add recipients to the emailing list, or import a CSV file with addresses+names.
  • While the “emailing” remains in DRAFT mode, you can test how the email will be received by sending it to yourself (there’s a TEST button for this).

Regarding the sending mechanism:

  • Once the emailing has been validated and a list of recipients has been defined, the “Send emailing” button will be activated.
  • When you press this button, Dolibarr presents you with two options:
    __a) send N emails each time you press the “send” button until all 2000 recipients on your list have been covered
    __b) execute a PHP script from your server’s console to send one email every N seconds
  • If you choose option a), it’s advisable to have previously configured a reasonable value for Dolibarr’s “MAILING_LIMIT_SENDBYWEB” variable (in “Setup”, “Other settings”). A reasonable value could be 25.
  • If you choose option b), you should first configure the N seconds you want to elapse between each send (of a single email to a single recipient) in the “Mailings” module configuration. This way, if for example you indicate a 10-second gap between sends, then 2000 emails will take about 5 and a half hours to send. This will GREATLY increase the delivery rate and minimize the risk of your IP or domain being blacklisted as spam!

This second method is more practical when the number of recipients is quite large. Don’t worry about execution time: when the PHP script starts executing via console, the first command it runs is to “auto-grant itself infinite execution time”… so it will keep sending all emails every N seconds until they’re all sent.

Thank you so mutch,
your answer is clear and exhaustive.
Just two clarifications regarding the __b option:
. every n seconds, is only one email sent or the number indicated in the MAILING_LIMIT_SENDBYWEB variable?
. you have identified a gap of 10 seconds, is it a value that is better to use or can it be reduced for example by indicating 1 or 2 seconds?