EC-CUBE のメルマガ機能に不具合があるときの代替手段 - Mail Distributor

EC-CUBE は、オープンソースで高機能なECサイト構築システムです。 株式会社ロックオンが提供する「日本初のECオープンソース」で、自由にカスタマイズすることにより、ASPではできなかった独自性の高いECサイトを無料作れるというのが売りです。しかも、デフォルトから3キャリアのモバイルサイトにも完全対応しています。 さて、この EC-CUBE には、無料会員登録したユーザーにメルマガを配信する...

ec-cube-logo.png

EC-CUBE は、オープンソースで高機能なECサイト構築システムです。

株式会社ロックオンが提供する「日本初のECオープンソース」で、自由にカスタマイズすることにより、ASPではできなかった独自性の高いECサイトを無料作れるというのが売りです。しかも、デフォルトから3キャリアのモバイルサイトにも完全対応しています。

さて、この EC-CUBE には、無料会員登録したユーザーにメルマガを配信する機能がついていますが、このメルマガ機能に不具合があったときの緊急の代替手段として、フリーソフトの同報メール配信ソフト「Mail Distributor」を使ってみよう、というお話です。

なお、ご利用は自己責任でお願いします。

Microsoft .NET Framework をインストール

Mail Distributor」を使うには、.NET Framework 2.0 以上が必要です。

そこで、次のサイトから、最新版の .NET Framework 3.5 Service Pack 1 をダウンロードします。

net_framework01.jpg

上記サイトの「今すぐインストール」をクリックします。

netframework01-2.jpg

「ダウンロード」をクリックします。

netframework02.jpg

ダウンロードしたファイルを開き、「実行」でインストールを開始します。

netframework03.jpg

後は流れに沿って行けばOKです。

netframework04.jpg

netframework05.jpg

netframework06.jpg

Mail Distributor をインストール

次に以下のいずれかのサイトから「 Mail Distributor 」をダウンロードします。

ダウンロードしたファイルを開き、インストールを開始します。流れに沿って行けばOKです。

mail_distributor01.jpg

mail_distributor02.jpg

mail_distributor03.jpg

mail_distributor04.jpg

mail_distributor05.jpg

mail_distributor06.jpg

mail_distributor07.jpg

インストールが完了したら「Mail Distributor」を開いてみましょう。.NET Framework をインストールしていないとエラーが出ますので、忘れずに .NET Framework をインストールしましょう。

EC-CUBE のメルマガ購読者一覧をダウンロード

デフォルトの機能だとメルマガ購読者一覧をダウンロードできない

次に、EC-CUBE からメルマガ購読者の一覧をCSVでダウンロードします。

EC-CUBE では、「顧客管理」で検索した顧客の一覧をCSVでダウンロードできるようになっています。しかし、残念ながら、この検索条件を指定する画面にはメルマガに関する項目がなく、メルマガ購読の有無や購読の種類で顧客を絞り込むことができません。

ec-cube-mailmag01.jpg

また、「メルマガ管理」では、メルマガの「配信形式」や「配信メールアドレス種別」で顧客を絞り込むことが可能ですが、ここではその絞り込んだ顧客の一覧をCSVでダウンロードすることができません。

ec-cube-mailmag02.jpg

簡単なSQLを書いてメルマガ購読者一覧をダウンロード

しかし、EC-CUBE には SQL の SELECT文を書いて、データベースから欲しい情報をCSVでダウンロードできる便利な機能があります。

そこで、この機能を使って、以下のような手順でメルマガ購読者一覧をCSVでダウンロードすることにします。

まず、「コンテンツ管理 > CSV出力項目設定 > 高度な設定」を開き、「新規SQL作成」をクリックします。

ec-cube-mailmag03.jpg

ec-cube-mailmag04.jpg

ec-cube-mailmag05.jpg

一般的なメルマガで必要な項目は「メールアドレス」と「名前」です。したがって今回は、EC-CUBE で「メールアドレス」と「名前」をダウンロードして、それを Mail Distributor にインポートすることにします。

Mail Distributor のアドレス帳の項目

