まゆメール配信システム


■ 機能
メルマガ配信システムです。メルマガ登録したり配信停止したりするとき、自動送信されたメールに記載されたURLをクリックすることで手続きを完了します。メルマガ配信時には登録手続きが完了した顧客のメールアドレスのリストを作成し、BCCを使用して配信します。またメール配信と同時にメールの内容をそのままバックナンバーとして登録するので、メルマガ読者以外の人も内容を読むことができます。(※ご利用前に「利用規約」をご確認ください)

■ サンプル
いろいろご自由に試してみてください。でもデータの変更やメールの送信はできないようにしています。サンプルデータで使用しているメールアドレスは架空のものです。
「まゆメール」手続きページ





―――――
「まゆメール事務局」管理ページ








■ ダウンロード
以下をダウンロードした後、圧縮・解凍ソフトで解凍してください。
(67KB)

■ 同梱ファイル
全部で29個あります。以下はその簡単な説明です。

(説明ファイル)
readme.htm - 利用方法を説明したファイル

(初期設定ファイル)
init.cgi - 初期パラメータを設定するためのファイル

(手続きページに関するもの)
ent_input.cgi - 登録情報の入力画面を表示するCGIスクリプトファイル
ent_confirm.cgi - 入力データを確認表示するCGIスクリプトファイル
ent_send.cgi - 登録内容を保留データファイルに書き込んでURL付きメールを送付するCGIスクリプトファイル
ent_decision.cgi - 登録情報を確定データファイルに書き込んで確認メールを送付するCGIスクリプトファイル
can_input.cgi - メールアドレスの入力画面を表示するCGIスクリプトファイル
can_confirm.cgi - 入力したメールアドレスから登録情報を検索して表示するCGIスクリプトファイル
can_send.cgi - 登録内容を配信停止待ちデータファイルに書き込みURL付きメールを送付するCGIスクリプトファイル
can_exec.cgi - 登録情報を削除し確認メールを送付するCGIスクリプトファイル
mag_list.cgi - メルマガのバックナンバーの月別リンクを表示するCGIスクリプトファイル
mag_read.cgi - メルマガのバックナンバーの内容を表示するCGIスクリプトファイル
input_check.js - 手続きページの入力チェックを行うJavaScript外部ファイル
jcode.pl - 漢字コード変換ライブラリ(メール送信時に使用)
mimew.pl - MIMEエンコードライブラリ(メール送信時に使用)
※jcode.pl は、歌代和正さんが開発、配布されている漢字コード変換ライブラリ
※mimew.plは、生田昇さんが開発、配布されているMIMEエンコードライブラリ

(管理ページに関するもの)
pending_view.cgi - 保留データを表示するCGIスクリプトファイル
pending_del.cgi - 保留データを個別に指定して削除するCGIスクリプトファイル
decision_view.cgi - 確定データを表示するCGIスクリプトファイル
decision_del.cgi - 確定データを個別に指定して削除するCGIスクリプトファイル
cancel_view.cgi - 配信停止待ちデータを表示するCGIスクリプトファイル
cancel_del.cgi - 配信停止待ちデータを個別に指定して削除するCGIスクリプトファイル
mag_input.cgi - メルマガの作成画面を表示するCGIスクリプトファイル
mag_confirm.cgi - メルマガの内容を確認表示するCGIスクリプトファイル
mag_send.cgi - メルマガを送信しその内容をバックナンバーファイルに書き込むCGIスクリプトファイル
ment_check.js - 管理ページの入力チェックを行うJavaScript外部ファイル

(ログファイル)
rec_num.cgi - 受付番号を格納するためのログファイル
mag_num.cgi - メルマガ番号を格納するためのログファイル

(CSSファイル)
sendmag.css - スタイルを指定するためのファイル

(ファイルロック処理で使用)
lockfile - ロック状態を判断するためのファイル

■ 注意事項
1. 管理ページはアクセス制御(IDとパスワードがなければ入室できない)は使用していません。必要であれば、KENT-WEBWeb Protectなどを設置した上で、「まゆメール配信システム」を設置してください。

2. メルマガ登録時、名前やメールアドレスなどを入力して送信すると、まず顧客にURL付きの手続きメールが送られます(仮登録)。その後顧客がそのメールを開いてURLをクリックした段階で登録が確定します。配信停止の場合も同様です。

