What counts
#| Allowed | Not allowed |
|---|---|
| Password resets, sign-in links and confirmation codes | Marketing email and promotions |
| Order and booking confirmations | Newsletters and digests sent to your customers |
| Receipts and invoices | Cold outreach |
| A message to your team when someone submits a form | Email to a bought, scraped or imported list of addresses |
| A report you set up for your own team, like a daily summary |
If your app would feel broken without the email, it is almost certainly transactional.
Why the rule exists
#Every app on Playcode sends through shared infrastructure, and mailbox providers like Gmail judge the sender, not the single app. One app that sends marketing or spam hurts the delivery of every other app's password resets. Transactional email only is also a commitment Playcode made to its email provider. For a newsletter or a campaign, use an email marketing service beside your app.
Sending limits
#| Limit | Value |
|---|---|
| Recipients in one email | 10 |
| Emails from one app | 60 a minute and 500 in any 24 hours. Development and Production count separately |
| Verified inboxes under Notifications | 10 per project. The workspace's members do not count |
| Verification link | Works once, for 24 hours. It can be sent again after 60 seconds, up to 5 times a day |
| Email body | 512 KiB for each of the HTML and text parts. A longer part is cut, not refused |
| Attachments | Not delivered |
| Stored email | 90 days, and at most the latest 1,000 emails and 100 MiB per project |
What pauses sending
#Playcode pauses an app's sending by itself when its email looks like a loop or hurts delivery:
| Trigger | Sending pauses after |
|---|---|
| A loop in the app's code | 30 identical emails (same recipients, subject and start of the body) within 10 minutes |
| Bounces | 5 permanent bounces within 24 hours, or 10% of at least 50 emails |
| Spam reports | 2 spam reports within 7 days, or 0.5% of at least 200 emails |
While sending is paused, Settings, Email says "Sending was paused automatically", with the reason. New email is stored as Withheld and is never sent later. Fix the cause, then choose Resume sending.
Playcode also pauses an app that sends marketing email. If the app keeps sending it after the pause, Playcode Email is switched off for its workspace.
Blocked addresses
#| Why | What happens | How to clear it |
|---|---|---|
| A permanent bounce or a spam report | The address shows Suppressed. Email to it is held, even from your own domain | Fix the address, then remove it under Notifications. It must confirm again |
| The person unsubscribed | No more email to them from this project | It stays: removing the address does not clear it |
A temporary bounce, like a full mailbox, blocks nothing.