ここで、インポート先の Mail Distributor のアドレス帳の項目を見てみましょう。

ec-cube-mailmag06.jpg

  • e-mail:メールアドレス
  • Name:名前
  • ZipCode:郵便番号
  • Prefecture:都道府県
  • Address:住所
  • Tel:電話番号
  • Birthday:誕生日
  • Occupation:職業

「メールアドレス」には何の問題もありませんが、「名前」がちょっと問題です。

上の一覧を見て分かるとおり、Mail Distributor のインポート項目の「名前」は、「苗字」と「名前」が別々ではなく一つの項目となっています。しかし、EC-CUBE では、「苗字」と「名前」は別々のフィールドに登録されています。

Mail Distributor のインポート項目を増やすことも可能ですが、作業をできるだけ簡単にするために、今回は、EC-CUBE 側の「苗字」と「名前」のフィールドを結合した形で一覧をダウンロードすることにします。

SQL を書く

話を EC-CUBE に戻し、先ほどの「新規SQL作成」をクリックしたところから始めます。

「名称」欄に、今回設定する SQL の名前を入力します。ここでは「メルマガ購読者一覧」としました。

次に、「SQL文」欄に、以下のような SELECT文を入力します。SELECT文とは言っても、この機能においては「SELECT」は記述しないようにしてください。

CONCAT(name01 , name02) , email
 FROM dtb_customer
 WHERE mailmaga_flg IN (1,2)
 AND del_flg = 0;

これを言葉で説明すると以下のようになります。

「データベース内の dtb_customer テーブルから、mailmaga_flg が1か2で、かつ del_flg が0である name01 フィールドと name02 フィールドと email フィールドを取得する。name01 フィールドと name02 フィールドは結合して取得する。」

name01 , name02 , mailmaga_flg , del_flg はフィールド名、dtb_customer はテーブル名です。EC-CUBE 内のテーブルやフィールドは、ページ下部にある一覧表で確認できます。左のカラムの「テーブル一覧」をクリックすると、そのテーブル内のフィールドが右の「項目一覧」に表示されます。また、それぞれの項目をダブルクリックすると、その項目名が上のテキストエリアの末尾に入力されます。

SQLを入力したら必ず「確認ページへ」をクリックし、書いた SQL 文に間違いがないか確認しましょう。

ec-cube-mailmag07.jpg

エラーがないことを確認したら「この内容で登録する」をクリックします。上段の「SQL一覧」に登録したSQLの名前が表示されればOKです。

この一覧の「CSV出力」をクリックすると、書いたSQL文の結果をCSVでダウンロードできます。

ec-cube-mailmag08.jpg

Mail Distributor で配信

あとは、このCSVを Mail Distributor のアドレス帳にインポートし、実際にメルマガを配信するだけです。それらの手順は、Mail Distributorのページの「Mail Distributor ドキュメント」で丁寧に説明されているので、ここでは割愛します。

注意事項

メルマガ購読者の数が多い場合

メルマガ購読者の数が多い場合、メールサーバーに負担がかかってしまったり、エラーが出る可能性があります。そのような場合は、以下のようにSQL文の最後に顧客ID(customer_id)での条件を追加して SQL文を複数作成すれば、分割して購読者一覧のCSVをダウンロードすることができます。

(例 1)メルマガ購読者一覧【ID:1~500】
CONCAT(name01 , name02) , email
 FROM dtb_customer
 WHERE mailmaga_flg IN (1,2)
 AND del_flg = 0
 AND customer_id <= 500;
(例 2)メルマガ購読者一覧【ID:501~】
CONCAT(name01 , name02) , email
 FROM dtb_customer
 WHERE mailmaga_flg IN (1,2)
 AND del_flg = 0
 AND customer_id > 500;

毎回メルマガ購読者一覧を新しくする

当然のことですが、EC-CUBE 内の顧客データは刻一刻と変化しています。したがって、この方法で行う場合は、メルマガを配信する直前に毎回「メルマガ購読者一覧」のCSVをダウンロードして Mail Distributor にインポートする必要があります。

以上です。

Published 2009-04-07
Updated 2019-06-25