2005年3月27日

メールフォーム設置

いままではそのままメールアドレスをサイドメニューにのせていたんですが、スパムが多くて大弱り。
迷惑メール撲滅」を参考に、送信元のネット業者やメールに書いてあるサイトのネット業者に対処依頼メールをまめに送っていましたが、へりゃーしない。
メールアドレスを公開せずにメールフォームを設置すれば、無条件に送られてくることはなくなるだろうと思い、メールフォームを設置してみました。

MTのコメント機能を流用してもできそうなのですが(コメントをメール送信する機能をオンにして、コメントを表示する部分を削除するぐらいで)、今回はCGIをつかってみました。そんな気分でした。

参考にしたのは、Play with Weblog! の「メールフォーム修正」の記事。
ほとんどこのまま。あちらではサイドメニューに表示させていますが、うちではメインに表示。

メインに表示させるやり方は、MovableTypeを攻略せよ! の「サイトマップやプロフィールの別ページを作成」の記事です。
テンプレートの新規作成で、目的のページをつくるのが秀逸。うちんとこのプロフィールもこのやり方でつくりなおしました。(旧式HINAGANAだとテンプレートの中身をカテゴリー丸写しにするとエラーがでるのでMainIndexを丸写ししました)。
プロフィールでは、プロフィール用のカテゴリーのエントリを表示させるやり方ですが、今回メールフォームをつくるにあたってはじか書きにしてしまいました。

ひっかかったのは、送信完了や送信エラーのページの指定(これもテンプレートの新規作成のやり方でつくりました)。
なぜだか指定がきかない。どうやら、用意した定義ファイルを読みにいっていないらしい…。

てこずったすえの解決方法は、

<form method="post" action="CGIのURL">
<INPUT type="hidden" name="_form_name" value="mailform">
<INPUT type="hidden" name="_form_url" value="<$MTBlogRel
ativeURL$>">

名まえ:<br>
<INPUT type="text" name="name" size="36"><br>

「フォームIDの指定」と「フォームのある場所(URL)の指定」です。
フォームIDは指定しないとデフォルトの定義ファイル(default.conf)を読みにいくので、個別に定義ファイルを用意した場合はこの指定は必須でした。
フォームのURLの指定は必須ではありませんでしたが、自分の環境ではこれを指定しないと用意した定義ファイルを読みにいってくれませんでした。

まだエラーでるかもしれないけども、これでとりあえず設置完了です。

コメントする