Connect the inbox you already use. Load a list, write one email, and Mailmize drips personal copies out on a schedule you set. Replies land where they always did — in your inbox, from your name, on your domain.

Sends straight from your own mailbox — no mail passes through anyone else, and no tracking pixel is added to anything you send.

  • Sends from Outlook & Gmail
  • Drips that stop on reply
  • Opt-outs that stick
  • CAN-SPAM footer built in
  • Paced like a person
  • No tracking pixels
  • Several mailboxes, one queue
  • Messy lists cleaned on import

One email in. Every name out.

Write it once with a few blanks. Each person gets their own copy — their name, their business, their town — and messy lists are cleaned up on the way in: OWNER becomes your fallback greeting, MCDONALD becomes McDonald.

You write

Hi first name —

Saw business over in city. Most shops your size are overpaying on group health this year. Worth fifteen minutes before your renewal?

They get

Hi James —

Saw Riverside Heating & Air over in Springfield. Most shops your size are overpaying on group health this year. Worth fifteen minutes before your renewal?

Preview exactly what the next person receives before a single message moves.

Follow-ups that know when to stop.

Chain second and third touches with your own delays and send times. The moment somebody replies, they drop out — nobody gets “just bumping this” after they've already answered.

  • Your timing. Hours, days or weeks apart, at the time of day you pick, skipping weekends if you like.
  • Pause any step. Everyone waiting on it holds right where they are until you resume.
  • Add people mid-drip. New names start at the first email and follow the same sequence, even after it's started.
Email 1Day 0 Follow-up 13 days later, 9:00 AM Follow-up 2a week in, weekdays only Replied → drops out

Why Mailmize.

Most outreach tools are built for a sales team with a budget and somebody whose job is to run them. This one is built around a simpler idea: the mailbox you already use is the most valuable thing you own here, and the tool's job is to protect it rather than spend it.

  • Your mailbox, not a shared one

    Most platforms relay your mail through their own servers and their own IP addresses, so your delivery is only as good as the worst sender on that platform today. Here the message is handed to your Outlook or Gmail account and sent by them. Your domain, your reputation, your result.

  • Replies just arrive

    No second inbox to check and no dashboard to log into to discover somebody answered you two days ago. The reply lands in the mailbox it was sent from, as an ordinary email, in the same thread.

  • No tracking pixel

    Open tracking means a hidden image in every message. It is one of the most common reasons a cold email gets filtered, and recipients who spot it do not like it. Nothing here adds one — you give up an open rate you could never fully trust, and get a message that looks like a person wrote it.

  • Opt-outs that actually stick

    When somebody asks out they are gone — from that campaign, from every other campaign, and from every list you import from then on. It is enforced at import and again at the moment of sending, so it cannot be undone by uploading the same spreadsheet next month.

  • The legal part isn't optional

    A campaign will not start until there is a real physical address on the account, because CAN‑SPAM requires one in every commercial message, and the opt-out line goes into the footer by default. Tools that leave both to you are how people end up in trouble without knowing they did anything wrong.

  • Paced like a person

    You set the gap between sends and the daily ceiling per mailbox, and both are enforced rather than suggested. Nothing goes out in a burst unless you deliberately ask for one — because a mailbox restricted for sending too fast stops sending everything, not just the campaign.

  • Learnable in an afternoon

    No seat minimum, no onboarding call, no CRM to migrate into first. Connect a mailbox, load a list, write one email. If a feature needs a tutorial before it can be used, it was built wrong.

  • Your list stays your list

    Contacts are never pooled, sold, shared between accounts, or used to send anything on anybody else's behalf. There is no analytics on this site and no third-party script on any page — and that is written down in the privacy policy rather than merely implied.

Three steps to your first send.

  1. Make an account

    Email and a password. Your mailboxes, campaigns and history live inside it and nobody else's account can see them.

  2. Connect a mailbox

    Outlook through Microsoft sign-in, or Gmail with an app password. There's a step-by-step guide inside for both.

  3. Write one email and go

    Drop in a list or type a few names. Preview it, set the pacing, start sending.

Worth knowing before you start.

