Sending a CSV by email looks like a one-click job. Click the paperclip, pick the file, hit send. Done. Except half the time something goes wrong. Gmail blocks the attachment. Outlook calls it unsafe. The recipient opens it and sees a wall of unformatted text instead of a clean spreadsheet. Or the file lands fine, but you actually wanted the CSV to power a mail merge, not be the attachment itself.
There are two completely different things people mean when they search this. One is attaching a CSV file to an email. The other is using a CSV as a recipient list for sending many personalised emails at once. This guide covers both. The attachment workflow first, the mail merge after that, plus the handful of traps that make CSVs harder to email than they should be.
Two different jobs people call "sending a CSV by email"
| What you want | What to do |
|---|---|
| Attach a CSV file so the recipient gets a copy | Use your email client's attach button. CSV is the payload. |
| Send a personalised email to everyone listed in a CSV | Use a mail merge tool with the CSV as the data source. CSV is the address book. |
Most pages online cover one or the other and never mention the difference exists. If you click in here looking for the mail merge flow and find an attach-button tutorial, scroll down. Both are below.
Attaching a CSV file: the basic flow
Same three steps everywhere. Pick the file. Confirm the size is under the limit. Send. The details change slightly by client.
Gmail
- Compose a new email. Click the paperclip icon at the bottom of the compose window.
- Browse to your CSV file and select it. Anything under 25 MB attaches inline. Above that, Gmail puts it in Google Drive and adds a share link instead.
- Confirm the recipient has permission if Gmail offered the Drive route. Click Send.
If your CSV is over 25 MB, the file probably has too much data to be a useful email attachment anyway. Consider splitting it. Our earlier post on importing CSV to contacts covers the 3,000-row limit Google enforces on contact imports, which is roughly the practical maximum for a clean attachment too.
Outlook (desktop and web)
- New Email. Click Attach File on the ribbon (or the paperclip on the web version).
- Pick Browse This PC in desktop Outlook or Browse this computer on the web.
- Select the CSV. Outlook's hard limit is 20 MB per attachment by default, 33 MB for Microsoft 365.
- If the file exceeds the limit, attach it as a OneDrive link instead. Outlook does this automatically if you have OneDrive enabled.
Apple Mail
- New Message. Drag the CSV from Finder straight into the compose window or use the paperclip icon.
- Mail Drop kicks in for files over 20 MB, which uploads to iCloud and sends a link that expires after 30 days. Fine for one-off sends, risky for anything the recipient might need to retrieve later.
The "opens as plain text" trap
This is the most common complaint I hear. You send a perfectly valid CSV. The recipient downloads it, double-clicks it and gets a text editor showing rows of comma-separated gibberish. They assume the file is broken. It is not. The CSV is fine. The recipient's computer just does not have Excel, Numbers or any other spreadsheet app set as the default for .csv files.
You cannot fix this from your end. The MIME type your email client sends is correct (text/csv or application/vnd.ms-excel). The receiving OS is making the call. Mention this in your email body if you suspect the recipient is non-technical.
When email blocks your CSV
| What you see | What is happening |
|---|---|
| Gmail says "Attachment failed" | File is over 25 MB. Use Google Drive sharing instead or split the CSV. |
| Gmail blocks send with a phishing warning | CSV contains text patterns Gmail flags as risky, often financial data with currency symbols and dates that look like fake invoices. Rename the file or zip it. |
| Outlook says "This file may be unsafe" | Outlook's security policy flags some CSV variants because of formula-injection attacks. Zip the file or rename to .txt before attaching. |
| Recipient's corporate mail server strips the attachment | Their IT department blocks .csv as policy. Send a zipped version or share via a cloud link. |
| File arrives but has no extension | Mail server scrubbed the .csv extension. Tell the recipient to add .csv back manually. Or zip the file before sending. |
The zip trick fixes almost every issue from that list. Zipped CSVs sail past most security filters, get smaller in transit and arrive intact. The only downside is the recipient has to extract before they can open the file.
Password protecting a CSV before sending
CSV format does not support passwords. It is plain text by definition. If you need to send sensitive data, like a list of customer emails or financial records, the standard workflow is to zip the CSV with a password.
- Right-click the CSV. Pick Add to archive in 7-Zip or Compress in macOS, then add a password in the archive options.
- Set the encryption to AES-256 if the tool offers it. ZIP's older encryption is breakable in seconds with modern hardware.
- Attach the password-protected zip to your email.
- Send the password through a completely separate channel. SMS, WhatsApp, a phone call, anything that is not the same email thread. Sending the password in a follow-up email defeats the entire point.
For really sensitive data you want auditing on, use a service that handles delivery confirmation and read receipts. Microsoft's Office 365 Message Encryption wraps the whole email plus attachments in encryption and the recipient gets a one-time code to open it.
Using a CSV as a mail merge recipient list
This is the other meaning of "send a CSV by email". The CSV contains the recipients and their personalisation fields. You write the email once, the tool sends one copy per row, swapping placeholders for the values in each row.
The minimum CSV structure for a mail merge
Three columns. email, first_name, company. That is enough for most cases. Add more columns as needed. Order number, due date, balance, whatever you want to drop into the email body.
email,first_name,company
maria@example.com,Maria,Acme Corp
raj@example.com,Raj,Bharat Industries
anna@example.com,Anna,Pixel Labs
Save as CSV with UTF-8 encoding. ANSI breaks Hindi, Tamil, accented characters and most non-Latin scripts. Excel's Save As dialog has a specific CSV UTF-8 (Comma delimited) option from Excel 2016 onwards.
Mail merge in Gmail
Gmail's built-in mail merge supports up to 1,500 recipients per day on free accounts and 2,000 on Workspace. Open compose, click the people-plus icon next to the To field, pick Add from a spreadsheet and upload your CSV. Write your email with placeholders like {{first_name}} and {{company}}. Send. Each recipient gets their own personalised copy.
For larger lists, third-party add-ons like Streak or YAMM extend the limit and add tracking. The Streak documentation has a clean walkthrough on the CSV upload flow.
Mail merge in Outlook
Outlook does not do CSV mail merge on its own. It hands the job off to Word.
- Open Word, go to Mailings > Start Mail Merge > Email Messages.
- Click Select Recipients > Use an Existing List and pick your CSV.
- Write the email body in Word. Insert merge fields where you want personalisation.
- Click Finish & Merge > Send Email Messages. Word hands each personalised copy to Outlook, which sends them through your configured account.
This works but feels clunky. For anything beyond a few hundred recipients, a purpose-built tool like Mailchimp, Brevo or HubSpot is faster and gives proper analytics.
The five-minute pre-send checklist
- File is under your email client's size limit (25 MB Gmail, 20 MB Outlook by default).
- CSV is saved as UTF-8 if it contains any non-Latin characters.
- Filename is descriptive and does not contain spaces or special characters that some servers mangle.
- If the data is sensitive, the file is zipped with a password and the password is being sent through a separate channel.
- Email body explains briefly what the recipient should expect, especially if the file is large or password-protected.
The CSV format has been around since the 1970s. Email has been around almost as long. You would think the combination would be flawless by now. It mostly is. The few edge cases above account for almost every problem people hit.