すたらブログ

文系Webプログラマの備忘録

XAMPPで「SYNCKGRAPHICA Mailform」を動作させる

(最終更新: 2016-10-13)

目次


要望

メールフォームの動作確認をローカルで行いたい。


環境


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ははじめから入っているようです。


Perlsendmailへのパスを本番と同じにする

このメールフォームではPerlsendmailを下記の場所に求めています。

リモートのさくらサーバはこれと同じなので問題ないのですが、ローカルの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でも動作するはずです。