I would need to use foreach user method because every email has custom “unsubscribe link” (using unique id). I want to avoid using a email service like mailjet if it’s not necessary. Is this a misguided approach or worth going for? Has anyone already done this.
I would really reccomend using an email service for this, rather than the SMTP on your mail box. Alot of hosts limit the number of daily emails that can be sent to prevent spam. Frequently sending out large amounts of emails will also be a red flag to them and might result in your maibox getting locked or suspended.
Services like Mailchimp or Mailcoach would good choices.
If you want to be more in control of your data, you could use something like sendy to host your clients and their customers and campaigns: https://sendy.co/
But even then you have to use Amazon SES for the actual sending of the mails.
You won’t get reliable delivery by self sending.
If you absolutely don’t want to use an external service, I’d recommend keeping somehow track of which users you submitted the email to. This allows you to resume the process if for some reason it’s interrupted.
I agree with the previous comments on the bad reliability of mass-sending from your web server.
If you don’t want to use an external newsletter service, you can alternatively use an external email sending service. Amazon SES was suggested before, but there are more friendly alternatives like Postmark. You can integrate services like that directly into your site. So you will still be able to generate the emails directly from Kirby, but the actual sending will be much more reliable.