Cold email has rules and consequences, and this tool doesn't hide them from you. Every message carries your physical address and an opt-out line, because CAN-SPAM requires both. Daily limits are enforced per mailbox, and the app tells you when you're pushing past what providers tolerate — the penalty for ignoring that isn't a bounced message, it's your mailbox getting restricted from sending anything at all.

Run every purchased list through a verifier before you import it. Stale lists bounce at 10–20%, and providers read that as a scraped list. It's the highest-value thing you can do, and it happens before this app ever sees the addresses.

Outreach, maximized.

Your mailbox, your list, your words — sent on your schedule, to every name, without the burst that gets accounts restricted.

Loading…
0sent today — click to read them
0today's capacity
0queued
0mailboxes — click to manage
0opted out — click to see the list

Sending engine

Runs every campaign marked Running, across every connected mailbox.

Send now

Skips the sending window and the gaps between sends. Daily limits still apply - those are the ones protecting the mailbox.

Sends per day

The last 30 days.

today

Recent activity

Last 100 messages across all campaigns.

TimeToFromSubjectResult
Nothing yet.

Account history

Everything this account has done, newest first. Kept across sign-ins.

WhenWhatDetail
Nothing yet.

Download your send log

Every email Mailmize has sent from this account, as a spreadsheet. Leave the dates blank for all of it.

Sent mail

Every email Mailmize has actually sent from this account, with the exact text that went out — merge fields already filled in, the way the person received it. Click one to read it.

Nothing sent yet.

Past campaigns

Every campaign this account has run, including finished ones.

CampaignStatusSentReplied FailedStartedFinished
No campaigns yet.

Connecting a mailbox — the whole thing, step by step

Pick the one that matches the address you want to send from. Every click is spelled out. If a step doesn't match what you're seeing, stop there and say so — a wrong guess three steps back is what causes the confusing errors later.

Outlook — one-time setup

You do this once per company, not per mailbox. Once it's done, every Outlook mailbox at your company connects in three clicks forever after.

Microsoft requires this. There is no way to send through an Outlook account without registering the app first — it's the thing that tells Microsoft "this program is allowed to send mail as this person."

Stage 1 — register the app

  1. Go to entra.microsoft.com and sign in with the work account you want to send from. Not a personal Microsoft account.
  2. In the left sidebar: Entra ID → App registrations → + New registration.
    Don't see App registrations, or it errors? Your company has locked it down. Stop here — you need someone with admin rights. Ask them for: "an app registration with delegated Mail.Send permission so I can run our outreach tool." It takes them five minutes.
  3. Name: type Mailmize
  4. Supported account types: leave the first option — Accounts in this organizational directory only.
    Do not pick a multi-tenant option. Single tenant is correct for a tool only your company uses.
  5. Redirect URI: change the dropdown from Select a platform to Web, then paste exactly:
    /oauth/callback
    The /oauth/callback on the end matters. One character off and sign-in fails later with a vague error.
  6. Click Register.

Stage 2 — collect three values

You land on the Overview page. Two of the three are right there.

  1. Application (client) ID — near the top of Overview. Long string with dashes. Copy it.
  2. Directory (tenant) ID — directly underneath it. Also copy it.
    This one is not optional. Without it Microsoft rejects sign-in with AADSTS50194.
  3. Left menu → Certificates & secrets → + New client secret → description Mailmize → Add.
  4. Copy the Value column. Not Secret ID.
    Two columns appear and it is easy to grab the wrong one. Value looks like abC8Q~xYz.9Kv_... — random, with ~ and . in it. Secret ID is a GUID, all dashes in an 8-4-4-4-12 pattern. If it looks like a GUID, it's the wrong one.

    Microsoft shows the Value once and never again. Miss it and you just make another secret.

Stage 3 — permissions

  1. Left menu → API permissions → + Add a permission → Microsoft Graph → Delegated permissions.
  2. Tick all four under OpenId permissions: email, offline_access, openid, profile.
  3. Use the search box to find and tick Mail.Send — this is the one that actually matters — and then User.Read.
  4. Add permissions. You should end up with six listed.
