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
SMTP configuration is the set of values a mail client or application needs to submit outgoing mail to a server: the hostname, the port, the encryption type and the authentication credential. All four must agree with what the server expects, and a mismatch on any one of them fails the connection. An AI agent asked to set up an app's email tends to type these four values into a config file with a mailbox password, which works until the password rotates or the From domain fails alignment.
The hostname identifies the submission server, and it is usually distinct from the incoming mail hostname even at the same provider. It comes from the provider's own documentation rather than from the domain's MX record, which points at the servers that receive mail rather than the one that accepts submissions.
| Value | What it selects | Gmail example |
|---|---|---|
| Hostname | The submission server | smtp.gmail.com |
| Port | The submission mode | 587 (or 465) |
| Encryption | STARTTLS on 587, implicit TLS on 465 | STARTTLS |
| Credential | Username and password pair | Full Gmail address and an app password |
The port selects the submission mode. Port 587 is the submission port defined in RFC 6409, where the session upgrades through STARTTLS, and port 465 carries an implicitly encrypted connection recommended for submission in RFC 8314.
The encryption type must match the port. Selecting STARTTLS against 465 fails because that port expects a TLS handshake before any command, and selecting implicit SSL against 587 fails for the mirror-image reason.
The credential is the username and password pair. On most hosted mail the username is the full email address rather than the local part, because one server serves many domains.
An agent asked to make an app send email usually reaches for an SMTP settings form or a mailer library and fills in the four values. That leaves the app holding a long-lived mailbox password, an encryption mode guessed from the framework's default rather than read from the provider, and no view of domain alignment or bounces, because none of that passes through the submission session.
The alternative is to send through an API instead of a mailbox login. With Nitrosend, the app calls the transactional email API, the agent works through the MCP server, or a script uses the CLI. What gets configured is a verified sending domain and an API key in the app's environment, not a hostname, port and password. Connecting the MCP server to an agent such as Claude is a one-time step a person does in the client's settings.
The four values are also the background for reading the SMTP commands a session exchanges and the SMTP authentication step that checks the credential.
Google publishes smtp.gmail.com as the submission host, accepting port 465 with SSL or port 587 with TLS. Authentication is required on both.
Sign in with the full Gmail address as the username, paired with a 16-character app password generated in Google Account security settings, which Google issues only on accounts that have two-step verification enabled.
The account password does not work. Google blocks account passwords for third-party mail clients on accounts with two-step verification, because an SMTP client cannot complete the second factor, so the app password exists to fill that gap, as Google explains on its sign in with app passwords page.
Match the sender address to the authenticated account. A From header that does not correspond to the authenticated mailbox or an authorized domain can be rejected outright and fails alignment checks at the receiver even where it is accepted.
Read the credential from the environment rather than the source. A password in a repository is a live sending credential distributed to everyone with read access, and rotating it is the only remedy afterwards.
Send a test before any real send. A passing test proves the hostname, port, encryption and credential agree, which is the scope of what a configuration can guarantee. A check that validates the settings without attempting the thing the settings are for is not a check, so a preflight that only confirms the fields are filled in can pass while the send itself fails.
On Nitrosend that wider check is nitro_review_delivery, a read-only review that never sends. It runs validation, spam analysis, preflight and previews on the email itself, which a connection test cannot see.
A correct configuration authenticates a client to one server. It says nothing about whether a receiving system will place the resulting message in an inbox, because that decision belongs to the receiver and happens after acceptance.
Domain authentication is a separate layer entirely. SPF, DKIM and DMARC are DNS records published for the sending domain and evaluated by the receiver, and no client setting substitutes for them.
That layer is where a sending domain gets checked. On Nitrosend, nitro_manage_domains adds, verifies and diagnoses the sending domain, and nitro_get_insights reports the email analytics after sends, because none of this is visible from the four submission settings. The IMAP vs SMTP split is similar: the submission settings cover sending, not what happens in the recipient's mailbox.
Acceptance is not delivery. The submission server returning success means it has taken responsibility for the message, and bounces, deferrals and spam filing all happen after that point without notifying the client.
The prompt: "Our app sends reset emails through a Gmail app password. Move it to Nitrosend and show me a test first."
Before. The app's mail settings hold smtp.gmail.com, port 587, STARTTLS, the Gmail address and a 16-character app password in .env, and every reset email leaves from a personal mailbox.
After. The app's sending domain is verified once and the app holds a Nitrosend API key in its environment. The agent gets there in a fixed order:
nitro_get_status reports whether the account is ready and which sender identity the reset email would leave from.nitro_manage_domains adds the app's own sending domain, verifies it and diagnoses any DNS record still missing.nitro_manage_template creates the reset email as a reusable template with a slot for the reset link.nitro_review_delivery checks the reset template before anything goes out, without sending it.nitro_send_test_message mails one real copy of the reset email to the team's test address. That address is set once in sender defaults with nitro_configure_account, not passed in the call.nitro_send_message once per reset request, reusing the same idempotency_key only when it retries that exact request.nitro_get_insights reports how reset emails perform after the switch, with trends and recommendations.The app password can then be revoked in the Google account, which removes the last live mailbox credential from the app's environment.
Some networks and hosting providers block outbound SMTP, so the first failure can be no answer at all. The list below runs from network causes to the agent-specific ones.
Port 587 with STARTTLS is the submission port defined in RFC 6409, and port 465 carries implicit TLS, which RFC 8314 recommends for submission. The encryption setting has to match the port. STARTTLS against 465 fails, and implicit TLS against 587 fails, because each port expects a different handshake before the first command.
No. The MX record points at the servers that receive mail for a domain. The submission hostname is the server that accepts mail from an authenticated client, and it comes from the provider's own documentation. Google, for example, publishes smtp.gmail.com as the Gmail submission host, on port 465 or 587.
A passing test proves the hostname, port, encryption and credential agree. It does not check whether the From domain is verified and aligned with SPF, DKIM and DMARC, or how the receiver judges the source. Those decisions happen after the server accepts the message, so bounces and spam filing never reach the sending client.
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 →