このアプリでできること
- 会員への更新案内や、イベント参加者へのお知らせ。
- 有料メーリングリストを使わなくても顧客に応じた内容で一括送信が可能。
- 送る文章はほとんど同じなのに、名前や日付だけが違うメールの一括送信。
- ある人には英語、ある人には中国語で送信。
- このアプリに1日の送信数上限はありません。
本文をコピーして、宛名を直して、送り先を変える。それを人数分繰り返すのは、なかなか手間です。この作業をCSVからまとめて行えるWindowsアプリが、CsvMail Senderです。
テンプレートは、if文による条件分岐に対応しているので、顧客に応じて柔軟に内容を変えられます。
名簿を読み込んで文章を一つ用意すると、相手ごとのメールを作成できます。できあがった内容を画面で確認し、そのまま送信するところまで対応しています。CSV名簿全体を自動的に送信できます。
送信数の上限については、例えば無料のGoogleアカウントだと、一日100件が上限ですが、このアプリには上限はありません。
利用しているメールサーバーの規約に依存します。
例えば、Xサーバーを利用している場合
- 1日あたりの送信数目安: 15,000通 / 日
- 1時間あたりの送信数目安: 1,500通 / 時間
※スパム認定されない様な工夫として、各種ウエイトを設定できます。
フォワードデプロイドエンジニア(FDE)として、小規模店舗や個人事業主、スタッフの皆さんの意見を聞きながら、作ったのでかなり使えるものになったと思います。
完全無料のオープンソース、MITライセンスで公開しています。
例えば、会員ごとに違う有効期限を案内する
次のような名簿から、更新案内を送る場面で説明します。
| メール | 氏名 | プラン | 有効期限 |
|---|---|---|---|
| yamada@example.com | 山田 太郎 | スタンダード | 2026/10/31 |
| suzuki@example.com | 鈴木 花子 | プレミアム | 2026/11/30 |
※名前とアドレスは説明用です。
用意する文章は一つです。相手によって変えたい部分に、[[氏名]] のように列名を入れておきます。
[[氏名]] 様
ご利用中の「[[プラン]]」プランについてのお知らせです。
有効期限は [[有効期限]] です。
継続をご希望の場合は、期限までに更新手続きをお願いします。
山田さん宛てのメールでは、こうなります。
山田 太郎 様
ご利用中の「スタンダード」プランについてのお知らせです。
有効期限は 2026/10/31 です。
継続をご希望の場合は、期限までに更新手続きをお願いします。
鈴木さん宛てなら、名前は「鈴木 花子」、プランは「プレミアム」、期限は「2026/11/30」に変わります。
CSVの1行が、1通のメールになるという仕組みです。それぞれの行のアドレスへ、差し替えた文章を送ります。
この「決まった場所に名簿の値を入れること」を、差し込みと呼んでいます。名前のほか、会社名、予約日時、受付番号なども、CSVの列にしておけば文章に入れられます。
使う前に用意するもの
必要なのは、Windows PC、宛先などを入れたCSV、メールを送るためのSMTP設定です。
SMTPは、メールの送信先サーバーの設定です。利用するメールサービスの案内に従って、サーバー名、ポート番号、認証情報などを指定します。
アプリはダウンロードページの「Assets」から取得できます。v1.0.3では CsvMailSender.exe と、ARM64用の CsvMailSenderARM64.exe を公開しています。
起動したら、まず「設定 → SMTP設定」を開きます。差出人のメールアドレスなどを入力し、テスト送信先を自分のアドレスにして、設定画面からテストメールを送ってみてください。
ここでは、メールを送れる状態になっているかを確認します。本文に名簿の値を入れるのは、このあとです。
CSVを読み込んで、メールを作る
1. 名簿をCSVで保存する
先ほどの表をCSVにすると、次の内容になります。
メール,氏名,プラン,有効期限
yamada@example.com,山田 太郎,スタンダード,2026/10/31
suzuki@example.com,鈴木 花子,プレミアム,2026/11/30
Excelで名簿を作っている場合も、CSV形式で保存して使えます。アプリはUTF-8とShift-JISに対応しています。
アプリ左側の「参照」からCSVを開き、「メール列」で宛先アドレスが入っている列を選びます。この例では「メール」です。
続けて「CSVプレビュー」を開き、日本語が文字化けしていないか、読み込んだ件数が合っているかを確認します。
2. 件名と本文を書く
右側の「テンプレート編集」に、件名と本文を入力します。テンプレートは、繰り返し使うメールのひな形です。
今回の件名は「ご利用プランの更新について」として、本文には先ほどの [[氏名]] などを入れた文章を貼り付けます。
[[氏名]] はCSVの「氏名」列、[[有効期限]] は「有効期限」列に対応します。タグは画面の候補から挿入できるので、列名を一つずつ打ち直す必要はありません。
文章ができたら、テンプレート名を付けて「テンプレート保存」を押します。同じ形式の案内なら、次回もこのひな形を使えます。
3. 相手ごとの仕上がりを見る
「メールプレビュー」を開くと、CSVの値が入ったメールを確認できます。
※画面はリポジトリ掲載のサンプルです。この記事の名簿とは内容が異なります。
一覧から山田さんの行を選んで、宛名、プラン、有効期限を見る。次に鈴木さんの行を選んで、内容が変わっているかを見る。
ここで確認するのは、ひな形ではなく、その人に送る文章です。添付を指定した場合は、ファイルも一緒に確認できます。
送る前にチェックして、まずは自分に1通
文章ができたら「送信前チェック」を開きます。
メールアドレスの形式がおかしい、CSVにない列名を文章に使っている、指定した添付ファイルが見つからない、といった問題が一覧に出ます。同じ宛先・件名・本文のメールが送信対象に重複している場合も確認できます。
チェック結果を見直したら、メールプレビューで1行選び、「選択行をテスト送信」を押します。自分のアドレスを指定すれば、差し込み後の本文や添付を、普段使っているメールソフトで確認できます。
最初のSMTP設定でのテストは「送れるか」の確認。こちらは「どう届くか」の確認です。
このテストでは元のCC/BCCを外し、件名に [Preview Test] を付けて送ります。
確認が済んだら、送信する行にチェックを入れて「送信開始」へ進みます。最終確認画面で件数や警告を確認し、送信を開始します。
送信間隔や1分あたりの送信数も調整できます。ここは使っているメールサービスの送信上限に合わせて設定してください。
添付やCCも相手ごとに変えられます
ここまでは本文の差し込みだけを紹介しましたが、取引先ごとに資料を付けたり、担当者をCCに入れたりする使い方もできます。
| したいこと | 設定する内容 |
|---|---|
| 全員に同じ案内資料を添付する | 共通添付にファイルを指定する |
| 相手ごとに別の資料を添付する | CSVにファイルの保存場所を入れた列を作り、添付列として選ぶ |
| 取引先ごとに担当者をCCに入れる | CSVにCCの列を作り、その列を指定する |
これらの項目は「表示 → UIモード → 詳細」で表示できます。通常の本文差し込みから始めるなら、「基本」モードで使えます。
ほかにも、日本語と英語で文章を切り替える条件分岐や、フォルダー内の複数CSVをまとめて読み込む機能があります。必要になったときは、マニュアルのテンプレート構文・CSV読み込みの説明を参考にしてください。
送信したあとは、結果を確認する
送信画面では進み具合と各メールの結果を確認でき、結果の書き出しや失敗分の再送ができます。
過去の送信を調べたいときは「表示 → 送信履歴」を開きます。あとから「あの案内は送れたかな」と確認するための画面です。
なお、開封率やクリック率の分析、購読解除の管理まで行うメール配信サービスではありません。CSVの名簿を使って、案内メールを作り、内容を確認しながら送る用途に向いています。このあたりの用途は紹介ブログにもまとめています。
実装はC#とWindows Forms、.NET 10で、メール送信にはMailKitを使っています。ソースコードはMITライセンスで公開しているので、中身が気になる方はリポジトリも見てもらえるとうれしいです。
試すための日本語サンプルCSVとテンプレートも用意しています。まずは少ない件数を読み込んで、名前が入ったメールをプレビューするところから試してみてください。

