Advice on sending many emails (newsletter)

Hi,

For a website I am working I am thinking of implementing a newsletter directly in Kirby. I have the setup roughly mapped out mentally:

  1. Signup form, collect email address (create unique id for user).
  2. Send confirmation email with link (using unique id).
  3. Add user.
  4. Create newsletter page (regular kirby page).
  5. Send newsletter → send button using Janitor, get newsletter page content and format html correctly for email clients, send to all subscribers.

My question is, how resource intensive is sending emails using php. Is it feasible to send max ~1000 emails using the method outlined here:

foreach ($users as $user) {
  try {
    $kirby->email('management', [
      'to' => $user,
      'template' => 'user-specific',
      'data' => [
        'user' => $user
      ]
    ]);
  } catch (Exception $error) {
    echo $error;
  }
}

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.

Thanks for any advice.

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.

Tipp: Use subdomains for sending the newsletter if the root domain is used for business.

Example:
news@m.example.com // marketing mass mails
user@u.example.com // user (password, transactional)

etc.

So you protected the root domain for the business.