Don't add Mail.Read here. It's the permission that lets Mailmize see replies arriving in a Microsoft mailbox, and it's tempting. But unless you administer your own Microsoft 365, your company almost certainly won't let you approve an app that reads mail — the sign-in stops dead on “Need admin approval” and the mailbox then can't connect at all, so it can't send either. Get the mailbox sending first. If you later want reply detection on it, an administrator adds Mail.Read and clicks Grant admin consent, and you tick Let Mailmize read replies in Settings.

Stage 4 — put them in Mailmize

  1. Settings → the Microsoft application card.
  2. Paste the Application (client) ID, the client secret Value, and the Directory (tenant) ID.
  3. Public address of this site — see the note below.
  4. Click Save inside that card. Each Settings card has its own Save button.
  5. Mailboxes → Sign in with Microsoft → approve the consent screen.

Stage 5 — adding mailboxes, including the second one

Stages 1 to 4 are done once, ever. This is the bit you repeat for each address you want to send from.

One mailbox per sign-in. Microsoft's sign-in hands back exactly one account each time it runs, so mailboxes are added one after another rather than all at once. There is no screen anywhere that connects several in one go — if you are hunting for one, that is why you cannot find it.
  1. Mailboxes → Sign in with Microsoft.
  2. Microsoft shows you a list of accounts.
    This is the step that used to catch people out. If you are already signed in to Microsoft in this browser, it will offer you that account first. To add a different mailbox, click “Use another account” at the bottom of the list and type the address you actually want.
  3. Approve the consent screen. You land back here and the mailbox appears in the list.
  4. Repeat from step 1 for the next address.
If it says “Reconnected” instead of “Connected”
You signed in as a mailbox that was already on the account, so its sign-in was refreshed rather than a new mailbox being added. That is Microsoft handing back the account the browser was already signed in to. Start again and pick Use another account.
Which addresses can connect at all
The app registration you made in Stage 1 is single tenant, which is the right choice and what Stage 1 tells you to pick. It does mean that only mailboxes belonging to your own Microsoft organisation can connect through it. A mailbox at another company, or a personal outlook.com address, will be refused with AADSTS50020 — not because anything is broken, but because that account is not in your directory.

For those, either use the Gmail app password route if it is a Gmail address, or register the app as multi-tenant, which is a bigger decision: it means any Microsoft organisation can consent to your app, and it is only worth doing if you are running this for other companies rather than your own.
How many you can have
The free plan connects one mailbox. Pro connects up to ten. Adding mailboxes — rather than pushing one harder — is how you raise the number of emails you can send in a day without putting any single mailbox at risk.
If something goes wrong
AADSTS50194 — tenant ID missing or not saved.
AADSTS50020 — that account isn't in your Microsoft organisation. See above.
AADSTS7000215 — you pasted the Secret ID instead of the secret Value.
redirect_uri mismatch — the URI in Entra doesn't match exactly, or the Public address field isn't empty.
Needs admin approval — your company requires an admin to approve third-party apps once. After they do, everyone can connect.

After a mailbox is connected

  1. Settings → your business address. Required — a campaign will not start without one, because CAN-SPAM requires a physical address on every commercial email.
  2. Settings → Signature. Optional. Links and images work.
  3. Campaigns → create one, drop in a CSV or type contacts by hand.
  4. Write the subject and body. Click the chips to insert {{first_name}}, {{company}}, {{city}}.
  5. Preview. This is the step people skip. It shows the exact From address and exactly what the next person receives — it's where you catch "Hi , I saw over in" because a column didn't map.
  6. Set the pacing — seconds between emails — and a start time if you want one.
  7. Start this campaign, then Dashboard → Start sending.

Contacts

People you're working, separate from any campaign list. Set a follow-up date and Mailmize emails you a reminder from your own mailbox when it comes due.

No contacts yet.

Quick replies

Short answers you send over and over. They show up as buttons when you reply, and you can still change the wording before it goes.

Replies

People who wrote back. Every connected mailbox is checked automatically every five minutes — app-password mailboxes over IMAP, Microsoft sign-in mailboxes over Microsoft Graph — and anyone who replies is dropped from their sequence straight away.

