Creating thirty mailboxes one at a time is a tedious afternoon. cPanel's Address Importer does it in one upload from a spreadsheet, and it creates forwarders the same way. This guide covers the file format, the exact steps, and how to check the result - because a bulk import that goes wrong is also bulk.
Address Importer accepts an Excel spreadsheet (
.xls) or a comma-separated values file (.csv) and creates either email accounts or forwarders in bulk. One import handles one of the two - run it twice if you need both.
Preparing the file for email accounts
Three columns, one row per mailbox:
| Column | Contains | Example |
|---|---|---|
| 1 | The full email address | sarah@yourdomain.com |
| 2 | The password | 7Kp!vQ2mZx9Lr4 |
| 3 | The quota in megabytes | 5000 |
As a CSV that looks like:
sarah@yourdomain.com,7Kp!vQ2mZx9Lr4,5000
tom@yourdomain.com,3Rw@nB8kYt5Fj1,5000
accounts@yourdomain.com,9Xz#hM4pWq7Ns2,10000
Preparing the file for forwarders
Two columns - the address to forward from, and where it should go:
sales@yourdomain.com,tom@yourdomain.com
info@yourdomain.com,sarah@yourdomain.com
support@yourdomain.com,helpdesk@externalprovider.com
Name2026! - predictable passwords across a whole domain are exactly how one compromise becomes twenty. Delete the file from your computer once the import is verified, and never email it.
Running the import
- Log in to cPanel from My Products & Services.
- Under Email, open Address Importer.
- Step 1 - choose Email Accounts or Forwarders.
- Step 2 - select your
.csvor.xlsfile and upload it. - cPanel shows a preview and asks you to confirm which column is which. Check this carefully - a misaligned column sets everyone's password to their own email address.
- If your file has a header row, tell cPanel to treat the first row as headings so it is not imported as an account.
- Confirm, and review the results screen. It reports what succeeded and what failed, with reasons.
After the import
- Open Email → Email Accounts and confirm every account exists with the right quota.
- Log in to one of them via webmail at
yourdomain.com/webmailto prove the passwords work. - Send a test message to one address and confirm it arrives.
- For forwarders, send a test to the forwarding address and check it reaches the destination.
- Distribute credentials to each person securely - individually, not as one spreadsheet to everybody.
- Ask everyone to change their password on first login.
- Delete the source file.
Troubleshooting
| Symptom | Cause and fix |
|---|---|
| File rejected on upload | Only .csv and .xls are accepted. Modern Excel defaults to .xlsx - use Save As and pick CSV. |
| Everything imported into one column | Your spreadsheet exported with semicolons rather than commas, which some regional settings do. Open the CSV in a text editor and check the separator. |
| The header row became an account | You did not mark the first row as headings. Delete that account and re-import. |
| Some rows failed | Usually a duplicate address, a password below the strength requirement, or an invalid address. The results screen names the reason per row. |
| "You have reached your account limit" | Your plan's mailbox allowance is full. Check Statistics on the cPanel home screen; the Ultimate plan is unlimited. |
| Passwords do not work | Columns were mapped wrongly, or a spreadsheet stripped leading characters from a value. Reset one password manually to confirm, then re-check the mapping. |
| Special characters became question marks | An encoding problem. Save the CSV as UTF-8, or avoid non-ASCII characters in passwords. |
| Quotas all came out wrong | The quota column is in megabytes. For 5 GB enter 5000, not 5. |
| Forwarded mail is not arriving | Forwarding to a large free provider can fail SPF checks. Consider a real mailbox instead, and see the deliverability article. |
Frequently asked questions
Can I import accounts and forwarders together?
No - the tool handles one type per import. Run it twice with two files.
Can I use it to change existing passwords in bulk?
It is designed to create, not update, and duplicates will fail. To rotate passwords for existing mailboxes, change them in Email Accounts.
Does it work for several domains at once?
Yes, provided each domain is already added to your hosting account. Use the full address in column one and the tool routes it correctly.
What quota should I set?
A real number rather than unlimited - 5000 MB is generous for most people. A fixed quota stops one runaway mailbox consuming the whole account's disk space.
How should I send people their passwords?
Individually, and ideally not by email. Use a password manager's sharing feature, or hand them over in person, and require a change on first login. Never send the whole spreadsheet to the whole team.
Can I undo an import?
There is no bulk undo - you would delete the accounts individually in Email Accounts. This is exactly why a two-row test import is worth doing.
