27.案内メールを一括送信してみよう

メルマガに限らず、ECサイトなどの運営では、お客様向けに新商品や特売品の情報をメールで案内するといった販促・情報案内活動には、今やメールは欠かせないものとなっている。
また、学校関連等では、緊急連絡網としてのメールの一括送信などが欠かせなくなっているが、メーラーなどを使わず、通常の配送プログラムを利用していても、意外とシングルセッションでしか送られておらず、送信に時間をかけている状況が多いようである。
本章では、CSV形式に保存された配送リストからメールアドレスを取得して、メール本文には、送り先の氏名を差し込んだメールをマルチセッションで一括して送れる方法を紹介する。

Eagleを使ってマルチセッション配送

ここで紹介する配送ツールとして、マルチセッションで送信実行可能なツール、Eagle(イーグル:仮称)である。Eagleは、コマンドプロンプトから実行する形のツールであり、サポートなしのフリーウェア扱いとなっている。以下のリンクからダウンロードしてフォルダに解凍しておく。

  ■ Eagle ダウンロード




1.メール配信SMTPサーバーを定義する

メール送信クライアントのプログラムは、自動的に対象となるSMTPサーバーを見つけてくれることはない。そのために、送信用のSMTPサーバーを指定する必要がある。
Eagleをインストールしたフォルダ内の setup.bat をダブルクリックして実行する。
実行しすると、設定内容を質問してくるので、対話式に入力し、設定を行っていく。

Configuration start....
Config file condition list

Select address family(0:IPv4,1:IPv6) [0] = <CR>
Your mail address(eg. name@domain.com)[] = user1@test-sample.jp<CR>
Your name(eg. name)[] = Sample Corp.<CR>
Character set(eg. us-ascii,iso-2022-jp)[iso-2022-jp] = <CR>
Smtp server(eg. smtp.domain.com)[] = 192.168.0.103<CR>
Smtp port(eg. 25) [25] = <CR>
Select mode(0:SMTP, 1:ESMTP) [0] = 1<CR>
Set Smtp Auth ID[] = user1<CR>
Set Smtp Auth PASSWORD = user1234<CR>
Select smtp over ssl(0:invalid, 1:valid) [0] = <CR>
Select debug view(0:invalid, 1:valid) [0] = 0<CR>
Set OK [Y/N] ? = y<CR>

Configuration complete.


上の設定の結果、インストールしたフォルダに設定ファイル sendmail.ini が新たに作成されているか確認する。

これで、送信用のSMTPサーバーを指定は完了する。

2.メール配信リストを作成する

配信リストは、以下のフォームでカンマ区切りのCSVファイルとして作成しておく。メール配信プログラムはこの配送リストに従って送信一括送信する。
ここでは、サンプルとして添付してあるメール配信リスト名を、sampleaddr.csv を利用してみる。

sampleaddr.csv をメモ帳で開き、以下のように、配信先のアドレスについて、実在するテスト用メールアドレス( user1@test-sample.jpなど)を指定して書き換える。

sampleaddr.csvの変更
??????@???.jp をそれぞれ user1@test-sample.jp にすべて変更する
変更前             → 変更後
1,??????@???.jp,氏名001,2005/08/07
1,??????@???.jp,氏名002,2005/08/07
1,??????@???.jp,氏名003,2005/08/07
1,??????@???.jp,氏名004,2005/08/07
1,??????@???.jp,氏名005,2005/08/07
1,??????@???.jp,氏名006,2005/08/07
1,??????@???.jp,氏名007,2005/08/07
1,??????@???.jp,氏名008,2005/08/07
1,??????@???.jp,氏名009,2005/08/07
1,??????@???.jp,氏名010,2005/08/07
1,user1@test-sample.jp,氏名001,2005/08/07
1,user1@test-sample.jp,氏名002,2005/08/07
1,user1@test-sample.jp,氏名003,2005/08/07
1,user1@test-sample.jp,氏名004,2005/08/07
1,user1@test-sample.jp,氏名005,2005/08/07
1,user1@test-sample.jp,氏名006,2005/08/07
1,user1@test-sample.jp,氏名007,2005/08/07
1,user1@test-sample.jp,氏名008,2005/08/07
1,user1@test-sample.jp,氏名009,2005/08/07
1,user1@test-sample.jp,氏名010,2005/08/07

※上記の例では、同じメールアドレスを10回指定しているが、実際の配送運用では、上記の配送先アドレスは、重複しないアドレスを設定しよう。同一のメールアドレスに同じ内容のメールが届くようなことがないようにするためだ。

これで、user1@test-sample.jp に10通同じメールが一括して届くか確認する準備が整った。

3.配信の実行

インストール時にいっしょに付属されている go.vbs をダブルクリックして実行させる。実行中は画面上にコマンドプロンプトが表示され、完了すると自動的に閉じる。

コマンドプロンプトが閉じられたあと、フォルダ内に "sendmail-log.txt" というログファイルが残る。ログファイルを開いてみて、配送が成功しているか確認する。

10通のメールのメール送信が正常に完了した場合は、以下のようなログが表示される。

