Policy for sending email on hypernodes

in Troubleshooting

All email send from a hypernode using the local PHP mail() functionality or sent to port 25 on the localhost is routed through our central outgoing email platform that filters spam emails and emails from infected websites. This mail platform handles ratelimitting and enforces a strict limit on your outgoing email flow. If you exceed the limits, your email will be delayed and delivered at a later time.

Introduction

Sending too much mail in a short amount of time could cause jams and mail delayed deliverance when sending to large email providers like Gmail and Microsoft.
When someone sends a large mailing to 5k receipts at once, the email flow for other hypernodes can delay for hours or even cause bounces or blacklisting problems.

To guarantee a fast and healthy email flow for all hypernodes, we enforce a strict emails per minute policy and block mail that is tagged as spam or contain malafide attachments. This is necessary to ensure that your emails are delivered in a reasonable amount of time and will not be marked as spam or deleted by receiving mail-servers.

Our mail-servers make sure only a limited amount of emails can be send per hour from a single hypernode. If you send too much mail in a short time, mail coming from your hypernode will be ratelimited.
This means effectively that all email coming from your hypernode will be stored and delivered at a later time.

Mail policies

Confirmed receiver and opt-in

Sending commercial or charitive emails to companies and individuals that did not explicitly agreed to receive emails is prohibited by Dutch law.

Use only email addresses of receivers that subscribed to your newsletter or ordered products and gave explicit permission (confirmed opt-in) to receive emails.
This applies to new and existing customers. Do not use email lists that you bought or downloaded from third parties without the consent of the receiving party.

Simple and accessible subscription canceling

Provide a visible and easy accessible unsubscribe link in each mailing. Recipients must always be able to unsubscribe from your mailings, even though they have given consent earlier.

Make sure unsubscription is possible with one or two clicks, without need to sign in or re-typing the email address. The chance that your e-mail will be marked as spam will be much smaller.

Having an unsubscribe link in your emails will lower the spamcount on the receiving mailservers, making it more likely to be accepted.

Time limits

Use a rate-limit on your mailings. Don’t send 10k mail at once, but use a mechanism that sends small chunks of only a few mails every few minutes.

When sending emails through or mail platform, the following restrictions apply:

  • Send a maximum of 1 email per second
  • Limit your emails per 10 minutes to a maximum of 200 emails
  • Limit your emails per hour to a maximum of 1000 emails
  • Limit your emails per day to a maximum of 5000 emails
  • Limit your emails per destination domain to a maximum of 60 emails per minute

The limits might look odd, because in case you send 200 emails per 10 minutes, wouldn’t that mean that you send 1200 emails per hour? Unfortunately it does not exactly work that way. They are are hard limits of the maximum amount of emails you can send per second/10 minutes/hour/day/domain, without the risk of being rate-limited.

When the rate-limiter is active, mails will be stored on the mailserver to be delivered at a later time.

Examples:

  • If you want to send 900 emails, you can safely send them in batches of 200 per 10 minutes.
  • If you want to send 1200 emails, you can send 1000 spread over the first hour, and then you have 200 left to send the next hour.

Sending mail through third parties

If you are sending larger mailings containing 5000 emails and up per day you are recommended to use an external mail provider like Mailchimp, Klaviyo to send your mail.
These third party email providers are not rate-limited, as long as the mail does not pass our mail platform.

There are many magento email extensions to send your mail through your own external mail provider or your own mailserver.

Check if mails were being rate-limited

By looking at the mail-headers it is possible to verify whether mails were rate-limited: all mails include a x-byte-ratelimitted header:

X-Byte-Mail-Received-Via: smtp-auth
X-Byte-Domain-ID: 1
X-Byte-Mail-Received-Via: mail-in-forward
X-Byte-SASL-User: byte0001
X-Byte-Domain-ID: 1
X-Byte-Ratelimited: NO

0