3. 保留データ、確定データおよび配信停止待ちデータの関係についてですが、仮登録時にはまず保留データファイルに登録されます。そして顧客がメールに記載されたURLをクリックすると、確定データファイルに書き込まれ、保留データファイルからは削除されます。配信停止の手続きの場合は、確定データ(または保留データ)はそのままで、配信待ちデータファイルに必要情報が書き込まれます。その後顧客がメールに記載されたURLをクリックすると、確定データ(または保留データ)と同時に配信待ちデータも削除されます。

4. 保留データ、確定データおよび配信停止待ちデータの受付番号は、仮登録時の受付番号をそのまま使用しています。配信停止待ちデータに表示されている受付番号は、配信停止の申し込み時に新たに付けられた受付番号ではありません。

5. メルマガ配信時には確定データからメールアドレスのリストを作成し、BCCに渡すことで配信しています。したがって宛先には何も指定しなくていいのですが、メルマガ読者は届いたメールの宛先に何も表示されていないと印象がよくないと思うので、できれば宛先には差出人の別のメールアドレスを指定することをおすすめします。宛先が差出人と同じメールアドレスよりはいいと思います。配信されたメールを自分でも確認してみてください。

6. 手続きメールに記載されたURLの有効期限の処理は今のところこのシステムに追加していませんので、仮登録および仮配信停止の状態で何日も経過した顧客のデータは、管理ページから削除してください。そうすることで、その後顧客がメールに記載したURLをクリックしても、登録や配信停止の確定はできなくなります。

7. このシステムは sendmailコマンドを利用してメールの送信をしているので、メールソフトやウェブメールによっては、迷惑メールと判定される場合がありますのでご注意ください。顧客にはそのことを目立つように表示しておくほうがいいかもしれません。

8. 保留データ、確定データ、配信停止待ちデータは、カンマで区切られたテキストファイルになっています。これらのデータをExcelやAccessなどに取り込む場合は、ファイルをダウンロードしたあと、ファイルの拡張子(ドットより右の"cgi")を"txt"に変えて、テキストデータとして取り込んでください。

9. 受付番号をリセットまたは任意の番号にしたいときは、受付番号格納ファイル(rec_num.cgi)の数字を書き換えてアップロードしてください。例をあげると、0に書き換えてアップロードすると、その後最初にメルマガの申し込み(仮登録)があれば、その受付番号は1になります。10に書き換えてアップロードすると、11からスタートになります。また受付番号を減らすことは、データをリセット(保留データ、確定データおよび配信停止待ちデータをすべて削除)するとき以外は、避けてください。同じ受付番号のデータが複数存在することになり、システムが誤動作を起こします。

10. メルマガ番号をリセットまたは任意の番号にしたいときは、メルマガ番号格納ファイル(mag_num.cgi)の数字を書き換えてアップロードしてください。0に書き換えてアップロードすると、その後最初の配信で、バックナンバーの番号は1になります(メールには記載されません)。メルマガ番号は受付番号と違って、番号の書き換えによるシステムの誤動作はありません。

■ 設置方法
1. init.cgi(初期パラメータ設定ファイル)を、メモ帳などのテキストエディタで開き、必要な場合は、★印の項目を説明に従って変更してください。また、☆印の項目は、sendmailのオプションなので、使用するサーバでこのオプションが指定できるか確認してください(ent_send.cgi、ent_decision.cgi、can_send.cgi、can_exec.cgi および mag_send.cgiの中の★印をつけた部分(各1か所)も確認してください)。

2. 各CGIの1行目のパス名も、必要な場合は変更してください。

3. 19個の各CGIのHTMLを書き出す部分の、<body>タグのbackground属性値(背景画像を指定する部分)と、<a>タグの間に挟まれた<img>タグ(BACKボタンまたはTOPボタン)の部分は、設置する環境や好みに応じて変更してください。そのまま設置すると、背景画像はなく(白の背景になります)、BACKボタンもTOPボタンも表示されません(×印が表示されます)。

4. まず、lockfile以外の27個のファイルをサーバーに転送してください。
ファイル パーミッション
init.cgi 変更不要
ent_input.cgi 755
ent_confirm.cgi 755
ent_send.cgi 755
ent_decision.cgi 755
can_input.cgi 755
can_confirm.cgi 755
can_send.cgi 755
can_exec.cgi 755
mag_list.cgi 755
mag_read.cgi 755
input_check.js 変更不要
jcode.pl 変更不要
mimew.pl 変更不要
ファイル パーミッション
pending_view.cgi 755
pending_del.cgi 755
decision_view.cgi 755
decision_del.cgi 755
cancel_view.cgi 755
cancel_del.cgi 755
mag_input.cgi 755
mag_confirm.cgi 755
mag_send.cgi 755
ment_check.js 変更不要
rec_num.cgi 変更不要
mag_num.cgi 変更不要
sendmag.css 変更不要

