|
| |
|
・One-2-One DM Sender とは? ・One-2-One DM Sender の特徴 ・One-2-One DM Sender 設置法
One-2-One DM Sender は通常のメルマガ配信CGIとは違います。 SOHOや中小企業の商用サイトが本格的なパーソナライズマーケティングを安価に実施するために設計・制作された、パーソナライズマーケティング専用CGIスクリプトです。 パーソナライズマーケティングの概要については、こちらをご覧下さい。 個人名や会社名など、メール文面に差し込む項目を無制限に設定できるほか、配信する文面を何パターンでも設定できるため、顧客属性に合わせて最適な情報提供をしつつ、企業と顧客の感情的な繋がりを維持・強化していくことが可能です。数万件以上の一斉送信にも分割送信で対応していますので、事実上同時送信数の制限はありません。 One-2-One DM Sender はシェアウェア(21,000円)の多機能Eメール配信エンジンCGIスクリプトです。 (Perl:バージョン5.004以上、Sendmail必須) (サンプル画面:新しいウィンドウが開きます) CGIの設置が苦手という方には、メルマガ:なるほど、これならわかる!超初心者の為のCGI設置講座がお勧めです! ※現在、BBSでの設置サポートは休止中です。
[ 更新履歴 ] ・2003/01/03 v1.02 - 公開 ・2003/02/15 v1.03 - メールヘッダの記述を改良 ・2003/08/27 v1.03b - 一部ロジックを改良、動作安定度を向上
One-2-One DM Sender は以下の特徴を持っています。
▲このページの上に戻る▲
One-2-One DM Sender は、スクリプト利用規約に同意いただいた上で、 ▲このページの上に戻る▲
CGIの設置が初めてという方はCGI初心者のためのCGI設置講座もご活用下さい。 このページの設置法を読んでみて、どうしてもご自分では設置できないという方は有償サービスのCGI設置代行をご検討下さい。 全てに答えられることは保証できませんが、もしお困りのことやご意見などありましたらBBSにご投稿ください。 One-2-One DM Sender をダウンロードしたら、解凍ソフトで解凍します。 ファイルを解凍すると「dmsender」フォルダ内に以下のファイルが展開されます。
lockフォルダの中にsend.lokというファイルが入っていますが、これはファイルロック用のファイルですのでこのままアップロードして下さい。 dataフォルダの中にもいくつかのファイルが入っていますがこれらも後ほどそのまま全てアップロードします。 mailフォルダの中にはサンプルのメール文面ファイルが入っています。 jcode.pl は歌代 和正さんのPerlライブラリで再配布が許可されています。歌代さんに心から感謝いたします。 mimew.pl は生田 昇さんのPerlライブラリで再配布が許可されています。生田さんにも心から感謝いたします。 ※mime_pls202フォルダの中にはmimew.plのドキュメント一覧が含まれています。アップロードの必要はありません。 まずエディタでsender.cgi を開き、1行目のPerlのパスをプロバイダ指定のものに変更します。 (sender.cgi とconf.cgi は文字コードをEUCで記述していますのでWindows標準のメモ帳などでは編集できません) sender.cgi の変更点はこれだけで終りです。主な設定は設定用ファイルのconf.cgi で行います。 次にエディタでconf.cgi を開き、下記の設定を行います。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#------------# # 基本設定 # #------------# # 管理者名 $admin_name = 'Web-UP'; # 管理者メールアドレス $admin_mail = 'info@web-up.cside.biz'; # 管理者用パスワード(半角英数字) 必ず変更して下さい $pass = '0000'; # 指定したホスト以外からのスクリプト呼び出しを禁止する場合に設定して下さい # ダイアルアップで接続しているかたは接続するたびにアクセスポイントが変わりますので、 # 何回か接続してみて変化しない部分を設定して下さい # 未設定だと無効となります # $your_host = 'ore.da.jp';などの形で $your_host = 'ore.da.jp'; # 指定したブラウザ以外からのスクリプト呼び出しを禁止する場合に設定して下さい # 未設定だと無効となります # $yourua = 'Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)';などの形で $your_ua = 'Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)'; # sendmail部分のパスを記入 $sendmail = '/usr/sbin/sendmail'; # CSVデータのメールアドレスの重複チェックをするなら1,しないなら0 $adr_chk = 1; # CSVデータのメールアドレスに不備(全角英数など)があったときに自動修正するなら1,しないなら0 $adr_crc = 1; # 送信結果を管理者にメールで通知するなら1,しないなら0 $result = 1; # スクリプトの名称(とくに変更する必要はありません) $sc_name = 'sender.cgi'; # ロックディレクトリ名(とくに変更する必要はありません) $lock_dir = './lock/'; # ロックファイル名(とくに変更する必要はありません) $lock_file = 'send.lok'; # 一時ファイル(とくに変更する必要はありません) $tmp_file = './tmp.dat'; #--------------------------# # メール送信に関する設定 # #--------------------------# # [注意] 下の $plus と $wait は、サーバー能力や送信する時間帯などによってベストな設定は変わってきます #送信に多少時間がかかっても送信の確実性を増す為に余裕のある設定にしておくことをお勧めします #余裕のある設定とは $plus は30前後 $wait は3以上を指します #サーバーの負荷状況を確認できる環境であれば様子を見ながら徐々に調節して下さい # 1回に送信する件数(30前後を推奨) # この数値を「大きく」するほど送信が早く終わりますがサーバー負荷が大きくなるので注意して下さい $plus = 30; # インターバル 1回の送信が終わったら処理を一時中断する秒数(3秒程度を推奨) # インターバルとは、上の$plus で設定した件数を送信後、処理を一時中断する秒数のことです # この数値を「小さく」するほど送信が早く終わりますがサーバー負荷が大きくなるので注意して下さい $wait = 3; # 差し込み機能を使うなら1,使わないなら0 $change = 1; # メールファイル # $mail_file[0]が標準のメールファイルとなります # 複数のメールファイルを使わない場合は$mail_file[0]のみの設定でOKです # 複数のメールファイルを使う場合は行頭の「#」を削除して$mail_file[番号]の番号部分を1づつ増やして下さい # いくつでも設定できます $mail_file[0] = './mail/mail0.txt'; #$mail_file[1] = './mail/mail1.txt'; #$mail_file[2] = './mail/mail2.txt'; # メール送信時に自動的に改行する場合その文字数 # 文字数は半角換算、70程度を推奨 0にすると自動改行しません $auto_wrap = 70; #---------------------------# # CSVファイルに関する設定 # #---------------------------# # CSVファイル # データ漏洩が懸念される場合はメール送信が終わったらサーバーからCSVファイルを削除するか、 # 拡張子を[.cgi]にして下さい その場合実際のファイルの拡張子も[.cgi]にしてパーミッションを666または606にします $csv_file = './data/data.csv'; # CSVファイルの分割キー(タブ区切りの場合は半角で \t と記入します) # $split_key に設定した文字がCSVデータ中に含まれていないよう注意して下さい $split_key = ','; # CSVファイルの内容 詳しくはこちらをクリック # 実際のCSVファイルのフィールド(列)位置と対応させて下さい # 最初の1列目はメールアドレス用に固定となります # 複数のメールファイルを使う場合は2列目にメール文書番号($mail_file[番号]の番号部分)として下さい # 文書番号以降が置換対象データとなり基本的に ##文字列## の形で記述して下さい # 置換する文字列はメール本文中にその文字列があった場合、該当する列のCSVデータと差し替えられます # 例) ##お名前## 様 ⇒ 山田様 など @csv_fields = ( 'メールアドレス', # CSVファイル1列目(固定) '文書番号', # CSVファイル2列目 '##お名前##', # CSVファイル3列目 '##会社名##', '##商品名##' ); # 複数のメールファイルを使わない場合は2列目から ##文字列## の形で記述して下さい # 例) # @csv_fields = ( # 'メールアドレス', # CSVファイル1列目(固定) # '##お名前##', # CSVファイル2列目 # '##会社名##', # CSVファイル3列目 # '##商品名##' # ); #--------------------# # HTMLに関する設定 # #--------------------# # bodyタグ $body = '<body bgcolor="#FFFFFF" text="#000000" link="#000FF" vlink="#800080">'; # テーブル色(濃) $tb_bg_col = '#ddddcc'; # テーブル色(薄) $td_bg_col = '#ffffee'; # エラー画面のタイトル $error_title = 'エラー'; # エラー時に表示するHTML # <<EOF;の次の行からEOFの前の行の間で自由に編集して下さい # ##error## 部分にはエラー内容が差し込まれます $error_body = <<EOF; <div align=center> <font color=#cc0000>(゚∇゚|||) <font size=+1><b>エラー</b></font> (゚∇゚|||)</font> <br><br> <HR width=50%> <font color=red> ##error## </font> <HR width=50%> </div> EOF ここまで設定できたら一服しましょう (* ̄ー ̄)y-~~~~~~ フ〜 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
一服が終わったら全ファイルを dmsender ディレクトリごと、FTPソフトでアスキーモードでアップロードします。 その後、下の通りパーミッションを設定します。 FTPソフトは定番のSotaさん作FFFTP(新しいウィンドウが開きます)が使いやすくてオススメです。 <ディレクトリ構成例> (かっこ内はパーミッション値)
最初は上記のパーミッションに設定して、徐々に各ファイルを 777⇒707 755⇒705 666⇒606 644⇒604 などのようにきつくしていくといいと思います。 あとは設置パス/sender.cgi にアクセスして、conf.cgi で設定したパスワードを入力してログインできればOKです。 実際にDM配信をする際には、テスト送信で複数文書の切り替わりや差し込みの状態を十分に確認してから行って下さい。 #--------------------------------# # CSVファイルとメール文面に関して # #--------------------------------# ■conf.cgi で設定した@csv_fields の順番 と実際のCSVファイルの列の順番はそれぞれ対応している必要があります。 例えば、@csv_fields が次のように設定されていたとすると、 @csv_fields = ( 'メールアドレス', '文書番号' '##お名前##', '##会社名##', '##商品名##' ); 実際のCSVファイル上では下のような順番になっている必要があります。 差し込み機能を使う場合、CSVファイルの1列目と2列目はメールアドレスと文書番号で固定となります。
これは@csv_fields と下のように対応しています。
■複数のメール文書を使わない場合は2列目からを置換対象の文字列とします。 @csv_fields = ( 'メールアドレス', '##お名前##', '##会社名##', '##商品名##' ); 実際のCSVファイル上では下のようになり、
これは@csv_fields と下のように対応しています。
■複数のメール文書を使うが差し込み機能は使わないという場合は下のように2列だけになります。
■複数のメール文書も差し込み機能も使わない場合は下のように1列だけとなります。 通常のメールマガジンなどの発行に使うだけならこの状態でもOKです。
■CSVファイル2列目の文書番号は、conf.cgi の$mail_file[番号] の番号部分と対応しています。 CSVファイル2列目の文書番号が0であれば$mail_file[0] で指定されているメールファイル、 CSVファイル2列目の文書番号が1であれば$mail_file[1] で指定されているメールファイルがメールの文面として使われることになります。 メールファイル自体の名前は任意のものでかまいません。 例) 「otokuisama.txt」 「imadake.dat」 など。 ■メール文面内に@csv_fields の3項目目以降(前述した例では##お名前##など)と同一の文字列があると、その部分にCSVファイルのデータが差し込まれます。 例えば、次のようなメール文面だった場合、
下のように差し込まれます。
@csv_fields に設定する文字列は必ずしも「#」で囲う必要はありませんが、スクリプトの正常動作の為、他の記号は使わない方が無難です。 ■メールの件名にはメール文面内の1行目が使われ、本文からは差し引かれた状態になります。 例えば、次のようなメール文面だった場合、
下のようなメールになります。
#-------------------------------------# # 万が一、メール送信が中断してしまったら # #-------------------------------------# サーバーの能力不足や、送信作業をしているときのサーバー負荷、または回線障害や停電など、不測の事態によってメール送信が中断してしまった場合は、FTP接続をしてsender.cgi が設置してあるディレクトリ内のtmp.dat をダウンロードします。 tmp.dat をエディタで開いてみると
などと記述されています。 一行目の10桁の数字は送信開始時刻を表し、2行目が今回の送信の名称、3行目が処理済み件数、4行目がなんらかの理由で送信できなかったアドレスの数、5行目以降が送信できなかったアドレスとなります。送信開始時刻は一見するとただの数字の羅列にしか見えませんが、これは1970/1/1 0:00:00からの秒数となっています。 整理すると、
となり、送信を再開するにはCSVデータの524行目以降のデータと「uho@foo.ne.jp」と「boke@hoge.ne.jp」のデータを追加したものを新しいCSVファイルとして用意すればよいことになります。 ※tmp.dat をダウンロードする前にsender.cgi にアクセスして送信を再開してしまうと、新しいデータでtmp.dat が上書きされてしまうのでご注意下さい。 作者が試験した環境(サーバーCPU:PENV-1Ghz、メモリ526MB、サーバー定員140名)では、「1回の送信件数を1000件+インターバル0秒」というかなり厳しい条件で1万件を送信しても100%の送信完了率でしたが、念の為1回の送信件数は30件程度にしておくことをお勧めします。 ▲このページの上に戻る▲ 「One-2-One DM Sender」の推奨動作環境
▲このページの上に戻る▲ |
|
| |