One CSV, one template, and you get back a ZIP of individual .eml draft files. Open each one in your own mail app and press Send. No add-on, no account connection, no per-seat fee.
Your CSV and any attachment stay in this browser tab. They are never uploaded. The page loads two code libraries from a public CDN and counts an anonymous page view, and that is all.
This only fills in the header of each draft file. The message is still sent by your own mail app from whatever account you send it with, so the From address has to be one you can actually send as.
Rows without a usable email address are listed in the check below and left out of the pack.
Write {{column_name}} anywhere. Add a fallback with {{first_name|there}} so an empty cell never sends "Hi ,". Filters: |title, |upper, |lower, |trim, |first (first word only). You can combine them: {{full_name|first|title|there}}.
Plain text is the safest choice for cold outreach and it never lands in a spam filter for being image heavy. The HTML option adds a second copy of the same message so clients that prefer HTML show that one instead.
Nothing attached. The same file gets copied into every draft, so a 2 MB PDF across 40 recipients makes an 80 MB ZIP. One run stops at 100 MB in total, and a phone will struggle well before that.
Load a CSV and write your message, and every problem worth knowing about shows up here.
A normal mail merge either blasts one message to a hidden Bcc list, which everyone can smell, or it needs a paid sending tool wired into your account. This does neither. It writes one properly formatted email file per row of your spreadsheet, with that person's name, company and anything else your CSV holds already merged in, and hands you the whole set as a ZIP. You open them in the mail app you already use and send them as yourself, from your own address, with your own signature and your own reply handling.
A .eml file is just an email saved to disk, headers and all. Classic Outlook and Thunderbird both understand it, and a single extra header line tells them the message has never been sent, so they open it in the composer instead of the reader. That one line is the whole mechanism the subscription mail merge products are built around. Nothing here talks to your mail account, asks for a password, or requests permission to send on your behalf, because it never sends anything itself.
Good for a short, genuinely personal list: 20 warm introductions, a client's 40 past customers, a hiring round, a launch note to people who know you. Every message is opened and sent by hand, so past about fifty the clicking stops being worth it and you want a real sending platform with tracking and unsubscribe handling. It is also not a way to bypass anyone's rules: if you would not be allowed to send the message one at a time, a merge does not make it acceptable, and bulk commercial mail still needs a real postal address and a working opt out.
The classic way to mail merge individual emails is Word's wizard driving Outlook, which needs both programs installed, the right profile signed in, and a lot of patience. This page replaces the merging half of that entirely: you get the finished, personalised messages as files, and you decide what opens them. It does not remove the need for a mail app, because something still has to do the sending, and that part is deliberate. A tool that could send on your behalf would need your password or an account connection, and this one asks for neither.
Alongside the draft files the ZIP carries a merged.csv holding every original column plus the finished subject and body for that row. If you are handing the campaign to a client, or loading it into a sending platform, a CRM, or a system that expects pre written copy per contact, that file is what you want. It is also the answer for Gmail, which cannot open .eml files at all.
Half of all merge accidents are the same one: a missing first name producing "Hi ,". Writing {{first_name|there}} fixes it, and the check above tells you which rows would have gone out wrong before you build anything. |title tidies a column of shouty ALL CAPS names, |first pulls the first name out of a full name column, and the filters stack in any order.
If the finished thing needs to be a Word document rather than an email, the Word Mail Merge tool takes a .docx template and the same kind of CSV. There is also an email signature generator and a cold email writer if you are still working out what to say.