update Updated January 2026 public Multi-Region

Zoho Mail SMTP Settings (2026)

Complete guide to configure Zoho Mail SMTP for personal and business accounts. Learn about regional servers, App Passwords, and SMTP relay for high-volume sending.

Zoho Zoho SMTP Quick Reference

SMTP Server (Personal) smtp.zoho.com
SMTP Server (Business) smtppro.zoho.com
Port (SSL/TLS) 465 (SSL - Recommended)
Port (STARTTLS) 587 (TLS)
Username Your full Zoho email (example@zohomail.com or you@yourdomain.com)
Password Account password (or App Password if 2FA enabled)
Authentication LOGIN / PLAIN

account_circle Zoho Account Types

person Zoho Mail (Personal)

Free personal email accounts (@zohomail.com)

SMTP Server smtp.zoho.com
Daily Limit ~500 emails
Custom Domain close

business Zoho Workplace (Business) Recommended

Business email with custom domains

SMTP Server smtppro.zoho.com
Daily Limit 300 ร— users
Custom Domain check_circle
info

How to identify your account type: If your email ends with @zohomail.com, you have a personal account. If you use a custom domain (you@yourdomain.com), you have a Zoho Workplace (business) account.

public Regional SMTP Servers

warning

Important: Use the correct regional server

Zoho has data centers in different regions. You MUST use the SMTP server matching your account's region. Using the wrong server will result in authentication errors.

Region Personal Account Business Account Login URL
๐Ÿ‡บ๐Ÿ‡ธ United States smtp.zoho.com smtppro.zoho.com mail.zoho.com
๐Ÿ‡ช๐Ÿ‡บ Europe (EU) smtp.zoho.eu smtppro.zoho.eu mail.zoho.eu
๐Ÿ‡ฎ๐Ÿ‡ณ India smtp.zoho.in smtppro.zoho.in mail.zoho.in
๐Ÿ‡ฆ๐Ÿ‡บ Australia smtp.zoho.com.au smtppro.zoho.com.au mail.zoho.com.au
๐Ÿ‡ฏ๐Ÿ‡ต Japan smtp.zoho.jp smtppro.zoho.jp mail.zoho.jp
๐Ÿ‡จ๐Ÿ‡ณ China smtp.zoho.com.cn smtppro.zoho.com.cn mail.zoho.com.cn
๐Ÿ‡ธ๐Ÿ‡ฆ Saudi Arabia smtp.zoho.sa smtppro.zoho.sa mail.zoho.sa
๐Ÿ‡จ๐Ÿ‡ฆ Canada smtp.zoho.ca smtppro.zoho.ca mail.zoho.ca

lightbulb Tip: Check which URL you use to log in to Zoho Mail to determine your region. For example, if you log in at mail.zoho.eu, use smtp.zoho.eu.

key App-Specific Passwords (2FA Users)

If you have Two-Factor Authentication enabled on your Zoho account, you'll need to generate an App-Specific Password for SMTP:

1

Go to Zoho Accounts

Sign in and navigate to Security settings:

https://accounts.zoho.com/home#security/security_pwd open_in_new
2

Click 'Application-Specific Passwords'

Find this option under the Security section.

3

Generate new password

Enter a name for the application (e.g., 'SMTP Client' or 'My App').

4

Copy and save the password

Zoho will show a 12-character password. Copy it immediately as it won't be shown again. Use this password instead of your account password for SMTP authentication.

info If you don't have 2FA enabled, you can use your regular Zoho account password for SMTP authentication. However, we recommend enabling 2FA and using App-Specific Passwords for better security.

toggle_on Enable SMTP Access

SMTP access may need to be enabled in your Zoho Mail settings:

1

Open Zoho Mail Settings

Click the gear icon in Zoho Mail and go to 'Mail Accounts'.

2

Find IMAP/POP settings

Look for 'IMAP Access' or 'Email Forwarding and POP/IMAP'.

3

Enable IMAP Access

Toggle IMAP access ON. This also enables SMTP access for the account.

code Code Examples

# Python - Using smtplib (standard library)
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# Zoho SMTP Configuration
# Use the correct regional server for your account!
SMTP_HOST = "smtp.zoho.com"      # Personal US account
# SMTP_HOST = "smtppro.zoho.com"  # Business US account
# SMTP_HOST = "smtp.zoho.eu"      # EU region
# SMTP_HOST = "smtp.zoho.in"      # India region

SMTP_PORT = 465  # SSL port
ZOHO_EMAIL = "your-email@zohomail.com"
ZOHO_PASSWORD = "your-password-or-app-password"

def send_email(to_email, subject, body):
    # Create message
    msg = MIMEMultipart()
    msg['From'] = ZOHO_EMAIL
    msg['To'] = to_email
    msg['Subject'] = subject
    msg.attach(MIMEText(body, 'plain'))

    # Connect and send using SSL
    with smtplib.SMTP_SSL(SMTP_HOST, SMTP_PORT) as server:
        server.login(ZOHO_EMAIL, ZOHO_PASSWORD)
        server.send_message(msg)
        print("Email sent successfully!")

