Setup
7 min read
How do I set up hundreds of email addresses at once?
Creating four hundred addresses by hand is a week of work and a guaranteed typo. Importing them is an afternoon — most of it spent on the spreadsheet, which is the right place to spend it.
Short answer
Prepare a spreadsheet with one row per address, containing the address to create and the destination inbox it should deliver to. Run it as a dry run first, which validates every row and reports problems without changing anything, fix what it reports, then import for real. The work is in the spreadsheet: an import is only as good as the list, and a wrong destination is much harder to notice than a failed row.
Record 1
CSV- addressalso called “the address to create”
- [email protected]
- destinationalso called “where it delivers”
- [email protected]
- namealso called “optional, for your own reference”
- Jane Smith
One row per address. If an address should reach several people, repeat the address on several rows with a different destination on each — that is clearer than a list inside one cell, and much easier to check.
Before you build the file
An import is fast, which is exactly why the preparation matters. Four hundred addresses created correctly in one minute is excellent; four hundred created with the wrong destinations in one minute is a much bigger problem than doing it by hand would have been.
- 1
Decide the address format first, and write it down
firstname.lastname@,f.lastname@,firstname@— pick one and apply it everywhere. Changing the convention later means every person tells every contact a new address, which is the one part of this that cannot be automated. - 2
Agree what happens to duplicates
Two people named Sam Jones is not an edge case, it is a certainty above about a hundred people. Decide the rule now — a middle initial, a number, the department — rather than during the import.
- 3
Confirm the destinations are current
A list exported from a directory six months ago contains people who have left and addresses that have changed. This is the most common source of failed imports, and it is fixed by asking, not by importing.
- 4
Check the domain is verified for sending first
Import into a domain that is not yet verified and every address is created but nothing works, which looks like the import failed when it did not.
Building the spreadsheet
Any spreadsheet program will do. Save as CSV, which is the plain-text format every importer reads.
- One row per address-and-destination pair. For an address reaching three people, use three rows with the same address. It reads clearly and it checks easily.
- A header row with the exact column names the importer expects. Header names are matched literally;
Addressandaddressmay not be the same thing. - No blank rows and no notes at the bottom. A note under the data becomes a row with an empty address, and an empty address is an error to investigate.
- No formatting. Colour, bold and merged cells do not survive CSV. If you have used colour to mean something, add a column that says it in words.
- Watch for autocorrect. Spreadsheet programs turn addresses into links and sometimes alter characters. Check a few rows in a plain text editor before importing.
The dry run, which is the actual work
A dry run validates every row and reports what it would do, without creating anything. Run it, fix what it reports, and run it again until it is clean. This is not a preliminary step before the real one — it is the step, and the import that follows is the trivial part.
Start here
The dry run reports on every row
Is the row blocked, or merely surprising?
Fix it in the spreadsheet
A malformed address, a missing destination, an address that already exists, a domain that is not yours. These are stated per row with a line number.
Mechanical — fix and re-run
Decide deliberately
A destination that appears many times, an address that resembles an existing one, an unusual number of rows for one person. Each may be intended, and each is worth one deliberate look.
This is where a wrong destination is caught, or missed
The part that does not scale: people
Creating addresses is instant, and so is delivery: our own mail server forwards to a destination the moment its address exists, and nobody has to click anything first. What still takes time at four hundred rows is the people on the other end — the first message they receive from an address they did not know existed, and the strict filters some of their inboxes sit behind.
Plan it as a communications exercise rather than a technical one.
- 1
Tell everyone before you import
One message: you are getting an address on our domain, mail to it will land in your usual inbox, here is what the first test message will look like. This single step prevents most of the confusion that follows.
- 2
Import in batches you can check
Fifty at a time is manageable; four hundred at once produces a list nobody can work through if something is off. Batches also mean a mistake affects fifty rows, not four hundred.
- 3
Do the difficult inboxes first
Strict corporate filters and shared inboxes are where a forwarded message is most likely to land in spam. Finding that out on day one is much better than on the day you expected to finish.
- 4
Check and re-sync, do not re-import
An address that is not receiving yet is waiting on the domain's DNS, not on a person. Re-importing creates nothing new and tells you nothing; Check and re-sync rewrites the route and says what it found.
- 5
Decide in advance what happens to leavers
Some of the people in the file will leave. Decide now whether their address is removed, pointed at a manager, or switched off — before the question arrives one at a time.
Checking the result
- Count the rows against the addresses created. They should match exactly. A difference means rows were skipped, and the report says which.
- Spot-check ten at random. Not the first ten — the first ten are the ones you already looked at while building the file.
- Send a real message to three of them from outside. Different people, different destination providers.
- Review the destination column once more, sorted. It is the last chance to catch a valid address belonging to the wrong person before mail starts flowing to it.
An import is only as good as the spreadsheet. The minute the import takes is never the risk; the hour spent reading the destination column is what makes it safe.
The half nobody plans: taking addresses away
Every organisation that can create four hundred addresses in a minute discovers, a year later, that it removes them one at a time. The result is predictable and universal: a domain carrying addresses for people who left, departments that merged and products that were retired, none of which anybody dares delete because nobody can say what still uses them.
Creating addresses
Has a project behind it
- Someone is accountable and there is a date (advantage)
- Done in bulk, from a list, with a dry run (advantage)
- Failures are visible immediately (advantage)
Removing addresses
Has nobody behind it
- No deadline, so it is never this week's work (drawback)
- Done one at a time, if at all (drawback)
- The cost of a wrong removal feels larger than the cost of keeping (drawback)
- So the list only ever grows (drawback)
The fix is to treat removal as part of the same exercise rather than as a tidy-up later. Two habits do most of the work.
- Record why each address exists, at the moment you create it. A column in the import file naming the owner or the reason costs nothing now and is the only thing that makes a review possible in two years.
- Disable before you delete. A disabled address stops delivering but still exists, so if somebody notices, you re-enable it in seconds. Delete only after a quiet month — at which point nobody is guessing.
What to remember
- The work is in the spreadsheet, not the import. Decide the address format and the duplicate rule before you build the file.
- The destination column is the dangerous one: a wrong-but-valid address succeeds silently and delivers someone's mail to a colleague.
- Run a dry run until it is clean. Errors are mechanical; warnings are where judgement is needed.
- Nothing waits on the people you forward to: mail flows to a destination the moment its address is created. Tell them first anyway, so the first message is expected, and import in batches of about fifty.
- An address that is not receiving yet is waiting on the domain's DNS, not on a confirmation. Check and re-sync rather than re-importing.
Questions people ask next
What columns does the import file need?
At minimum the address to create and the destination it delivers to, with a header row using the exact names the importer expects. A name column is useful for your own checking. Fewer columns means fewer things to get wrong across hundreds of rows.
Can one address deliver to more than one person in an import?
Yes — repeat the address on several rows with a different destination on each. That is clearer than packing a list into one cell and far easier to check when you sort the file.
What happens to rows that fail?
They are reported with the line number and the reason, and the rest still import. Fix the reported rows in the spreadsheet and re-run; addresses that already exist are recognised rather than duplicated.
Do the destinations need to confirm anything?
No. Mail is forwarded by our own mail server the moment an address is created, and every destination is visible on the address and in the account's audit trail. The one thing worth doing is telling people first, so the first message from a new address is expected rather than a surprise.
How many addresses can I import at once?
Up to a thousand rows in one file, and far more than you should in one go. Batches of about fifty are the practical answer, because the limit is not the system — it is how many rows a person can usefully check.
Can I undo an import?
Addresses can be removed, and removing them is quick. What cannot be undone is mail that was already delivered to a wrong destination, which is why the dry run and the sorted read of the destination column are worth the time.
How do we remove addresses in bulk later without breaking something?
Export a fresh list first — never work from the file you imported months ago, because it will not reflect what was created since. Disable the addresses rather than deleting them, wait a month for anyone to notice, then delete. Recording an owner or a reason for each address at creation time is what makes that review possible at all.
Read next
Last reviewed 2026-08-16 · Brand My Inbox current