wp-shot で、定期チェックに使っている Pseudo-cron.php が WP 2.7 で正常に動作しないと言う報告があったので、wp-shot を wp-cron 対応にしたのですが、他にも色々手を加えたので、JSeries で公開することにしました。
wp-cron 対応にしたため WordPress 2.1 以降にのみ対応になってしまいましたが、WordPress 2.0.x では Pseudo-cron.php が正常に動作しているようなので、ヨシとしてください。
今回、手を入れたモノをそのまま眠らせておくのも、もったいないので JSeries リリースしましたが、元々の作者では無いため、細かい仕様や不具合を完全には把握して居ません。
PHP5 が利用できる環境の場合は、wp-shot の実質的な後継プラグイン「Ktai Entry」への移行をオススメします。
今回の仕様変更は以下のとおり。
- wp-cron 対応 (これにより WordPress 2.1 以降が必須要件になります)
- メディアライブラリ対応
- 添付画像の回転保存対応
- wp-content/plugins//wp-shot/wp-shot.php を直接叩いてもメール取得スクリプトが動作しないように修正
- norida さんが提起されている「wp-mail 問題」への対応
- WordPress 管理画面での各種設定値の一括削除
ダウンロードは、以下からお願いします。
WordPress Plugins/JSeries » wp-shot (メール投稿プラグイン)
1/5 14:18 追記
コメント欄で Yuriko さんに指摘された不具合のうち、「(3)$part->ctype_parameters['name'] を alt 属性に使うときは attribute_escape() をかけないと危険です。」のみ対応したものと入れ替えておきました。
他は仕様として放置する予定です。
ゆりこさん、どもです。
こちらこそ、ご指摘感謝です。
実は、本日はノロウィルスの影響で一日伸びたお正月休みだったので、出きる所だけやっておきました。
リリース自体も、もうちょっと速い時期にやりたかったんですが、年末年始やらノロウィルスやらで、今日までずれ込んでしまいました 😳
すばやい対応ありがとうございます。
まあ、投稿を許可された人のみが攻略できるので、危険度は低いと思います。しかし、投稿を許可するアドレス/投稿先アドレスがバレたとき、危険なコンテンツを入れ込まれてしまう可能性があるでしょうか。
ゆりこさん、どもです。
最初にエントリした時に JSeries へのリンクを書き忘れてました 😳
ご指摘いただいた件は、早急に対応したほうが良さそうですね。
# 特に(3)は危険ですね。
ファイル名に rand() を使用しているのは気づいていたんですが、放置しておきました。
前作者の意向を尊重しようと思いまして。
リリースお疲れさまです。今ごろになって気がついた点があるので報告いたします。
(1) このエントリーに http://wppluginsj.sourceforge.jp/wp-shot/ へのリンクがあった方が親切だと思います。現状では配布サイトのありかが不明です。
(2) shot-ja.po/mo に未使用の msgid/msgstr が多数あります。
以下はもとの wp-shot から存在した問題点です。
(3) $part->ctype_parameters[‘name’] を alt 属性に使うときは attribute_escape() をかけないと危険です。
(4) Mail_mimeDecode ですが、$decode_header は false にしておいて、後でデコードさせた方がよいです。そうしないと、From, To にエンコードした文字列があったとき、メールアドレスの抽出に失敗することがあります (Ktai Entry の ver 0.8.3 で修正)。
(5) _yn_rfc2822_mail_address() 関数は少しバグがあって、コメントの入れ子に対応していません。Ktai Entry の同関数は修正ずみなので、それと差し替えるとよいです。
(6) 画像のファイル名を rand() で決めていますが、重複チェックしてないので、まれに上書きする可能性があります。個人的には、ファイル名はできるだけそのままにするか、post_id (と追番) を使う方がユーザーフレンドリーだと思います (ランダムにすると、画像の差し替えが必要になったときに困ります)。
この前メールで書きましたが、本気で改良しようとすると、ほぼ作り直しになってしまうんですよね……。最低限 (3) は直した方がいいと思いますが、(4)〜(6) は仕様として放置しても仕方ないと思います。