SMTP relay
Send through SMTP by changing settings, not code
If your application, CMS or framework lets you configure an SMTP server, it can send through MailLand. Change four settings and get the same domain checks, logs, webhooks and suppression handling as the REST API.
Connection settings
- Host
smtp.mail.land- Port
- 587 (STARTTLS)
- Username
- any value, for example apikey
- Password
- an API key with the SMTP channel enabled
Set up in three steps
Verify your sending domain
Add your domain in the panel and publish the SPF, DKIM and DMARC records it shows. All three must verify before you can send.
Create an SMTP credential
Create a key with the SMTP channel enabled. It is shown once; MailLand stores only a hash of it.
Update your SMTP settings
Enter smtp.mail.land, port 587 with STARTTLS, any username and the key as the password. Then send a test message and find it in the message log.
Configuration for common stacks
These are configuration examples, not plugins. MailLand has no WordPress, Laravel or Django package: you use the SMTP support your stack already has.
MAIL_MAILER=smtp
MAIL_HOST=smtp.mail.land
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=ml_pet_...
[email protected]
MAIL_FROM_NAME="Your App"The same platform as the API
The relay is a second door into the same account, not a separate product with separate rules.
Domain checks
The sender address must be on a verified domain. A message from an unverified domain is refused with 550, before it is queued.
Logs and webhooks
Messages sent over SMTP appear in the message log and produce the same delivered, deferred, bounced, failed and complaint events as API sends.
Suppression handling
Hard bounces and complaints go on your suppression list, and later messages to those addresses are refused.
Key rules
Domain scope, IP allow-lists and the key's per-minute, hourly and daily limits apply exactly as they do for the API. A sandbox key accepts and records mail without delivering it.
A clear answer during the SMTP conversation
The relay answers each message during the SMTP conversation, so your mail library sees acceptance or the reason for a refusal at once. A 250 means MailLand accepted the message for delivery, not that the recipient's server has received it: delivery events follow.
- 250
- Accepted for delivery.
- 421
- Temporary: a rate limit or the monthly quota was reached. Retry later.
- 451
- Temporary: sending is paused for the account. Keep the message queued and retry.
- 550
- Permanent: for example the domain is not verified or the recipient is suppressed.
- 552
- Permanent: the message is larger than 15 MiB.
Limits to know
- Messages up to 15 MiB, attachments included.
- Up to 5 recipients per message with a transactional key, up to 1,000 with a marketing key.
- 30 connections per minute and 300 per hour from one IP address, counted before authentication.
- Only port 587 with STARTTLS is published. Port 465 is not offered, and port 25 belongs to the inbound gateway.
SMTP or the REST API?
Use SMTP when your software already speaks it. Use the API when you want the features that SMTP cannot carry.
| SMTP relay | REST API | |
|---|---|---|
| Answer | 250 or an error code, during the conversation | 202 Accepted or an error, then events |
| Stored templates | No, send the full MIME message | Yes, with templateId |
| Scheduled sending | No | Yes, up to 7 days ahead |
| Batch sending | No | Yes, with a marketing key |
| Per-recipient variables | No | Yes |
| Attachments | Standard MIME | Base64 in JSON |
| Open and click tracking | Set per domain | Set per domain or per message |
Questions about the SMTP relay
Which port and encryption should I use?
Port 587 with STARTTLS. It is the only port published for the relay. Port 465 with implicit TLS is not offered.
Can I log in with my account email and password?
No. The password is an API key with the SMTP channel enabled. The username is ignored, so any value such as apikey works.
Does it work with WordPress?
Yes, through any SMTP plugin that lets you enter a host, port, username and password. MailLand does not publish its own WordPress plugin.
Can I use stored templates or scheduling over SMTP?
No. Over SMTP you send a finished MIME message. Templates, scheduled sending, batch sending and per-recipient variables are REST API features.
Is there a message size limit?
Yes, 15 MiB per message including attachments. A larger message is refused with 552.
What should my application do with a 421 or 451?
Both are temporary: keep the message and retry later. A 5xx code is permanent, so do not retry the same message unchanged.
Change your SMTP host today
Create a free account, verify your domain and create an SMTP credential. 1,000 emails a month are free.