メール送信が正常に完了した場合(sendmail-log.txt)
[04/Aug/2005:10:31:26] 00001 connect success.
[04/Aug/2005:10:31:26] 00001 send start.
[04/Aug/2005:10:31:26] 00005 connect success.
[04/Aug/2005:10:31:26] 00005 send start.
[04/Aug/2005:10:31:26] 00002 connect success.
[04/Aug/2005:10:31:26] 00002 send start.
[04/Aug/2005:10:31:26] 00004 connect success.
[04/Aug/2005:10:31:26] 00004 send start.
[04/Aug/2005:10:31:26] 00002 send success. code=0x0000
[04/Aug/2005:10:31:26] 00004 send success. code=0x0000
[04/Aug/2005:10:31:26] 00005 send success. code=0x0000
[04/Aug/2005:10:31:26] 00001 send success. code=0x0000
[04/Aug/2005:10:31:27] 00009 connect success.
[04/Aug/2005:10:31:27] 00009 send start.
[04/Aug/2005:10:31:27] 00006 connect success.
[04/Aug/2005:10:31:27] 00008 connect success.
[04/Aug/2005:10:31:27] 00008 send start.
[04/Aug/2005:10:31:27] 00007 send start.
[04/Aug/2005:10:31:27] 00007 send success. code=0x0000
[04/Aug/2005:10:31:27] 00008 send success. code=0x0000
[04/Aug/2005:10:31:27] 00009 send success. code=0x0000
[04/Aug/2005:10:31:27] 00006 send success. code=0x0000
[04/Aug/2005:10:31:27] 00010 connect success.
[04/Aug/2005:10:31:27] 00010 send start.
[04/Aug/2005:10:31:27] 00010 send success. code=0x0000
[04/Aug/2005:10:31:29] 00003 connect success.
[04/Aug/2005:10:31:29] 00003 send start.
[04/Aug/2005:10:31:29] 00003 send success. code=0x0000


一方、メール送信の設定(SMTPサーバーの指定間違いなど)で、SMTPサーバーに接続できない場合は、以下のようなログが表示される。"send success. "がなく終了している。

SMTPサーバーに接続できない場合(sendmail-log.txt)
[04/Aug/2005:10:34:37] 00001 connect fail.
[04/Aug/2005:10:34:37] 00004 connect fail.
[04/Aug/2005:10:34:37] 00002 connect fail.
[04/Aug/2005:10:34:37] 00005 connect fail.
[04/Aug/2005:10:34:37] 00003 connect fail.
[04/Aug/2005:10:34:58] 00006 connect fail.
[04/Aug/2005:10:34:58] 00009 connect fail.
[04/Aug/2005:10:34:58] 00007 connect fail.
[04/Aug/2005:10:34:58] 00008 connect fail.
[04/Aug/2005:10:34:58] 00010 connect fail.


メール送信の設定(送信元アドレスやSMTP認証失敗)で、SMTPサーバーに送信拒絶される場合は、以下のようなログが表示される。

SMTPサーバーに接続できても送信拒否される場合(sendmail-log.txt)
[04/Aug/2005:10:36:56] 00002 connect success.
[04/Aug/2005:10:36:56] 00001 connect success.
[04/Aug/2005:10:36:56] 00003 connect success.
[04/Aug/2005:10:36:56] 00004 connect success.
[04/Aug/2005:10:36:56] 00005 connect success.
[04/Aug/2005:10:36:56] 00002 send start.
[04/Aug/2005:10:36:56] 00001 send start.
[04/Aug/2005:10:36:56] 00003 send start.
[04/Aug/2005:10:36:56] 00004 send start.
[04/Aug/2005:10:36:56] 00005 send start.
[04/Aug/2005:10:36:57] 00006 connect success.
[04/Aug/2005:10:36:57] 00006 send start.
[04/Aug/2005:10:36:57] 00007 connect success.
[04/Aug/2005:10:36:57] 00007 send start.
[04/Aug/2005:10:36:57] 00008 connect success.
[04/Aug/2005:10:36:57] 00008 send start.
[04/Aug/2005:10:36:57] 00009 connect success.
[04/Aug/2005:10:36:57] 00009 send start.
[04/Aug/2005:10:36:57] 00010 connect success.
[04/Aug/2005:10:36:57] 00010 send start.

4.配信結果の確認

メールが user1@test-sample.jp に10通届いているか、メールクライアントで受信してみよう。


正しく届いているか確認できるはずである。

メールサーバー側の受信処理を速くするには


Eagleを使うことにより、送信クライアントプログラムの処理がいくら速くなっても、メールサーバー側の受信処理に時間がかかってしまっているときは、送信処理全体が結局遅くなってしまう。
E-Post Mail Server シリーズで一括配送を目的とする場合は、以下の設定とすることで、処理速度を向上させることができる。逆に言うと、これらの機能を無効にするということは、通常目的のメールサーバとはトレードオフの関係になってしまうことが考えられる。つまり、配送目的のためだけに設定環境を用意した方が望ましいということが言えるだろう。
「E-Post Mail Control」
 1.[中継の制限]タブ→[ORDBによる制限]  オフ(無効)
 2.[メールフィルタ]タブ→[メールフィルタ機能を使用する]  オフ(無効)
 3.[Virus Check 機能]タブ→[Virus Check 機能を使用する] オフ(無効)
 (Enterprise / EnterpriseII シリーズ)
 4.[ログ設定]タブ→[配送時の詳細ログ]  オフ(記録しない)



書籍『E-Post Mail Server完全ガイド』ご案内