How to Send Emails from Shopify Flow Using Zoho Mail
Shopify Flow can automate a lot, but it can’t send a custom email on its own: no order confirmations in your own words, no internal alerts, no win-back messages outside Shopify’s default notifications. FlowRelay fixes that with a Send transactional email action that routes each message through an email provider you choose.
If your business runs on Zoho Mail, you can send through one of your own mailboxes over SMTP without signing up for a separate service. FlowRelay’s SMTP option connects to Zoho with a host, port, username, and password. Zoho’s setup is mostly straightforward, but three things trip people up: SMTP access isn’t included on newer free plans, the server address depends on which Zoho data center your account lives in, and two-factor authentication means you’ll need an app password rather than your normal one. This guide walks through all of that and gets your first email out from a Flow workflow.
One note on scale: a Zoho Mail mailbox is built for regular human email and has daily sending limits. If you expect high transactional volume, Zoho’s purpose-built option is ZeptoMail, which also speaks SMTP and connects to FlowRelay the same way. For typical store volumes, a Zoho Mail mailbox is fine to start with.
What You'll Need
- A Shopify store on a plan that includes Shopify Flow
- FlowRelay installed on your store
- A Zoho Mail account on a plan that includes IMAP/SMTP access. Newer free Zoho Mail signups don’t include SMTP, so you’ll generally need a paid Mail plan or a Workspace subscription
- Access to the Zoho Mail settings for the mailbox you’ll send from (and Zoho account security settings, to generate an app password if two-factor auth is on)
Step 1Confirm Your Plan and Pick a Sending Mailbox
First, make sure the account can use SMTP at all. Zoho removed IMAP/SMTP access from its newer free plans, so a recently created free mailbox often can’t send through an external app no matter how it’s configured. If that’s your situation, you’ll need to move to a paid Mail plan or a Zoho Workspace subscription before the rest of this will work. Older free accounts and all paid accounts are fine.
Then decide which mailbox FlowRelay will authenticate as. A dedicated mailbox (something like [email protected]) is the tidy choice: it keeps automated mail out of a person’s inbox and lets you manage its password independently. Note the full email address, you’ll use it as both the SMTP username and, by default, the From address on your emails.
Step 2Enable IMAP/SMTP Access in Zoho Mail
SMTP access is off by default on some Zoho account types, so turn it on for your mailbox first.
Log in to Zoho Mail on the web, open Settings, go to Mail Accounts, select the address you’ll send from, and enable IMAP Access (this is what unlocks external SMTP/IMAP for the account). Save.
If you’re an organization user, your admin may control whether IMAP/SMTP is allowed under the org’s email policies, so check with them if the option is greyed out or missing.
Step 3Generate an App Password (If Two-Factor Auth Is On)
Zoho strongly encourages two-factor authentication (TFA), and SMTP can’t answer a TFA prompt. So if TFA is enabled on this account, your normal password won’t work, you need an application-specific password instead.
Sign in at accounts.zoho.com, go to Security → App Passwords, click to generate a new one, give it a name like “FlowRelay SMTP,” and copy the generated password. Use that as the SMTP password in the connect step.
Two related cases that also require an app password: if you sign in to Zoho through a federated login (Google, Microsoft, etc.) you have no native Zoho password, so you must generate one here; and organizations using SAML sign-in have to use an app password for SMTP as well.
Step 4Find Your Zoho SMTP Settings
Zoho’s SMTP host depends on two things: your account type and your data center region. Getting either wrong produces an authentication failure even when the password is correct, so it’s worth pinning down exactly.
Account type sets the hostname stem:
smtp.zoho.comfor personal/free accounts (addresses like@zoho.comor@zohomail.com)smtppro.zoho.comfor paid business subscriptions sending from a custom domain ([email protected])
Data center region sets the top-level domain. The examples above are the US data center. If your account was created in another region, swap the ending accordingly, for example smtp.zoho.eu (Europe), smtp.zoho.in (India), smtp.zoho.com.au (Australia), with matching smtppro. variants for paid accounts. A US-server address will reject credentials from an EU-hosted account and vice versa.
The reliable way to get the exact value: in Zoho Mail → Settings → Mail Accounts → POP/IMAP, Zoho displays the precise server details for your specific account and data center. Use what it shows. The rest of the settings are:
- Port:
587(TLS/STARTTLS) or465(SSL), either works - Username: your full Zoho email address
- Password: your account password, or the app password from the previous step
Step 5Install FlowRelay on Your Shopify Store
Install FlowRelay from the Shopify App Store and accept the requested permissions.
On first launch, FlowRelay shows a short setup checklist: set your sender name and email, connect a provider, and send a test email. The next step covers connecting Zoho over SMTP.
Step 6Connect Zoho to FlowRelay
In FlowRelay, open Settings, find Email delivery, and click Manage providers to open the Connect email provider dialog.
Pick SMTP from the provider list and fill in your Zoho details: the host for your account and region (from the previous step), port 587 (or 465), your full Zoho address as the username, and your account or app password. FlowRelay tests the connection before saving it, so the wrong host for your region, a missing app password, or SMTP still being disabled on the mailbox all show up immediately rather than after your first real send.
By default Zoho sends mail as the address you authenticated with. If you want emails to go out under a different name or address, open Override sender and fill those in, but Zoho will only allow a From address that matches the authenticated account or one of its aliases (see the common issues below).
Click Connect. Whichever provider you connect first becomes your Primary, and FlowRelay routes all outbound mail through it. You can connect a second provider later as an automatic Fallback, which is worth doing here since a Zoho Mail mailbox has a daily sending limit you could hit at volume.
Step 7Create Your First Flow Trigger
Open Shopify Flow, create a new workflow, and pick a trigger (Order created is a common one to start with). Add the Send transactional email action; it shows up in the action list once FlowRelay is installed.
You’ll need to fill in a few fields on the action: an email address for the recipient (this can pull straight from the trigger, like the customer’s email), a subject line, and the body, which is the actual HTML content of the email. There’s also an optional preview text field for the snippet shown in inbox previews. For the body, you can write plain HTML or use Liquid to pull in order details, customer names, and other data from the workflow.
Save the workflow and turn it on.
Step 8Test Your Setup
Before you trust a live trigger, use the Send test email button in FlowRelay’s settings. It confirms your Zoho connection is wired up correctly and shows you where the message lands.
Once that test email arrives, run your Flow workflow under real conditions, like placing a test order, and check FlowRelay’s delivery log to confirm the email went out and see its delivery status.
Common Issues
“Authentication failed” / “Invalid credentials”
- Use your full email address as the username, not just the part before the @
- If two-factor auth is enabled, your normal password won’t work over SMTP. Generate an app password in your Zoho account security settings and use that instead. Federated-login and SAML users must do this too
- Check you’re using the right host for your account type:
smtp.zoho.comfor free/personal accounts,smtppro.zoho.comfor paid custom-domain accounts. Mixing these up is a common cause - Confirm you’re using the host for your data center region (
.com,.eu,.in,.com.au, and so on). An account on one region’s servers will be rejected by another’s. Zoho shows your exact server under Settings → Mail Accounts → POP/IMAP
“Relaying Disallowed” / the From address is rejected
- Zoho only lets you send as the authenticated account or one of its registered aliases. By default, send as the same address you’re authenticating with
- Check FlowRelay’s sender details and any Override sender fields, the From address has to match the Zoho account (or an alias on it) exactly, down to the character
- If you need to send as a different address, add it as an alias or a separate mailbox in Zoho first, then authenticate as the account that owns it
SMTP option isn’t available, or the connection is refused before you even reach a password error
- Confirm IMAP Access is enabled for the mailbox under Zoho Mail → Settings → Mail Accounts. External SMTP won’t work until it’s turned on
- Check your plan. Newer free Zoho Mail accounts don’t include IMAP/SMTP access at all; you’ll need a paid Mail plan or a Workspace subscription to send through an external app
- If you’re an organization user, your admin’s email policy may block IMAP/SMTP for your account. Ask them to allow it
“Connection refused” or “Connection timed out”
- Try the alternate port. Zoho accepts both
587(TLS/STARTTLS) and465(SSL), and if one is blocked the other often gets through - Make sure the host matches your account type and region exactly. A wrong regional host can manifest as a connection failure as well as an auth failure
- If you’re testing from a network that blocks outbound mail ports, that can cause this independently of your Zoho settings
Sends suddenly stop or bounce with a sending-limit error
- A Zoho Mail mailbox has a daily outbound limit that varies by plan, and a burst of workflow emails can hit it. Check Zoho’s sending-limit documentation for your plan to see where you stand
- Spread sending across the day where you can, or move higher-volume mail to ZeptoMail, Zoho’s transactional email service built for this, which connects to FlowRelay over SMTP the same way
- Connect a second provider in FlowRelay as a Fallback, so sends keep going out automatically if the Zoho mailbox hits its limit