Answers.Body: <p>OK, following up on this today — as best as I can discern/guess — I hit my daily limit at Spark Post (which, despite being a paid plan, starts relatively low and ramps up) and that limit by coincidence wound up &quot;bouncing&quot; 75% of the mailout.</p>
  <p>Here's my guess: my confusion came in part because it's not really a bounce — essentially, something is happening in the Spark Post API to signal to Civi that a limit has been reached and that Civi should stop sending the messages, but CiviMail is determined to try anyway. The result is that I see nothing in the Spark Post logs and thousands of bounces in Civi with the same not-terribly-helpful information.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-10-08T02:55:36.550Z
Answers.LastActivityDate: 2024-10-08T02:55:36.550Z
Answers.UserDisplayName: mc_burger
Body: <p>Civi 5.76.2 / WordPress</p>
  <p>Starting last week, a mailer returned a bounce rate of around 75% (in this case, a little over 6K addresses), all of them uniformly 'syntax'. I exported them into a new group, copied the message, and resent it. The same thing happened: of the new batch, around 25% sent successfully, and the rest (now around 4K) bounced for 'syntax'.</p>
  <p>Having read the old thread here (&quot;Can't send or test bulk mail, but test mail succeeds in System Settings / Outbound email / SMTP&quot;), I figured the culprit might be our gmail config and, determined anyway to implement a better solution, I finally set up a Spark Post account, installed the plugin, and reconfigured (this was really easy, as promised). Tested everything, all good.</p>
  <p>I then exported the 4K into their own new group, made yet another copy of the mailing, and fired up the send through Spark.</p>
  <p>Alas: exactly the same thing, with roughly 25% sending and the rest &quot;bouncing,&quot; all for 'syntax'. But now I have the Spark Mail dashboard to consult, and I can see that the mailout abruptly stopped at the 25% mark … Civi had stopped trying and — for me, this is the hardest-to-understand part — reported that it had all bounced. But it never made it far enough to bounce.</p>
  <p>Can anybody explain what's going on?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-10-06T15:18:18.777Z
Comments.Text: The bounce report has a column "Bounce Reason" that is not checked by default. Sometimes it gives more info.
Comments.UserDisplayName: Demerit
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-10-07T00:09:18.363Z
Comments.Text: Hmmm, yes. What I see there is thousands of the same messages: "The SparkPost service is unavailable due to a sending error, and the backup mailer is not enabled or not configured."
  
  Is it possible Civi crashed after the first couple thousand? Maybe I should try limiting the batch size?
  
  A bigger problem seems to be that, because these are registering as "bounces," the process stops, leaving 75% of our mail unsent. But they're never even making it to Spark.
Comments.UserDisplayName: mc_burger
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-10-07T03:35:07.243Z
Comments.Text: OK, now that I've tried a fourth batch, I'm getting the standard setup error (The mail library returned the following error message: The SparkPost service is unavailable due to a sending error, and the backup mailer is not enabled or not configured.)
  
  So now this appears to be an issue with Spark Post, which was working 12 hours ago, and I've changed nothing except the batch size in CiviMail. Any ideas?
Comments.UserDisplayName: mc_burger
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-10-07T04:06:36.517Z
Comments.Text: Do you have access to logs at sparkpost?
Comments.UserDisplayName: Demerit
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-10-07T04:19:57.233Z
Comments.Text: Yes. Nothing registers at sparkpost after the inital 1.2K emails 12 or so hours ago. That went splendidly, but sparkpost hasn't registered any traffic at all since then. I've also confirmed my subdomain setup at sparkpost about 20 times, haha. So Civi's not actually trying to send anything to sparkpost, as far as I can tell. 
  
  In Settings > Outbound Email, the Save & Test now returns the error above ("The SparkPost service is unavailable,") but above that I get the two messages from SparkPost (the domain is ready to send, the webhook has been reset).
Comments.UserDisplayName: mc_burger
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-10-07T04:26:00.163Z
Comments.Text: Civi 5.78 / WordPress (n the meantime, I've updated both Civi and our php).
Comments.UserDisplayName: mc_burger
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-10-07T04:30:19.040Z
Comments.Text: Is it possible sparkpost has blocked your IP because of thousands of fails? Can you telnet from the server, i.e. `telnet smtp.sparkpostmail.com 587`? (I'm assuming that's your config) Or if you don't have telnet but have openssl then `openssl s_client -connect smtp.sparkpostmail.com:587 -starttls smtp`
Comments.UserDisplayName: Demerit
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-10-07T04:45:27.277Z
Comments.Text: Great idea — I can connect from the server with both telnet and openssl, no problems.
  
  I'm convinced SparkPost never saw any of the fails — no sign in the logs or anywhere else. They never made it out of Civi. Looking at Civi logs from the other day, when I was still using gmail, I *do* see a "code: 550, response: 5.4.5 Daily user sending limit exceeded"
  
  Is it possible that Civi has internalized that limit somewhere and is suppressing the attempts to send mail through Spark Post? I know that sounds sort of ridiculous.
Comments.UserDisplayName: mc_burger
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-10-07T05:16:01.733Z
Comments.Text: Oh are you using the sparkpost extension as opposed to regular smtp outbound settings? That looks like that's where that error is coming from: https://lab.civicrm.org/extensions/sparkpost/-/blob/66f43ea70a3919e377962f005b96e13ab7bf06ab/Mail/Sparkpost.php#L55. You'll need to debug what's going in here: https://lab.civicrm.org/extensions/sparkpost/-/blob/66f43ea70a3919e377962f005b96e13ab7bf06ab/CRM/Sparkpost.php which uses the sparkpost api not regular smtp.
Comments.UserDisplayName: Demerit
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-10-07T07:03:58.737Z
Comments.Text: Let us [continue this discussion in chat](https://chat.stackexchange.com/rooms/155594/discussion-between-mc-burger-and-demerit).
Comments.UserDisplayName: mc_burger
Tags: <civimail><sparkpost>
Title: 75% bounce rate ("syntax") — irrespective of mail service
ThreadText: # 75% bounce rate ("syntax") — irrespective of mail service
  
  (Asked by: username_0 on 2024-10-06)
  
  Civi 5.76.2 / WordPress
  
  Starting last week, a mailer returned a bounce rate of around 75% (in this case, a little over 6K addresses), all of them uniformly 'syntax'. I exported them into a new group, copied the message, and resent it. The same thing happened: of the new batch, around 25% sent successfully, and the rest (now around 4K) bounced for 'syntax'.
  
  Having read the old thread here ("Can't send or test bulk mail, but test mail succeeds in System Settings / Outbound email / SMTP"), I figured the culprit might be our gmail config and, determined anyway to implement a better solution, I finally set up a Spark Post account, installed the plugin, and reconfigured (this was really easy, as promised). Tested everything, all good.
  
  I then exported the 4K into their own new group, made yet another copy of the mailing, and fired up the send through Spark.
  
  Alas: exactly the same thing, with roughly 25% sending and the rest "bouncing," all for 'syntax'. But now I have the Spark Mail dashboard to consult, and I can see that the mailout abruptly stopped at the 25% mark … Civi had stopped trying and — for me, this is the hardest-to-understand part — reported that it had all bounced. But it never made it far enough to bounce.
  
  Can anybody explain what's going on?
  
  **Tags:** civimail, sparkpost
  
  > **Comments:**
  > **username_1**: The bounce report has a column "Bounce Reason" that is not checked by default. Sometimes it gives more info.  
  > **username_0**: Hmmm, yes. What I see there is thousands of the same messages: "The SparkPost service is unavailable due to a sending error, and the backup mailer is not enabled or not configured."  Is it possible Civi crashed after the first couple thousand? Maybe I should try limiting the batch size?  A bigger problem seems to be that, because these are registering as "bounces," the process stops, leaving 75% of our mail unsent. But they're never even making it to Spark.  
  > **username_0**: OK, now that I've tried a fourth batch, I'm getting the standard setup error (The mail library returned the following error message: The SparkPost service is unavailable due to a sending error, and the backup mailer is not enabled or not configured.)  So now this appears to be an issue with Spark Post, which was working 12 hours ago, and I've changed nothing except the batch size in CiviMail. Any ideas?  
  > **username_1**: Do you have access to logs at sparkpost?  
  > **username_0**: Yes. Nothing registers at sparkpost after the inital 1.2K emails 12 or so hours ago. That went splendidly, but sparkpost hasn't registered any traffic at all since then. I've also confirmed my subdomain setup at sparkpost about 20 times, haha. So Civi's not actually trying to send anything to sparkpost, as far as I can tell.   In Settings > Outbound Email, the Save & Test now returns the error above ("The SparkPost service is unavailable,") but above that I get the two messages from SparkPost (the domain is ready to send, the webhook has been reset).  
  > **username_0**: Civi 5.78 / WordPress (n the meantime, I've updated both Civi and our php).  
  > **username_1**: Is it possible sparkpost has blocked your IP because of thousands of fails? Can you telnet from the server, i.e. `telnet smtp.sparkpostmail.com 587`? (I'm assuming that's your config) Or if you don't have telnet but have openssl then `openssl s_client -connect smtp.sparkpostmail.com:587 -starttls smtp`  
  > **username_0**: Great idea — I can connect from the server with both telnet and openssl, no problems.  I'm convinced SparkPost never saw any of the fails — no sign in the logs or anywhere else. They never made it out of Civi. Looking at Civi logs from the other day, when I was still using gmail, I *do* see a "code: 550, response: 5.4.5 Daily user sending limit exceeded"  Is it possible that Civi has internalized that limit somewhere and is suppressing the attempts to send mail through Spark Post? I know that sounds sort of ridiculous.  
  > **username_1**: Oh are you using the sparkpost extension as opposed to regular smtp outbound settings? That looks like that's where that error is coming from: https://lab.civicrm.org/extensions/sparkpost/-/blob/66f43ea70a3919e377962f005b96e13ab7bf06ab/Mail/Sparkpost.php#L55. You'll need to debug what's going in here: https://lab.civicrm.org/extensions/sparkpost/-/blob/66f43ea70a3919e377962f005b96e13ab7bf06ab/CRM/Sparkpost.php which uses the sparkpost api not regular smtp.  
  > **username_0**: Let us [continue this discussion in chat](https://chat.stackexchange.com/rooms/155594/discussion-between-mc-burger-and-demerit).  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_0 on 2024-10-08. Score: 2
  
  OK, following up on this today — as best as I can discern/guess — I hit my daily limit at Spark Post (which, despite being a paid plan, starts relatively low and ramps up) and that limit by coincidence wound up "bouncing" 75% of the mailout.
  
  Here's my guess: my confusion came in part because it's not really a bounce — essentially, something is happening in the Spark Post API to signal to Civi that a limit has been reached and that Civi should stop sending the messages, but CiviMail is determined to try anyway. The result is that I see nothing in the Spark Post logs and thousands of bounces in Civi with the same not-terribly-helpful information.
  
  
  ---
  
  