I need to send seedlist emails using KumoMTA. Is there an option available to do this?
Well, yes. It’s an MTA and it has all the required functions to send emails.
But can it and should it send emails directly from itself? Probably no
However, KumoMTA supports two methods for email injection:
- SMTP Server
- HTTP API
You can write a small script in your favourite language (or even ask ChatGPT) to connect to your MTA and send emails through it
In a former life I supported a product that allowed for seedlist injection. There are complex issues around doing that properly and you are the first person to ask if we can do it in KumoMTA. No, it is not a built-in function.
One of the problems with seedlisting is that MTAs that do it tend to just drop the whole seedlist in first, then send the rest of the mail, or last or wherever, but it is just dropped in, not “seeded” like you might suspect. Ideally, it will be filtered in like a sieve, either alphabetically with the localpart or by domain ( all the gmails together with real mail etc).
Personally, I think seeding is better done by your injection system so that you can “seed” your list in the way it makes sense to you.
If you want it as an MTA function, I’d becurious to know :
- Why not use your injector / CRM / list manager tool instead?
- Are you OK with the list being dropped in at the beginning of a send with no logical mesh?
- If you do want it “seeded” in to the mail stream, how woudl you do it? alphabetically? by domain? (?)
We provide SMTP details to our clients on their end , clients push messages to smtp. but the seed list emails need to be sent from our end. That’s the reason. I need to send a predefined set of emails whenever a client’s push email reaches the 100th email.
for the kumomta setup with my previous employer, we log events by pushing events to a webhook. I think you can count the emails per user there and push the seedlist on 100th email.
maybe kumomta has a more efficient way of counting deliveries? not really sure…
In our system, the seedlist is implemented by the upstream MTA (automation tool), KumoMTA only as a sending.
That would be my recommendation. 100 emails will pass in a millisecond, so counting it seems unnecessary.
Even worse, if you are sending very slowly, say 1 message every minute, then 100 minutes later you dump your seedlist at 6000 messages per second, that is going to cause you some D12Y issues.
I highly recommend doing this in your injection system. If you must do it in KumoMTA, you can easily set up a counter in Lua and then trigger a file to inject internally.
But it seems like the wrong solution to me
I’ve written scripts that rely on SWAKS to send to lists, it’s a simple shell script that loops though a csv and sends the required content. Depending on how big your seed list is you might not want to send on every 100th email, you might generate a lot of seed test results.
Yeah, we just send the seedlist once a day
We still get pretty accurate results
is there any option to inject messages using background process without effecting client request response ?
Sure. It is all config-as-code so you can do whatever you like. We do not have a built-in function, but you can use the inject api to push messages in the background.
Ok, thanks. But how can I run this in the background? I’ve checked the documentation, but I didn’t find anything related to background processes.
nohup ./script.sh > /dev/null 2>&1 &
Is this is working kumomta ?
It has nothing to do with KumoMTA. It’s used to run a script in background