XAMPPで「SYNCKGRAPHICA Mailform」を動作させる
(最終更新: 2016-10-13)
目次
要望
メールフォームの動作確認をローカルで行いたい。
環境
- XAMPP 7.0.9 (Windows 10)
- 使用するメールフォーム: SYNCKGRAPHICA Mailform 6.8.1
XAMPPでメールを送信できるようにする
まず、メールフォームとは関係なく、XAMPPのsendmailを使ってメールを送信できるようにします。
Gmailのアカウントを使うのがお手軽です。
下記の記事に従って設定してください。
Jcode.pmを設置する
このメールフォームにはPerlモジュールの「Jcode.pm」が必要です。
下記から圧縮ファイルを入手して解凍します。
中に入っているJcode.pm
を、Perlのライブラリのフォルダに移せば完了です。
(通常、XAMPPの場合はC:\xampp\perl\lib\
内です)
Jcode.pmがないと発生するエラー
下記のようにEnd of script output before headers
というエラーメッセージが表示されます。
なお、リモートのさくらサーバではJcode.pmははじめから入っているようです。
Perlとsendmailへのパスを本番と同じにする
このメールフォームではPerlとsendmailを下記の場所に求めています。
リモートのさくらサーバはこれと同じなので問題ないのですが、ローカルのXAMPPでは場所が異なります。
これを解決するためにシンボリックリンクを利用します。
詳しくは下記をご覧ください。
send.cgiの設定を適切に変更する
ローカルでの送信テストで最低限必要な項目だけを取り上げます。
最初の3つの項目は全て0
にします。
#00.テスト時の誤送信を制御 / 0にしないとメールが飛びません $conf{'debug'} = 0; #03.スパムブロック([URL]や[LINK]、<a>タグが含まれた送信をブロック) 1:ON / 0:OFF $conf{'spam_block'} = 0; #03-01.送信文字列にURLが含まれる場合に送信をブロック 1:ON / 0:OFF $conf{'spam_url_block'} = 0;
また80行目あたりから始まる「高度な設定」でも、検査を無効にします。
#01.リファラーによるスパムチェック 1:ON / 0:OFF $conf{'domain_check'} = 0; # (中略) #02.HTML側での設定を無効化(タダ乗り対策) 1:ON / 0:OFF $conf{'html_vals_disabled'} = 0; #03.全てが英文の送信を拒否 1:ON / 0:OFF $conf{'language_check'} = 0;
送信先のアドレスはテスト用のものを使いますが、本番では変更が必要です。
#06.設置者のアドレス(カンマ区切り) $conf{'mailto'} = 'toumin.m7@gmail.com';
これで完了です。
メールフォームに付属している「example.html
」がXAMPPでも動作するはずです。