メールからの投稿

メールアカウントの準備

メールで投稿を行う場合、指定したメールアドレスに届いたメールが全て投稿されることになる。
スパムメールが届かないようわかりにくいアカウント名としたり、アドレスを公開しないように留意する。

投稿メールアドレスの設定

WordPressの管理画面の[各種設定][投稿設定]のページでメールアドレス類を設定する。

文字化けへの対処

WordPress ME 2.2.3では日本語のメールヘッダ、本文はともに文字化けするので、wp-mail.phpを修正する。

$subject = trim(str_replace(get_option('subjectprefix'), '', $subject));
↓変更
$subject = mb_convert_encoding(mb_decode_mimeheader($subject), "utf-8");

$content = trim($content);
 の次の行に以下を追加
$content = mb_convert_encoding($content, “UTF-8″, “auto");

本文が投稿されないことへの対処

WordPress ME 2.2.3ではメールヘッダとメール本文の間に空行があると本文が投稿されないため、class-pop3.phpを修正する。

if (preg_match("/^\s+/", $line) && $count > 0) {  
↓変更
if (preg_match("/^\s+\S+/", $line) && $count > 0) {

wp-mail.phpのリネーム

メールで投稿された記事はwp-mail.phpにアクセスした時点で取り込まれることになる。
..つまり、誰かがこのページにアクセスした時点で取り込まれることになる。
そこで、wp-mail.phpを任意の名前に変更し、自分で制御できるようにしておく。

投稿の反映

投稿後にwp-mail.php(リネームしたもの)にアクセスしてもよいが、携帯メールからだとメール後にアクセスするのは面倒である。
cronを使用して定期的にこのページにアクセスして更新を自動化する方がよいだろう。

  • 次の内容のシェルを作る。
    wget -O /dev/null  http://〜URL〜/wp-mail.php (リネームしたもの)
  • 作成したシェルをcronに登録する。

Last-modified: 2009-11-25 (水) 10:24:26 (247d)