Check everything I've sent goes back a year and looks at every address you have ever emailed, including finished campaigns. The automatic five-minute check only watches people in a campaign that is still running, so this is the one that catches a reply that arrived after a campaign wrapped up. Give it up to a minute per connected mailbox.

Your labels

Make up whatever labels suit you — Interested, Called, Bad number, anything. Tick never email again and anyone you give that label is added to your opt-out list automatically.

Nothing yet.

Reminders

Anything you want an email about later. Mailmize sends it to you from your own connected mailbox at the day and time you pick.

No reminders yet.

Support requests

0 open

Raised from the Support tab. Replying emails the answer to the person and marks the request answered.

Nothing waiting.

Administrator

Everyone with an account on this install. You're the administrator because yours was the first account created.

Leave this off and anyone who finds the site can make an account. Turn it on before you put this on a public domain.

Add a user

Makes the account yourself and hands them the password — no sign-up form, no waiting for approval. Use Free for the people you're letting in for nothing; you can move anyone between plans later without touching their data.

With a password: you pick it and pass it on yourself — it's shown here once and never again. With an invite: they get an email and choose their own, and you never handle it. The invite link lasts seven days.

Backups

Everything — accounts, campaigns, contacts, opt-out lists — lives in one file. A copy is taken automatically once a day and the last 14 are kept. Use the button to grab one now and put it somewhere other than this computer.

Things that went wrong

Failed sends and inbox problems across every account, newest first. Clear empties this list once you've dealt with them — the emails stay in everyone's sent history.

WhenAccountMailboxWhat Detail
Nothing yet.

Payments

Where the Pay again button sends someone whose payment failed — your Stripe or PayPal link. Leave it blank and they're pointed to the Support tab instead.

Switch people over automatically

Optional. Set this up and Stripe tells Mailmize the moment someone pays — the account flips to Pro on its own, a failed payment drops them to the free rate, and a cancellation puts them back on Free. You get an email either way. Leave it blank and you switch people over by hand in Admin, which works fine.

/api/stripe/hook

Without this secret Mailmize refuses every message that claims to be from Stripe — it is the only thing separating a real payment from somebody who found the address and fancies a free upgrade.

Point an uptime monitor at /api/health — it reports a failure if the sending engine stops, not just if the site goes down.

AccountPlanJoinedLast seen MailboxesCampaignsSentStatus
Loading…

What are you sending?

Three ways to do it. Pick whichever matches the job — they all use the same mailboxes, the same opt-out list and the same log.

Quick send

One to 10 emails without building a campaign. Same engine, same log, same opt-out list — just none of the setup.

Connect a mailbox

Emails send from this account, and replies land in it. Pick where your email lives.

More volume comes from more mailboxes, not a higher rate per mailbox. Two inboxes at 100/day each are far safer than one at 200 — reputation damage stays contained instead of taking out your whole sending capacity.

Get help

Describe what happened and it goes straight to the person who runs this site. You'll get the answer back here and by email, so you don't have to sit and wait on the page.

Your email address, plan, and which mailboxes are connected are sent along with this so nobody has to ask. Don't paste passwords or app passwords — nobody here will ever need one.

Your requests

Everything you've sent, newest first, with any answer underneath.

Nothing sent yet.

Before you write in

Three things account for most of what comes through here.

  1. Nothing is sending. Check the bar at the top of the Dashboard first — it says out loud why the engine is idle, whether that's a paused engine, a daily cap already hit, or a campaign with a start time still in the future.
  2. A CSV won't import. The importer now says exactly what is wrong with the file and how to fix it. An .xlsx saved straight from Excel is the usual cause — it has to be saved as CSV UTF-8 first.
  3. A mailbox won't connect. The Setup guide tab walks through Microsoft and Gmail end to end, including the error messages each one produces when a step is missed.

Your plan

What you get now, and what changes if you go Pro.

Free

No cost
  • 15 emails a day
  • 1 mailbox
  • As many contacts as you like
  • Drip campaigns and follow-ups
  • Reply tracking and reminders
  • Unsubscribe handling and opt-out list

