コンタクトスパムって聞いたことがありますか? なに?聞いたことがない!w まぁ、私が言い出したんですけどね。
結構ウザいですよ、ポロポロ届くと・・・。そんな時、kohakuさんがいいプラグインを教えてくださいました。
>WP Plugin: PXSMail with Akismet
コンタクトフォーム(メールフォーム)を簡単に設置できるプラグインです。PXSMail Pluginを基にAkismetをくぐらせるように改造したものらしいのですが、スパム封じに定評があるAkismetを利用するのですから期待は膨らみます。
導入方法
1. ファイルを解凍して、pxsmail.phpとpxsmail-ja_*.moの2つをwp-content/pluginsへアップロード。
2. PXS Mail Form,modified for Akismetを有効化する。
3. メールフォーム用に新規ページを作成し、本文中に {mailform}(すべて半角で) と書き込む。
4. 設定 » PXS-Mailで各設定を行なう。
必須項目を記入しないで送信すると外枠が赤色になって警告してくれます。試しにめちゃなアドレスで送信すると「てめー、スパムだな」と怒られました。w
設置例です。
【出くわした問題点】
Warning: session_start() [function.session-start]: open(/tmp/sess_ee****e****c****bea0af*c*cad2, O_RDWR) failed: Permission denied (13)
in /virtual/...../wp-content/plugins/pxsmail.php on line 1
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /virtual/...../wp-content/plugins/pxsmail.php:1)
in /virtual/...../wp-content/plugins/pxsmail.php on line 1
エラーがずらずら出た。pxsmail.phpの1行目 <?php session_start(); が原因みたい。とりあえず、<?php に修正。
サーバによってはメールが送れなくなるようで・・・。orz
セキュリティとの関係でIImage-Browserにエラーが出るのか? 只今、師匠に問い合わせ中です。
以下師匠のメールから引用です。
完全にソース読めてないのですが分かること書きます。
・ご指摘の session_start ですが、WP 中で一回しか使えません。2回目使うとエラーになります。
・session_start を外すとスパム判定されうまく投稿できません。
・しかし、どっかのプラグインに書いてあるときっとうまく動きます。(この場合 Image Browser でしょうか)
基本的に session_start はプラグインで書くたぐいのものではないのでまずはハズすでOKです。 ただし、session_start がどこにもない状態でこのプラグインを動かすと投稿時にハジく仕組みになっています。(Akismet 以外にもスパム対策をいろいろしている)
スパムは Akismet とーせばおそらく大丈夫ということで、この session 使ったスパム対策をいっさいがっさいこのプラグインからはずしてしまえば、おそらくみんな幸せになります。
# でもちょっと弱くなります。
1. 先頭行の session_start を削除
2. 90行目からの以下の if を削除
3. 187行目削除
4. 194行目削除
5. 241行目からの if 削除
6. 260行目削除
すいません、そらで書いているので間違っているかもしれませんがやってみてください。 nao さんの事象とちょっと話が合わないのですが、おそらくは session の不具合なので、これで直るような気もします。
お忙しいところありがとうございました、ひろまささん。
私の環境でこの処置をするとメール送信できませんでしたので、段階を踏んで対処された方がよいかと思います。
参照: CXLVII. セッション処理関数(session)
件名文字化けの件は最初から悩んでました。G-mailとかはバケず、OEなんかではバケる。いろいろとやっても直らなかったので(化けるのは件名だけなので・・)放置していたのです。
今日成功したのでメモ。
46行目あたり、function pxs_callback( $content )
こう変更。
一応、バケませんでした。
PXSMail with Akismet 日本語版をためさせていただいてます。しかしうまいことメールが送れません。エラーは
Fatal error: Call to undefined function: akismet_http_post() in /home/httpd/vhosts/t-sports.jp/httpdocs/wp-content/plugins/pxsmail.php on line 167
と出ます。 :arrow:
一応、sessionもはずして試しましたがエラー出力をしなくなったのですがメールは送れていません。お忙しい中申し訳ないですが助言を頂けないでしょうか?
wordpressのバージョンはWordPress ME2.0.10です。
はじめまして、chinpanさん。
pxsmail.php on line 167ということは、akismet関連みたいですね。もちろん、akismetは有効化されているとは思いますが、そのあたりの確認をされてはいかがでしょうか?
もし外していた場合は、ボクの手に負えない気がします。orz
そうですか・・・(^^;akismetの有効化はしてあるんですけどね∼ :arrow:
違うメールフォームで試してみます。忙しい中、ありがとうございました
フォームが英語のままになっているのですが日本語にするにはどのようにすればよいのでしょうか?
pxsmailとpxsmail-ja_UTFをプラグインに入れています。
サーバー:xrea
PHPバージョン:5
何卒宜しくお願いします
はじめまして、makoさん。
フォームだけが英語のままなんでしょうか? 管理画面もじゃないですか?
こちらの私のコメントのことを確認ください。もし、’ja’であれば、ja.moとリネームしてください。
それ以外でしたら、ちょっとわからないです。
# コンタクトフォームなら、Contact Form 7をお勧めしますよ。
# WPのバージョンも明記した方がいいですよ。
日本語化できました。
初めてWordPress使うので色々戸惑うばかりです。
有難う御座いました。