5. 次に、4.でファイル転送したディレクトリの下に、lockdir という名前のディレクトリを作り、そこに lockfile という名前のファイルを転送してください。
ディレクトリ パーミッション
lockdir 変更不要
ファイル パーミッション
lockfile 変更不要

<ディレクトリ構成例>

public_html
  |
  +--xxxxxx.htm [644] 手続き用トップページ(配布していません)
  +--xxxxxx.htm [644] 管理用トップページ(配布していません)
  |
  +--mydb6
  |  |
  |  +----bknum
  |  |   |
  |  |   +--bnxxxxxx.cgi [644] バックナンバーファイル1(自動作成)
  |  |   +--bnxxxxxx.cgi [644] バックナンバーファイル2(自動作成)
  |  |   +--bnxxxxxx.cgi [644] バックナンバーファイル3(自動作成)
  |  |         :   :         :
  |  |         :   :         :
  |  +----state
  |      |
  |      +--pending.cgi [644] 保留データファイル(自動作成)
  |      +--decision.cgi [644] 確定データファイル(自動作成)
  |      +--cancel.cgi [644] 配信停止待ちデータファイル(自動作成)
  |
  |
  +--cgi--sendmag
          |
          +--init.cgi [644] 初期パラメータ設定ファイル
          |
          +--ent_input.cgi [755] CGIスクリプトファイル
          +--ent_confirm.cgi [755] CGIスクリプトファイル
          +--ent_send.cgi [755] CGIスクリプトファイル
          +--ent_decision.cgi [755] CGIスクリプトファイル
          +--can_input.cgi [755] CGIスクリプトファイル
          +--can_confirm.cgi [755] CGIスクリプトファイル
          +--can_send.cgi [755] CGIスクリプトファイル
          +--can_exec.cgi [755] CGIスクリプトファイル
          +--mag_list.cgi [755] CGIスクリプトファイル
          +--mag_read.cgi [755] CGIスクリプトファイル
          +--input_check.js [644] JavaScript外部ファイル
          +--jcode.pl [644] 漢字コード変換ライブラリ
          +--mimew.pl [644] MIMEエンコードライブラリ
          |
          +--pending_view.cgi [755] CGIスクリプトファイル
          +--pending_del.cgi [755] CGIスクリプトファイル
          +--decision_view.cgi [755] CGIスクリプトファイル
          +--decision_del.cgi [755] CGIスクリプトファイル
          +--cancel_view.cgi [755] CGIスクリプトファイル
          +--cancel_del.cgi [755] CGIスクリプトファイル
          +--mag_input.cgi [755] CGIスクリプトファイル
          +--mag_confirm.cgi [755] CGIスクリプトファイル
          +--mag_send.cgi [755] CGIスクリプトファイル
          +--ment_check.js [644] JavaScript外部ファイル
          │
          +--rec_num.cgi [644] ログファイル
          +--mag_num.cgi [644] ログファイル
          │
          +--sendmag.css [644] CSSファイル
          │
          +--lockdir [755] ファイルロック用ディレクトリ
              |
              +--lockfile [644] ロック状態を判断するためのファイル

6. 手続き用トップページと管理用トップページをそれぞれ別々のページに設置してください。

手続き用トップページから呼び出すファイル
機能 呼び出すファイル 上の構成例でのファイルパス
メルマガ登録 ent_input.cgi cgi/sendmag/ent_input.cgi
配信停止 can_input.cgi cgi/sendmag/can_input.cgi
バックナンバー mag_list.cgi cgi/sendmag/mag_list.cgi

管理用トップページから呼び出すファイル
機能 呼び出すファイル 上の構成例でのファイルパス
保留データの管理 pending_view.cgi cgi/sendmag/pending_view.cgi
確定データの管理 decision_view.cgi cgi/sendmag/decision_view.cgi
配信停止待ちデータの管理 cancel_view.cgi cgi/sendmag/cancel_view.cgi
メルマガ作成 mag_input.cgi cgi/sendmag/mag_input.cgi

■ 更新履歴
・Ver1.3 - フォームとバックナンバー内容ページをスマホに対応させる(2018/03/28)
・Ver1.2 - HTMLを書き出す部分にMETAタグによるビューポート設定を追加(2017/09/25)
・Ver1.1 - 書き出すHTMLの1行目に文書型宣言を追加(2016/05/16)
・Ver1.0 - 新規作成(2015/03/27)


BACK