PAGE TOP

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を取得するように設定して本日の作業は終了。



趣味の部屋 スマホ/タブレットサイト 趣味の部屋 PCサイト