Open malvibid opened 5 months ago
Would these settings prevent the campaign from Finishing before all the emails are sent?
You have to find out from your SMTP provider. For example, Amazon SES starts you out at around 12 per second I think, and you can gradually ask them for increases.
2.) Yeah, I have that same problem. Some info in my comments here https://github.com/knadh/listmonk/issues/1762
Thanks for clarifying. I resolved email throttling issues in Listmonk by adjusting the message rate to 12 messages per second and the sliding window limit to 720 messages per minute.
To identify subscribers who hadn't received the email, I followed these steps:
TEXTSPLIT
function.psql -U listmonk -d listmonk
\copy (SELECT * FROM subscribers) TO '/path/to/your/subscribers.csv' WITH CSV HEADER;
This was necessary because Listmonk's GUI doesn't support ID searches or include the database ID in exports.
XLOOKUP
in Excel to match the extracted IDs with subscriber details from the CSV.Enhancement Suggestion: The workaround was effective, but it's a roundabout way of managing newsletter lists and errors, leaving me with extra cleanup. It would greatly benefit users if Listmonk simplified this process within the app itself, by making it easier to identify undelivered emails to avoid potential spamming with duplicate messages.
In any case, thank you for building and open-sourcing such an amazing tool.
The workaround was effective, but it's a roundabout way of managing newsletter lists and errors, leaving me with extra cleanup. It would greatly benefit users if Listmonk simplified this process within the app itself, by making it easier to identify undelivered emails to avoid potential spamming with duplicate messages.
Hi @malvibid. You can setup bounce tracking to accurately account for and automatically disable problematic e-mails.
Thank you for you reply, @knadh. I have set up bounce processing, and have no known issues there. But what I meant was identifying undelivered emails if a campaign finishes before all subscribers of a list are sent an email.
In my case, only 578 / 1,450 subscribers were sent an email and the campaign Finished. So, 872 people never got the email. It'd useful to know who these 872 people were so that I can try to send them an email again. The logs give me the subscriber ID, but its not practical for me to check these one-by-one for 872 people, but it is really the only option available in the app at the moment.
Additionally, my original list is called Newsletter
with 1450 subs, and I had to create a new List with these 872 people called - Newsletter-2
. This makes list management slightly tricky. Ideally, I do not want to create a new list, but maybe have just a temporary sub-list/segment of the same list Newsletter
that I can send the emails to.
Yeah, I don't think bounce tracking is related to this at all. And some of us aren't lucky enough to get subscriber IDs in the logs. https://github.com/knadh/listmonk/issues/1762
Even with malvibid's helpful directions it would take me ages to figure out how to do all that.
It would be great to have something like https://sesdashboard.com/ integrated into listmonk.
@malvibid I agree. In an ideal scenario, failed campaign e-mails have to be logged in a table separately and there has to be a way to retry/resend a campaign just to those IDs. I've thought about it from time to time (as an extension to segmentation/ephemeral lists) but haven't come across any easy-enough approaches. In the last version, the concurrent messaging core was completely re-written and that should make achieving this simpler, hopefully. I'll consider this for the next version.
Re-opening this issue for tracking.
For us, we use an internal email relay. We got a load of these errors:
2024/05/14 13:58:41 manager.go:485: error sending message in campaign Kubernetes 1.28 - Upgradeschema: subscriber 32576: timed out waiting for free conn in pool
When sending a test email in the SMTP settings pane, it took about 20 seconds. With the SMTP settings being default, could it be that Listmonk is sending more emails per second than that are resolved per second, "filling up the pool"? (Not sure how this works technically).
We switched to a secondary relay and this caused the test message to be sent immediately again. Hoping that this will fix this for us now momentarily.
We just ran into this same issue and now apparently I'm going to spend hours doing manual cross-referencing from Postgres to figure out who got the email and who didn't. Absolutely wonderful, this is exactly the type of stuff I wanted to be doing today.
In summary, this "high performance" email software can't even send emails properly to whole list without crashing and burning in the process if there's throttling errors, and there's no recovery. Maybe you should mention this "limitation" in the README, so anybody who is looking for a mailing list manager with an actual email list knows to stay away.
I need to send a Newsletter to all 1,450 Subscribers in my Newsletter list. I started the campaign, but the campaign finished after sending only 578 / 1,450. Upon investigating I have found there is a 454 Throttling Failure.
Extract of Logs:
My performance settings were the default.
Concurrency: 10 Message Rate: 10 Batch Size: 10000 Maximum Error Threshold: 1000
I have now adjusted the settings as follows.
1.) Would these settings prevent the campaign from Finishing before all the emails are sent? And Pause the campaign and allow me to investigate incase there is an error?
2.) There's ~870 subscribers in this list that didn't receive the email. I want to create a second list to resend the emails to these subscribers only. But how do I retrieve this list? The logs only show me, what I assume is the Subscribers ID. I have extracted these ID's using Excel functions. How can I use these ID's to create a new list -
Newsletter-2
?