Yuriko.Net 個別記事
2008-05-07

Ktai Entry 0.8.1-beta1 (テスト版)
WordPress メール投稿プラグイン「Ktai Entry」の次期ベータ版(というか)テスト版を配布します。これは、「画像つきメールを送信すると、画像がメディアライブラリに登録されるものの、投稿本文にはテキストしか入っていない」という問題を解明するためのバージョンです。テスト版なので以下のような対応となっています。
- (APOP ではなく) POP の場合、メールボックスに新着メールがないとき Bad Gateway (== POP 設定不良) として処理していた問題を改善しました。
- 0.7.1 → 0.8.0 で省略してしまった処理を復活して様子を見る。
- ログを強化。デフォルトでログ機能が有効です。
不具合が発生している方は、ぜひ試用頂いて、確認を願います。不具合が発生していない場合は、通常の 0.8.1 リリースまでお待ちください。(通常の 0.8.1 ではログ機能がオフになるだけの予定ですが
[追記] 環境によっては、「画像が出ない」問題がまだ発生するようです。さらなる対処版を CVS に上げましたので、上記アーカイブから post.php だけ差し替えると、使うことができます。
[さらに追記] 1.00 までは「ベータ版」なので、ベータ版のベータ版となり、意味不明なので「テスト版」という名称にしてみました。

上に戻る
[...] Ktai Entry 0.8.1 ベータ1 [...]
0.8.0でタイトルが文字化けするという報告がありましたが、私の環境でも再現しました。
携帯の機種はau W61Sです。
post.phpの265行目、変換元コードでautoを指定している箇所を、ISO-2022-JPに変更したら化けなくなりました。
他のプラグインでも結構文字化けすることがあり、同様の対処で修正してきました。
サーバーはさくらインターネットなのですが、そのあたりの問題な気がします。
ともあれ、とても便利なプラグインを公開して下さってありがとうございます。
うーん、その対策だと別の文字化けが起きそうなんですよね。現時点では可能性が低いですが、Shift_JIS でエンコードされたとか、そういう場合に問題が起きます。
厳密に解決するには、MIME エンコード状態で記述されている文字コード (Subject: =?ISO-2022-JP?B?… となっている部分) を読み取って、それを変換元コードとする必要があります。ところが、Ktai Entry が使っている mimeDecoder では、デコード後の文字列だけ返ってきて、文字コードが得られません。このためやむなく auto としています。auto の場合、短い文字列だと判定に失敗することがあるのは仕方ないことです。
ISO-2022-JP 決め打ちにするのは対策としてはいまいちなので、上記のような厳密な方法を検討してみます。
お世話になります
現行バージョン,入れてみて,Cronを切った上で
通常モードで投稿できるか,試してみました
結果はやはりNGです
retrieve.php 82〜90行目あたりに1ステップずつ,追跡コードを入れて,見たところ
85行目 get()に入るか入らないかのところで,
__constructメソッド(っていうか,コンストラクタ)から抜けてる感じです
やはり,メモリ不足の可能性,ありますかねぇ...
Cronモードでは,問題なく投稿できています
サーバは,さくら
PHPへの割り当てメモリは,8メガ(らしい)とのことです
WordPress 2.5 からは、強制的に PHP メモリを 32MB に増量するのですが、その命令がさくらで有効化どうかは気になりますね。
通常モードは、定期的に retrieve.php を読み出しますが、GET メソッドを送って後は知らんといういい加減実装なので、まじめに
fread()で読み出してみますか……。[追記] 試しに
fread()で結果を受け取るコードを追加してみましたが、そうすると、POP3 読み出し完了までウェブログ画面が出ないことになります。それなら非同期処理にならないので、あまり意味がないですね。といって、GET を送っただけだと、サーバー側が「接続を切った」と判断して処理が中断することがありそうです (くまさんとこの現象??)。となると、init フックをトリガーにするのじゃなくて、wp-shot みたいに img 要素を入れてトリガーにすることも検討しなくてはなりませんね。これも、メール読み出しに時間がかかると問題が出そうです。
お世話になります
ググって見たら,WP2.5から,WP内でメモリ増量をやってたんですね(汗
さくらだと,PHP.iniにmemory_limitが書けるっぽいので,明日にでも
64MBぐらいまで増やしてみて,テストしてみます
今宵は,ちょいと眠たくなりました(笑
さらにテストしての追加情報ですが
先ほど,切れる場所,get()でと書きましたが
login()からget()までのどこか,不定で,抜けてるっぽい動きをしています
以上,よろしくお願いいたします