Answers.Body: <p>I use the following settings, basically the default:</p>
  <ul>
  <li>Mailer batch limit: 0</li>
  <li>Mailer job size: 0</li>
  <li>Mailer throttle time: 0</li>
  <li>Database Update Frequency: 10</li>
  </ul>
  <p>I use a long-running cron, so it's really just one process running at 100% while sending emails. I don't want to impact too much the rest of the CRM, so I only run one thread/job at the time.</p>
  <p>One easy tweak would be to increase the database update frequency to 20. This setting has some risk. If sending emails fails for some reason, and CiviMail tries to re-send those emails at every cron run, then there is a risk of emailing those users repeatedly (well, lets say it delivered 9 emails, but failed on the 10th, the first 9 will be resent again and again).</p>
  <p>For Sparkpost, I had found that using the Sparkpost PHP library to send emails was 20-30% faster, compared to what the Sparkpost extension is doing. To be honest, I have not measured it recently, and presumably it also ends up doing &quot;curl&quot; calls, so I would rather not create high expectations. We maintain a fork here, that uses the PHP library: <a href="https://civicrm.org/extensions/sparkpost-symbiotic" rel="nofollow noreferrer">https://civicrm.org/extensions/sparkpost-symbiotic</a></p>
  <p>One of the issues with CiviMail, is that we end up doing an HTTP POST query to Sparkpost for each email. Ideally, we would batch those, and send a few emails at the time (or even, use the Sparkpost templating features, and just upload a list of contacts into a Stored Recipient List, but that would break tokens, add more configurations, and increase lock-in).</p>
  <p>Finally, keep in mind that Sparkpost might also throttle delivery on their end, to avoid sending too many emails to the same provider at the same time (which might trigger their anti-spam).</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-08-04T17:06:59.760Z
Answers.LastActivityDate: 2021-08-04T17:06:59.760Z
Answers.UserDisplayName: bgm
Body: <p>We've just started using sparkpost to deliver our email, the sparkpost control panel provides some really nice stats and insight into mailing performance as well as how your emails are being treated by various ISP's.
  I'm keen to find out what others are seeing in terms of sending speed with Sparkpost.  We're currently getting roughly 20,000 emails/hour but looking to increase this to 100,000, which is one of the main reasons we switch to sparkpost.</p>
  
  <p>I'm also keen to find out what your civimail settings look like here: civicrm/admin/mail?reset=1 </p>
  
  <p>Thanks!
  Peter</p>
  
Tags: <civimail><sparkpost>
Title: What is your CiviMail throughput/sending speed with sparkpost?
ThreadText: # What is your CiviMail throughput/sending speed with sparkpost?
  
  (Asked by: username_0 on 2016-08-25)
  
  We've just started using sparkpost to deliver our email, the sparkpost control panel provides some really nice stats and insight into mailing performance as well as how your emails are being treated by various ISP's.
  I'm keen to find out what others are seeing in terms of sending speed with Sparkpost. We're currently getting roughly 20,000 emails/hour but looking to increase this to 100,000, which is one of the main reasons we switch to sparkpost.
  
  I'm also keen to find out what your civimail settings look like here: civicrm/admin/mail?reset=1
  
  Thanks!
  Peter
  
  **Tags:** civimail, sparkpost
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2021-08-04. Score: 3
  
  I use the following settings, basically the default:
  
  * Mailer batch limit: 0
  * Mailer job size: 0
  * Mailer throttle time: 0
  * Database Update Frequency: 10
  
  I use a long-running cron, so it's really just one process running at 100% while sending emails. I don't want to impact too much the rest of the CRM, so I only run one thread/job at the time.
  
  One easy tweak would be to increase the database update frequency to 20. This setting has some risk. If sending emails fails for some reason, and CiviMail tries to re-send those emails at every cron run, then there is a risk of emailing those users repeatedly (well, lets say it delivered 9 emails, but failed on the 10th, the first 9 will be resent again and again).
  
  For Sparkpost, I had found that using the Sparkpost PHP library to send emails was 20-30% faster, compared to what the Sparkpost extension is doing. To be honest, I have not measured it recently, and presumably it also ends up doing "curl" calls, so I would rather not create high expectations. We maintain a fork here, that uses the PHP library: <https://civicrm.org/extensions/sparkpost-symbiotic>
  
  One of the issues with CiviMail, is that we end up doing an HTTP POST query to Sparkpost for each email. Ideally, we would batch those, and send a few emails at the time (or even, use the Sparkpost templating features, and just upload a list of contacts into a Stored Recipient List, but that would break tokens, add more configurations, and increase lock-in).
  
  Finally, keep in mind that Sparkpost might also throttle delivery on their end, to avoid sending too many emails to the same provider at the same time (which might trigger their anti-spam).
  
  
  ---
  
  