postfixのrpmをビルドし直したのでaptを使っている時に勝手にアップデートされると困るのでpostfixのみ保留するようにしてみたい。と、aptの設定と動作確認をしてしているのだが、どうもうまくいかない。
wordpress、メールからの投稿
自分のブログをwordpressに移行したついでに、娘のサイトもwordpressに移行した。
(余計なお世話か?)
こちらはメールで投稿できるようにしてみたが、ちょっと手間取ってしまった。
ヘッダの文字化け
予想通りヘッダが化ける。
ヘッダをutf-8にエンコードするため、次の修正をおなった。
wp-mail.php $subject = trim(str_replace(get_option('subjectprefix'), '', $subject)); ↓ $subject = mb_convert_encoding(mb_decode_mimeheader($subject), "utf-8");
ついでに、wp-mail.phpにいろんな人がどんどんアクセスしてもらっても困るので、他の名前に変更した。
本文が表示されない
これは手間取ってしまった。
タイトルは投稿されているのだが、どうしても本文が登録できない。
携帯からだけでなく、PCのメールソフトからの投稿してもだめ。
で、メールのフォーマットを見ていくと..
subject: test Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit 本文
となっていた。
どうやら、ヘッダと本文の間に空行がはいっており、そこで処理が終了するようだ。
空行を読み飛ばさなくちゃ。
wp-mail.phpを修正してもよいのだろうか?という疑問がでてネットで調べてみた結果、パッチを紹介しているサイトを発見。
どうやらclass-pop3.phpを修正するのがよさそうだ。
if (preg_match("/^\s+/", $line) && $count > 0) { ↓ if (preg_match("/^\s+\S+/", $line) && $count > 0) {
本文も文字化け
やっと本文も投稿されるようになった..文字が化けたまま..
これは、wp-mail.phpにエンコードを追加。
$content = mb_convert_encoding($content, “UTF-8″, “auto");
これで、メールからの投稿が可能となった。
後はcronで定期的にwgetコマンドでwp-mail.phpのurlを取得するように設定して本日の作業は終了。