# Alternative: Using STARTTLS (port 587)
def send_email_tls(to_email, subject, body):
    msg = MIMEMultipart()
    msg['From'] = ZOHO_EMAIL
    msg['To'] = to_email
    msg['Subject'] = subject
    msg.attach(MIMEText(body, 'plain'))

    with smtplib.SMTP(SMTP_HOST, 587) as server:
        server.starttls()
        server.login(ZOHO_EMAIL, ZOHO_PASSWORD)
        server.send_message(msg)

# Usage
send_email(
    "recipient@example.com",
    "Hello from Zoho!",
    "This email was sent via Zoho Mail SMTP."
)
// PHP - Using PHPMailer
// Install: composer require phpmailer/phpmailer

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {
    // Server settings
    $mail->isSMTP();
    $mail->Host       = 'smtp.zoho.com';  // Use correct regional server
    $mail->SMTPAuth   = true;
    $mail->Username   = 'your-email@zohomail.com';
    $mail->Password   = 'your-password-or-app-password';
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
    $mail->Port       = 465;

    // For Business accounts:
    // $mail->Host = 'smtppro.zoho.com';

    // Recipients
    $mail->setFrom('your-email@zohomail.com', 'Your Name');
    $mail->addAddress('recipient@example.com');

    // Content
    $mail->isHTML(true);
    $mail->Subject = 'Hello from Zoho!';
    $mail->Body    = 'This is a <b>test email</b> sent via Zoho SMTP.';
    $mail->AltBody = 'This is a test email sent via Zoho SMTP.';

    $mail->send();
    echo 'Email sent successfully!';
} catch (Exception $e) {
    echo "Failed to send: {$mail->ErrorInfo}";
}
// Node.js - Using Nodemailer
// Install: npm install nodemailer

const nodemailer = require('nodemailer');

// Select the correct regional server for your account
const ZOHO_SERVERS = {
    us: 'smtp.zoho.com',        // Personal US
    us_pro: 'smtppro.zoho.com', // Business US
    eu: 'smtp.zoho.eu',        // Europe
    eu_pro: 'smtppro.zoho.eu', // Business Europe
    in: 'smtp.zoho.in',        // India
    au: 'smtp.zoho.com.au',   // Australia
};

// Create transporter with Zoho SMTP
const transporter = nodemailer.createTransport({
    host: ZOHO_SERVERS.us, // Change to your region
    port: 465,
    secure: true,
    auth: {
        user: 'your-email@zohomail.com',
        pass: 'your-password-or-app-password'
    }
});

// Send email
async function sendEmail() {
    try {
        const info = await transporter.sendMail({
            from: '"Your Name" <your-email@zohomail.com>',
            to: 'recipient@example.com',
            subject: 'Hello from Zoho!',
            text: 'This email was sent via Zoho SMTP.',
            html: '<p>This email was sent via <b>Zoho SMTP</b>.</p>'
        });

        console.log('Email sent:', info.messageId);
    } catch (error) {
        console.error('Error sending email:', error);
    }
}

sendEmail();
# Ruby - Using Mail gem
# Install: gem install mail

require 'mail'

# Configure Zoho SMTP
Mail.defaults do
  delivery_method :smtp, {
    address:              'smtp.zoho.com',  # Use correct regional server
    port:                 465,
    user_name:            'your-email@zohomail.com',
    password:             'your-password-or-app-password',
    authentication:       :login,
    ssl:                  true,
    tls:                  true,
    enable_starttls_auto: true
  }
end

# Create and send email
mail = Mail.new do
  from     'your-email@zohomail.com'
  to       'recipient@example.com'
  subject  'Hello from Zoho!'
  body     'This email was sent via Zoho Mail SMTP.'
end

mail.deliver!
puts "Email sent successfully!"
// Go - Using net/smtp and crypto/tls
package main

import (
    "crypto/tls"
    "fmt"
    "net/smtp"
    "strings"
)

