Transactional & Marketing Mail
Send transactional and marketing email from your applications over SMTP or the HTTP API, with domain authentication, suppression lists and delivery events.
Transactional & Marketing Mail is a sending-only email service. Your applications send through it over SMTP or the HTTP API: sign-up confirmations, password resets, receipts and alerts (transactional mail), or newsletters and promotions (marketing mail). Yeap Cloud signs each message with DKIM for your domain, delivers it, handles bounces and complaints, and reports every step back to you as events.
In the console it lives under Email sending in the Email section of the left-hand navigation (/tm/streams).
This service only sends mail. It has no inbox and can't receive replies. To receive mail at your domain, use Domain Mailbox.
Key concepts
| Concept | What it means |
|---|---|
| Streams | The unit you buy. Each subscription creates one stream, and each stream has its own quota, API keys, sending log, webhook and SMTP host. You can have several streams, for example one per application. |
| Stream type | Transactional or Marketing. You choose it when you buy the stream and can't change it later. Marketing streams have extra requirements: a postal address, a mandatory unsubscribe link and stricter content scanning. |
| API key | A secret that starts with ytm_. It's the Bearer token for the HTTP API and also the SMTP password (the username is always apikey). It's shown only once, when you create it. |
| Sending domain | The domain in your From address. It must be verified (its DKIM record must be live) before you can send from it. A domain can be shared by all your streams or bound to one stream. |
| Sandbox | Streams on the free plan start in the sandbox (paid plans skip it): at most 100 emails a day, and only to verified recipient addresses or addresses at your own verified domains. The sandbox lifts when your account reaches credit level Lv2. |
| Credit level | Your account's sending reputation, from Lv0 to Lv6. It rises as you send clean mail over time. On the free plan it sets your monthly volume and hourly limit. On paid plans it scales the hourly limit and decides whether you can use marketing streams. |
| Suppression list | Addresses that won't be sent to. Hard bounces and complaints are added automatically, unsubscribes are added per stream, and you can add or remove addresses yourself. |
| Category | An optional label for a message (category in the API, the X-Yeap-Category header over SMTP). Use it to filter the sending log and to let recipients unsubscribe from one kind of mail only. |
| Events and webhooks | Every message moves through statuses such as queued, delivered, bounced or complained. You can see them in the console, query them with the API, or receive them on your own HTTPS endpoint. |
Plans
At the time of writing these plans are available. The New stream dialog in the console shows current prices and limits.
| Plan | Price | Emails per month | Over the included volume | Sending domains | Hourly limit | Marketing mail |
|---|---|---|---|---|---|---|
| Free | Free | 0 included; level allowance only (100–3,000) | Not allowed: sending stops until next month | 1 | By level (20–500) | No |
| Basic | ¥39/month | 50,000 | ¥0.80 per 1,000 | 3 | 2,000 × level factor | Yes (Lv2 and up) |
| TM Pro | ¥129/month | 300,000 | ¥0.60 per 1,000 | 10 | 10,000 × level factor | Yes (Lv2 and up) |
| TM Enterprise | ¥499/month | 2,000,000 | ¥0.40 per 1,000 | Unlimited | 50,000 × level factor | Yes (Lv2 and up) |
- Free plan volume comes from your credit level: 100 emails a month at Lv1, rising to 3,000 at Lv6. An account can have only one free stream. Paid plans don't get this allowance: they include the volume in the table.
- Hourly limit on paid plans is the plan value multiplied by your level factor: ×0.5 at Lv1, ×0.75 at Lv2, ×1 at Lv3, ×1.25 at Lv4, ×1.5 at Lv5 and ×2 at Lv6.
- Annual billing costs 10 times the monthly price (¥390, ¥1,290 and ¥4,990 a year), so you get two months free.
- One email = one recipient. A message sent to three recipients counts as three emails against the monthly volume and the hourly limit.
- Overage is billed per started block of 1,000 emails. Each paid plan has a spending cap on unpaid overage (¥200, ¥1,000 and ¥5,000). When the cap is reached, sending stops until you pay the overage bill. See Limits, sandbox and compliance.
- The free plan starts in the sandbox; paid plans skip it. The sandbox lifts when your account reaches Lv2.
Credit levels
Your account has a credit level from Lv0 to Lv6. New accounts start at Lv1. On the free plan, the level sets your monthly volume and hourly limit. On paid plans, it scales the hourly limit, marketing streams need Lv2 or higher, and Lv5 and Lv6 get slightly more tolerant automatic-pause thresholds. At Lv0 the account can't send. Levels are evaluated daily and go up one at a time as your account gets older, sends more delivered mail and keeps bounce and complaint rates low. Lv2 only needs a verified account email, one verified sending domain and an account at least 7 days old. An automatic pause lowers your level by one, and sending a virus drops it to Lv0.
The Trust level card on the Email sending page shows your current level, how much of this month's free allowance you've used (free plan), and what the next level requires. The full table is in Limits, sandbox and compliance.
Quick start
Open Email sending and click New stream.
Choose a plan, enter a Name such as
my-app, and choose the Type: Transactional or Marketing. Marketing is only available on paid plans, and your account needs credit level Lv2 or higher to send marketing mail. If the plan offers several billing cycles, choose one under Billing cycle.Click Add to cart and pay at checkout. The stream appears in the list once payment is complete.
Open the stream, go to the Sending domains tab and click Add domain. Enter the domain you want to send from, for example
example.comormail.example.com.In the DNS panel that opens, add the records. If the domain is hosted in Yeap Cloud DNS, click Add in one click. Otherwise, add the records at your DNS provider. See Sending domains and DNS.
Click Verify. The domain shows Verified once its DKIM record is live.
Go to the API key tab, click Create key, enter a name and copy the key. It's shown only once.
Send a test message:
bashcurl -X POST https://api.tm.yeapcloud.net/v1/send \ -H "Authorization: Bearer ytm_your_api_key" \ -H "Content-Type: application/json" \ -d '{ "from": "Example <noreply@example.com>", "to": "you@example.com", "subject": "Hello from Yeap Cloud", "text": "It works." }'Open the Message log tab to follow the message from Queued to Delivered.
While the stream is in the sandbox, you can only send to addresses at your own verified domains or to addresses you've verified on the Sandbox recipients tab. Add your own address there first if you want to test with a mailbox at another provider.
The stream page
Click a stream in the list to open it. Depending on the stream, these tabs are available:
| Tab | Use |
|---|---|
| Overview | Monthly usage, hourly allowance left, 7- or 30-day statistics (sent, delivery rate, bounce rate, complaint rate, opens, clicks), and the SMTP and HTTP API settings |
| API key | Create and revoke API keys |
| Sending domains | Add, verify and delete sending domains |
| Message log | Messages from the last 30 days and the events of each one |
| Suppression list | Addresses that won't be sent to |
| Webhook | Push events to your own HTTPS endpoint |
| Marketing settings | Marketing streams only: postal address, categories, open and click tracking |
| Sandbox recipients | Only while the stream is in the sandbox: recipient addresses you've verified for testing |
Stream status
| Status | Meaning | Sending |
|---|---|---|
| Normal | Normal | Allowed |
| Paused | Paused automatically because bounce, complaint or spam levels were too high. The reason is shown on the stream. | Refused with a temporary error. Contact support to resume. |
| Disabled | The subscription is suspended, for example because a renewal wasn't paid | Refused until the subscription is active again |
| Banned | A message contained a virus. All API keys of the stream were revoked. | Refused. Contact support. |
Next steps
- Sending domains and DNS: add and verify the domains you send from.
- SMTP and HTTP API: connect your application and send mail.
- Events and webhooks: track delivery and receive events on your server.
- Suppressions and unsubscribe: manage who doesn't get mail, and how unsubscribing works.
- Limits, sandbox and compliance: credit levels, sending limits, overage, automatic pauses and the sending policy.