Pro

$49.99 a month
Everything in Free, plus:
  • No daily limit — send as much as your mailboxes safely allow
  • Up to 10 mailboxes instead of one
  • Rotate sending across every mailbox
  • Everything on the Free plan

How it works

Pay through the link above. Once the payment clears your account switches to Pro — usually within a few minutes. Nothing you've already set up changes: your campaigns, contacts and history all stay exactly as they are.

If you ever stop paying, nothing is deleted. You keep every mailbox on screen, pick one to keep sending from, and the rest sit locked until you're back on Pro.

Your business details

Appended to every email. The address is a legal requirement.

What the legal pages say

Your privacy policy, terms, cookie policy and refund policy are written from these details and rewrite themselves the moment you save. Check every line below. A policy naming the wrong business or an address nobody reads is worse than no policy, because it is a written statement that happens to be false.

This is not legal advice. These pages were written to describe what this app actually does, and they are a genuine starting point — but nobody here is your lawyer. If you take payments from people in other states or countries, or you start handling anything sensitive, get them read by someone who is.

Tell me when someone replies

The moment a reply is spotted, Mailmize emails you from the same mailbox it arrived in, so it lands in the inbox you already watch.

The subject reads YOU RECEIVED A RESPONSE FROM (their name), and the body has who it was, the subject line, and which mailbox it came into. Alerts arrive within about five minutes of the reply, because that is how often the inbox is checked. Bounces and out-of-office autoreplies are filed but never alerted on.

Auto-reply

When someone writes back, send them an instant holding reply so they know it landed. Off unless you switch it on.

Your signature is added underneath. Three rules are built in and can't be switched off, because they're what stops an auto-responder wrecking a mailbox: one per person, ever (not one per email), never to a robot (bounces and out-of-office replies are ignored, so two auto-responders can't sit there emailing each other), and never to anyone on your opt-out list.

Signature

Added to the bottom of every email, above the address and opt-out line. Links and images are allowed.

Images are embedded in the message itself, so they work without hosting anything - but many clients block images until the reader clicks "show images", and a heavy logo on a first cold email reads as marketing. Plain text and a link tends to land better.

Microsoft application

From your app registration in the Microsoft Entra admin center. Without these, "Sign in with Microsoft" can't work.

A single-tenant app registration must have this. Without it Microsoft answers AADSTS50194 and refuses the sign-in.
/oauth/callback
Set this once and never again. It is built from the address above, so as long as you always reach Mailmize at your own domain, this line never changes — not if the server moves, not if you change hosts.
Leave this off unless you administer your own Microsoft 365. It asks Microsoft for permission to read the inbox, which is what makes reply detection, reply alerts and auto-reply work on a Microsoft mailbox — but most companies do not let an ordinary employee approve an app that reads mail. If yours doesn't, the sign-in stops on “Need admin approval” and the mailbox can't connect at all, which means it can't send either.

To turn it on: an administrator adds Mail.Read under API permissions in the Microsoft Entra admin center and clicks Grant admin consent. Then tick this, disconnect the mailbox and connect it again. Gmail app-password mailboxes ignore this setting entirely — their replies are read over IMAP and always have been.

When emails go out

Off by default — Mailmize sends whenever it has something queued. Switch this on and it only sends during the hours and days you pick. A business email arriving at 3am reads as a machine, which is the impression you're trying to avoid.

All times here are local time.

minutes — applies to new campaigns

Send yourself a copy

Put your own addresses here and they get added to every campaign you start, mixed in with everyone else. You receive the same emails your list does, so you can see whether they're landing in the inbox or the spam folder. A Gmail and an Outlook address tell you the most.

Unsubscribe link

Puts a one-click Unsubscribe link at the bottom of every campaign email. Anyone who clicks it lands on a confirmation page, and the moment they confirm, their address drops into the opt-out list below — nothing queued for them goes out, and no future campaign picks them up.

Opt-out list

Skipped permanently, across every campaign and every future import. People who click the unsubscribe link land here on their own; you can also add addresses by hand, one per line.

Who's opted out

AddressWhyWhen
Nobody yet.