techrmc’s blog

ICT大好きな中小企業診断士のブログです

WAKWAKホームページへの問い合わせフォーム(POST-MAIL CGI)設置

概要

NTT-MEのインターネットプロバイダ「WAKWAK」の個人ホームページに、問い合わせフォームを設置しました。Web閲覧者が問い合わせフォームに入力すると、あらかじめ指定しておいたメールアドレスへ入力内容がメールで届きます。問い合わせフォームのCGIは、www.kent-web.comさんのPOST-MAILを利用させて頂きました。

www.kent-web.com

WAKWAKへのCGI設置

WAKWAKCGIを設置する場合、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配下へ設置します。

注意点

注意点は次の通りです。

  1. ファイルの改行コードはLFとします。LFになっていないと、CGIエラーになリます。
  2. init.cgiを修正する際、$sendmailはデフォルトのまま(/usr/lib/sendmail)でOKです。また、閲覧者が第三者のメールアドレスを入力した場合にその第三者への迷惑メールとならないよう、$cf{auto_res}は0に設定した方が良いです。
  3. ファイルをWebサーバへアップロードする際は、asciiモードでftp転送します。
  4. Webサーバにアップロードしたファイルやディレクトリのパーミッションは、セキュリティを考慮して、下記のように設定します。KENT-WEBさんのPOST-MAILのWebサイトに記載されているパーミッションとは異なるのですが、トライ&エラーの結果、WAKWAKの場合は下記の設定が良さそうでした。
    • /public_html配下のhtmlファイルとcssファイルは644
    • /cgi-bin直下のpostmail.cgiとcheck.cgiは755
    • /cgi-bin配下のディレクトリはサブディレクトリを含めて700
    • /cgi-bin配下の他のファイルは(拡張子が.cgiや.pmのファイルを含めて)600

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認証されたメールアドレスに固定します。

SPF or DKIMSPF or DKIM