yahooジオシティーズにメールフォームを設置する方法
yahooジオシティーズに、問い合わせフォームを設置して欲しいという案件。
初めて使うサーバーだったのですが、噂以上にクセモノだった。
とりあえず、大まかな流れと、つまずいた点だけ記載しておきます。
今回使用したのは、『メールフォームCGI』
利用規約にほとんど制限も無く、商用可能なフリーCGIです。
ダウンロードしたファイルを展開して、
mailform/send.cgi をテキストエディタで開く。
デバッグモードオフ : $conf{‘debug’} = 0;
完了ページ : $conf{‘thanks’} = ‘http://www.xxx/thanks.html’; (自分で作成)
送信元メールアドレス : $conf{‘mailto’} = ‘info@xxx.com’;
上記を変更したら、ftpでサーバーにアップロード。
※パーミッションは、ジオシティーズの場合、自動的に適した値に変更される。
example.html にアクセスして、必要項目を入力したら、送信。
とまぁ、普通のサーバーなら、これで動くんだけど、
ここから、色々と苦労させられましたよ・・・
「このページは準備中です」と表示される場合
まずは、CGI使用の許可を行う必要があります。
CGI使用環境の設定にアクセスして、ページ下の方にある[CGIの使用を開始]をクリックします。
設定済みの場合は、「CGIの有効設定は、完了しています。」と表示されます。
次に、[ドメインのコントロールパネル] を開きます。
設定を押す。
[サブドメイン設定] - [ジオシティーズCGI]- [変更]
サブドメインは関係ないじゃんと思うかもしれませんが、ジオシティーズの場合、
CGIを動かすには、http://www.xxx.com/mailform/check.cgi とアドレスを入力しても動かず、
準備中と表示されてしまいます。
正常に動かすには、http://cgi.xxx.com/mailform/check.cgi とアクセスするように
初期設定ではなっています。
「cgi」と入力して、確認を押して完了。
おそらく、cgiじゃなくてもいいと思います。
http://cgi.xxx.com/mailform/check.cgi にアクセスしてみてください。
うまく表示されましたでしょうか?
パーミッションが違うとか、sendmailのパスが違うとかの表記は気にしないで下さい。
今度は、http://cgi.xxx.com/example.html にアクセスして、必要項目を入力したら、送信。
今度はうまく送信されたはずです。
さて、メールが届きましたか?
届かないんですよ ・・・これがまた。
メールが届かない場合
下の記事が参考になると思います。
yahooメールをわざわざ登録して、許可してあげないといけないみたいです。
sendmailで送信するアドレスとyahooメールがリンクされてるんですね。
これで、ようやく動かすことが出来ました。
いよいよ、サーバに問い合わせのページをアップ!
すると、またまた問題が発生。
ページのフッター(下部)にスペース?余白?が挿入される
アップした問い合わせページを見てみると、デザインが崩れてます。
なんと、ページ下部に勝手にアクセス解析のコードが挿入されてるではありませんか?
しかも、こちら側で削除することは出来ないそうな。
おかげで、ポツンと変な空白が・・・
どうにかして消す方法はないかと思い調べてみると、
<body>
<div>
ページ内容
</div>
</body>
として、
<style><!–
img {display:none;}
div.visible img {display:inline;}
–></style>
と、</body>と</html>の間に、上記のコードを記載すると消せる
と書いてあったのでやってみたら、他の画像も消えたー。
結局、htmlに背景色を付けてごまかしましたが、なんでしょう。
</html>外にコードを付け足すなんて考えられません。
とりえあずはうまくいきましたが、設定が反映されるまでに3時間かかるとかだったり、
散々な一日となってしまいました。