func main() {
    // Zoho SMTP Configuration - use correct regional server!
    smtpHost := "smtp.zoho.com"  // Personal US
    // smtpHost := "smtppro.zoho.com"  // Business US
    // smtpHost := "smtp.zoho.eu"      // Europe
    smtpPort := "465"
    zohoEmail := "your-email@zohomail.com"
    zohoPassword := "your-password-or-app-password"

    // Email content
    to := []string{"recipient@example.com"}
    subject := "Hello from Zoho!"
    body := "This email was sent via Zoho SMTP using Go."

    // Build message
    message := strings.NewReader(
        "From: " + zohoEmail + "\r\n" +
        "To: " + strings.Join(to, ",") + "\r\n" +
        "Subject: " + subject + "\r\n" +
        "MIME-Version: 1.0\r\n" +
        "Content-Type: text/plain; charset=\"utf-8\"\r\n" +
        "\r\n" + body,
    )

    // TLS config
    tlsConfig := &tls.Config{ServerName: smtpHost}

    // Connect with SSL
    conn, err := tls.Dial("tcp", smtpHost+":"+smtpPort, tlsConfig)
    if err != nil {
        panic(err)
    }

    client, err := smtp.NewClient(conn, smtpHost)
    if err != nil {
        panic(err)
    }
    defer client.Close()

    // Authenticate
    auth := smtp.PlainAuth("", zohoEmail, zohoPassword, smtpHost)
    if err = client.Auth(auth); err != nil {
        panic(err)
    }

    // Send email
    if err = client.Mail(zohoEmail); err != nil {
        panic(err)
    }
    for _, addr := range to {
        if err = client.Rcpt(addr); err != nil {
            panic(err)
        }
    }

    w, err := client.Data()
    if err != nil {
        panic(err)
    }
    _, err = message.WriteTo(w)
    if err != nil {
        panic(err)
    }
    w.Close()

    client.Quit()
    fmt.Println("Email sent successfully!")
}

swap_horiz Zoho SMTP Relay (High Volume)

For high-volume transactional email, Zoho offers SMTP Relay as part of Zoho Workplace. This provides higher sending limits and better deliverability than standard SMTP.

SMTP Relay Features

  • check_circle Higher sending limits
  • check_circle IP-based authentication
  • check_circle Delivery reports
  • check_circle Send from any verified domain

SMTP Relay Settings

Server smtp-relay.zoho.com
Port 25, 465, 587
Auth IP-based

rocket_launch For dedicated transactional email, consider Zoho's ZeptoMail service, which is specifically designed for high-volume application email.

speed Zoho Mail Sending Limits

Plan Daily Emails Recipients/Email Attachment Size
Free (Personal) ~50 50 25 MB
Zoho Mail Lite 250 100 40 MB
Zoho Workplace Standard 300 ร— users 500 40 MB
Zoho Workplace Pro 500 ร— users 500 40 MB
SMTP Relay Configurable Unlimited 40 MB

build Troubleshooting

error 535 Authentication Failed
expand_more

This error occurs when Zoho rejects your login credentials.

Solutions:

  • check_circle Check your regional server: Make sure you're using the SMTP server matching your account's region (smtp.zoho.com, smtp.zoho.eu, etc.)
  • check_circle If 2FA is enabled, use an App-Specific Password instead of your account password
  • check_circle For business accounts, use smtppro.zoho.* instead of smtp.zoho.*
  • check_circle Verify IMAP/SMTP access is enabled in your Zoho Mail settings
error 553 Relaying disallowed
expand_more

The 'From' address doesn't match your authenticated account.

Solutions:

  • check_circle Use your Zoho email address (or a verified alias) as the 'From' address
  • check_circle For business accounts, ensure the domain is verified in Zoho
error Connection timeout
expand_more

Unable to connect to Zoho's SMTP server.

Solutions:

  • check_circle Check if your firewall blocks port 465 or 587
  • check_circle Verify the SMTP hostname is correct for your region
  • check_circle Try switching between port 465 (SSL) and 587 (TLS)
error 550 Daily sending limit exceeded
expand_more

You've reached Zoho's daily sending limit for your account type.

Solutions:

  • check_circle Wait 24 hours for the limit to reset
  • check_circle Upgrade to a paid Zoho Workplace plan for higher limits
  • check_circle Consider using Zoho's SMTP Relay or ZeptoMail for high-volume sending

quiz Frequently Asked Questions

What's the difference between smtp.zoho.com and smtppro.zoho.com? expand_more

smtp.zoho.com is for free personal Zoho Mail accounts (@zohomail.com). smtppro.zoho.com is for paid Zoho Workplace (business) accounts with custom domains. Using the wrong server will result in authentication errors.

How do I find which Zoho region my account is in? expand_more

Check the URL when you log in to Zoho Mail:

  • mail.zoho.com โ†’ US region (smtp.zoho.com)
  • mail.zoho.eu โ†’ EU region (smtp.zoho.eu)
  • mail.zoho.in โ†’ India region (smtp.zoho.in)
  • mail.zoho.com.au โ†’ Australia region (smtp.zoho.com.au)
Can I send from a custom domain with Zoho's free plan? expand_more

No, Zoho's free personal plan only allows @zohomail.com addresses. To send from a custom domain, you need Zoho Workplace (paid business plan). Note that Zoho previously offered a free custom domain plan but it has been discontinued for new users.

What's the difference between Zoho Mail, ZeptoMail, and SMTP Relay? expand_more
  • Zoho Mail: Standard email service for personal correspondence and business email.
  • SMTP Relay: Part of Zoho Workplace, allows higher-volume sending with IP-based authentication.
  • ZeptoMail: Dedicated transactional email service (separate product) for application-generated emails with high deliverability, pay-per-email pricing, and detailed analytics.

Need High-Volume Transactional Email?

For high-volume application email, consider dedicated transactional email services with better deliverability, analytics, and scalability.