Starter
For your first email program.
$192 billed yearly.
20,000 emails / month
Choose Starter- 5 brands · 3 seats
- 5 custom sending domains
- 500 email verifications/month
- $1.50 / 1,000 extra emails
Zoho Mail uses two different outgoing servers depending on the account type. Personal and free accounts use smtp.zoho.com. Paid organization accounts on a custom domain use smtppro.zoho.com. Both accept port 465 with SSL or port 587 with STARTTLS, and both require authentication. An AI agent wiring "send email from our Zoho account" into an app picks one host from memory, and the wrong host or data-center domain fails authentication.
The hostname is the easy setting to get wrong, because the two are similar and the failure is not obvious. A paid organization account pointed at smtp.zoho.com fails at authentication, which reads as a password problem rather than a wrong-server problem.
Both hostnames accept the same two port and encryption pairings. Port 465 uses SSL, encrypting from the first byte, while 587 upgrades to TLS through STARTTLS after the connection opens.
Match the port to the encryption mode rather than mixing them. Pairing 587 with implicit SSL produces a connection that hangs rather than returning a clear error.
A person sets up Zoho SMTP once, in a mail client, and sees the error when it fails. An AI agent asked to send email from a Zoho account writes the same settings into application code, and that code then runs unattended. Four things change.
smtp.zoho.com. A paid organization account needs smtppro.zoho.com, and an account hosted in another region, such as the EU, needs that region's hostname rather than the .com one. Both mistakes show up as authentication failures, so the agent may keep changing the password instead of the host. The port pairing is the same on both hosts and is explained under SMTP port numbers.The username is the full email address, whether that ends zoho.com or a custom domain. Zoho requires the authenticating address to match the sending address or one of its aliases, so sending as an unrelated address on the same account is rejected.
Accounts with two-factor authentication require an application-specific password rather than the account password. This is generated in Zoho's account security settings and is scoped to the client it was created for.
Store the credential in an environment variable or a secrets manager rather than in the file that uses it.
SMTP access is not enabled by default on every Zoho plan. It is switched on in Zoho Mail settings under the mail-access section, alongside POP and IMAP.
An account that has not enabled it fails at connection or authentication, with no sign that a setting is missing. Check this after the hostname.
Administrators on organization plans can restrict this at the org level, so an individual user may be unable to enable it themselves.
A small booking business has been sending its confirmations through the front-desk Zoho mailbox, a paid organization account. The owner asks a coding assistant to move them off it.
Prompt: "Send our booking confirmations from our own domain instead of the front-desk Zoho account, and show me a test confirmation before any customer gets one."
Before, unguided: the assistant hardcodes smtp.zoho.com, port 465 and the front-desk app password into the booking code, Zoho rejects the login because the organization account lives on smtppro.zoho.com, and the assistant retries with the same password.
With the Nitrosend MCP tools, in this order:
nitro_get_status reads the account's readiness and the sender identity the confirmations would carry.nitro_manage_domains adds and verifies the business domain for sending, so confirmations come from the business rather than a staff mailbox.nitro_manage_template creates the booking confirmation as a reusable template, with the date, time and location as fields.nitro_review_delivery checks the confirmation before anything leaves: validation, spam analysis and a preview of a filled-in booking. It sends nothing.nitro_send_test_message delivers a single sample confirmation to the owner's test address, the one stored with nitro_configure_account.nitro_send_message is then called by the booking code once per booking, reusing an idempotency_key only when it retries that exact booking.nitro_get_insights shows how the confirmations perform over the following weeks, with trends and recommendations.After: confirmations go out from a verified business domain, no Zoho password sits in the booking code, and a retried booking does not produce a second confirmation.
These settings configure a client to send as one Zoho mailbox, which is correct for a person sending their own mail.
Mail an app sends is a different case. Sending through one mailbox carries per-user sending limits sized for a person, sends as an individual rather than as a domain you manage, and reports no deliveries or bounces back to the app.
For mail an app sends, use an email sending service that sends from your own verified domain and reports deliveries and bounces back to the app.
These failures are specific to Zoho, and the first two look like a wrong password when they happen.
smtp.zoho.com used for an organization account. The agent picks the free-account host, the paid organization account rejects the login, and changing the password does nothing. The host has to change to smtppro.zoho.com.Application mail that needs delivery events and a domain identity is better served by a transactional email API, and the wider pattern for agents is covered in sending email from LLMs.
Every plan includes full stack emailing: Flows, Newsletter Campaigns and Transactional Email, plus our NitroWheel LLM and all agent integrations (Claude, ChatGPT, Codex, Cursor and others). Pay for what you send, not who you store.
Every paid plan includes 3 agent inboxes and no Nitrosend footer.
For your first email program.
$192 billed yearly.
20,000 emails / month
Choose StarterFor a growing audience.
$480 billed yearly.
60,000 emails / month
Choose ProFor teams and agencies.
$1,440 billed yearly.
200,000 emails / month
Choose GrowthFor high-volume sending.
$2,880 billed yearly.
500,000 emails / month
Choose ScaleSending 500,000+ emails a month? Get a custom plan designed for you, with volume email pricing and capacity that fits your business.
5,000 emails to start, then 500 emails every month. No expiry on your starter emails.
Daily allowances depend on your plan and sender standing. Strong list, domain and delivery evidence can raise standing, including on day one. Trusted receives the full plan allowance; available email credits, safety checks and delivery pacing still apply.
Free forever. No credit card required. See full comparison →