概要
NTT-MEのインターネットプロバイダ「WAKWAK」の個人ホームページに、問い合わせフォームを設置しました。Web閲覧者が問い合わせフォームに入力すると、あらかじめ指定しておいたメールアドレスへ入力内容がメールで届きます。問い合わせフォームのCGIは、www.kent-web.comさんのPOST-MAILを利用させて頂きました。
WAKWAKへのCGI設置
WAKWAKにCGIを設置する場合、CGIを呼び出すフォームのhtmlファイルは/public_html配下に設置し、CGIは/cgi-bin配下に設置するのがWAKWAKの流儀です。そこで、postmail.zipを解凍して出来るディレクトリ構造のうち、postmail配下のindex.htmlとstyle.cssのみを/public_htmlへ設置し、他は/cgi-binへ設置します。
/public_html
index.htmlとstyle.cssを設置。index.htmlのファイル名は適宜変更します。(そのまま変更しなくても構いません)
/cgi-bin
index.htmlやstyle.css「以外」のファイルやディレクトリを設置。ディレクトリはディレクトリ構造を壊さず、そのまま/cgi-bin配下へ設置します。
注意点
注意点は次の通りです。
- ファイルの改行コードはLFとします。LFになっていないと、CGIエラーになリます。
- init.cgiを修正する際、$sendmailはデフォルトのまま(/usr/lib/sendmail)でOKです。また、閲覧者が第三者のメールアドレスを入力した場合にその第三者への迷惑メールとならないよう、$cf{auto_res}は0に設定した方が良いです。
- ファイルをWebサーバへアップロードする際は、asciiモードでftp転送します。
- Webサーバにアップロードしたファイルやディレクトリのパーミッションは、セキュリティを考慮して、下記のように設定します。KENT-WEBさんのPOST-MAILのWebサイトに記載されているパーミッションとは異なるのですが、トライ&エラーの結果、WAKWAKの場合は下記の設定が良さそうでした。
Gmailアドレスをメール送信先とする場合の個別課題
POST-MAILでは、init.cgiで設定したメール送信先($cf{mailto})へメール送信します。この時、メールのfrom行には閲覧者がフォーム入力したメールアドレスが設定されます。そのため、メール送信先をGmailのメールアドレスとした場合、閲覧者が入力したメールアドレスによってはGmailがメール受信を拒否することがあります。これは、Gmailがセキュリティ上、SPFもしくはDKIMで認証した送り主からしかメール受信しないためです。詳細は下記のgoogle記事をご覧ください。
https://support.google.com/mail/answer/81126#authentication
この現象を防ぐためには、postmail.cgiの342行目辺りを修正し、from行をSPFもしくはDKIM認証されたメールアドレスに固定します。