Guide
Mail merge with individual attachments in Outlook
Word's mail merge personalises the message but cannot vary the attachment. If you need each person to receive their own invoice, statement or payslip, that is the wall you have hit. Here is why it exists, and the three honest ways past it.
Why Word cannot do it
Word's mail merge was designed for printed letters. Each record fills in the placeholders and produces a page. When Microsoft wired it to Outlook for email, the body kept its merge fields — but nothing was added for attachments, because a printed letter has no such thing.
So a Word email merge gives every recipient the same file, or none. There is no field you have overlooked and no version where it was added. If you have been searching for the setting, it genuinely is not there.
The idea that unlocks it: make the attachment part of the data.
Add a column to your spreadsheet holding each person's filename, put the files in one folder, and use a tool that reads that column. The attachment stops being part of the template and becomes part of the row — which is exactly what varies per recipient.
Option 1 — A VBA macro
The traditional answer. A macro loops your spreadsheet, builds each message, attaches the file named in the row and sends it. Free, and it works.
The costs are worth knowing before you commit an afternoon to it:
- Windows only. VBA does not exist in Outlook on Mac or on the web.
- Often blocked. Managed organisations routinely disable macros, and asking IT to make an exception for a script off the internet is a conversation that rarely ends well.
- No preview. Most macros send straight from the loop. A column mapped to the wrong field is discovered by your recipients, and sent email does not come back.
Option 2 — A bulk email platform
Mailchimp, Brevo and similar services can attach files per recipient in some plans. They are built for newsletters, and for a newsletter they are the right tool.
For invoices they fit badly. Mail goes out through the platform's shared infrastructure rather than your mailbox, so it needs SPF and DKIM records before it authenticates properly, it lands in a different reputation pool from your ordinary correspondence, and replies go to the platform rather than to you. Your accounts department sending fifty invoices does not want a marketing sender profile.
Option 3 — An add-in inside Outlook
An Outlook add-in does the merge where your mail already lives. You point it at a spreadsheet, tell it which column holds the filename, choose the folder, and it sends each message from your own mailbox.
Because Microsoft sends the mail, a copy lands in your Sent Items, replies come back to you, and nothing about your domain's authentication changes. This is what Tellmerge does — one message per recipient, each carrying that person's own file, previewed before anything leaves.
What the spreadsheet looks like
Whichever route you take, the data is the same shape. One row per recipient, one column for the email address, one for the filename, and any other columns you want to merge into the subject or body:
| Name | Invoice | Amount | |
|---|---|---|---|
| [email protected] | Maria | INV-1041.pdf | 420.00 |
| [email protected] | Sam | INV-1042.pdf | 1,180.00 |
| [email protected] | Priya | INV-1043.pdf | 96.50 |
The filename column does not need a folder path — just the name of the file, matched against the folder you choose. Keep the extension on and the matching stays unambiguous.
Two things worth checking before you send
What happens to a row whose file is missing? It should not send. An invoice email with no invoice attached is worse than no email at all, and a tool that quietly sends it anyway has made the decision for you. Tellmerge holds that row back and tells you which one.
Does it preview? Merge mistakes are systematic — a wrong column is wrong for every recipient at once. Seeing the first few assembled messages, attachment included, is the difference between catching that in ten seconds and apologising to two hundred people.
More Outlook mail merge guides · Install Tellmerge · Pricing