WordPress 2.7 のメール投稿機能を使う
WordPress 2.7 にはメール投稿機能がついています。意外と知られていないようですが、ダッシュボードから「設定」-「投稿設定」を開き、下の方へスクロールすると「メールでの投稿」という欄があります。ここにメールサーバ名とユーザ名、パスワードを指定すれば良さそうです。
しかし、これを設定しただけではメールを送っても全く投稿されませんでした。PCからでも、携帯からでもどちらも動作しません。最初は cron か何かで定期的にメールボックスをチェックしてくれるのかと思ったのですが、そうではありませんでした。
実はメール送信後に、 http://(WordPress の URL)/wp-mail.php というファイルに、毎回アクセスする必要があります。この URL を叩くと PHP のスクリプトが作動して、メールボックスにアクセスしてくれるのです。
ここで気になったのは、wp-mail.php にアクセスしたときに投稿したメールアドレスやタイトル(文字化けしていますが)が表示されてしまうことです。しかも、WordPress へのログインの有無に関係ありません。
不用意にメールを送りっぱなしにしたまま放置していると、第三者にメールアドレスを知られてしまう可能性があります。
また、このファイルに集中アクセスされることにより、メールサーバに負荷をかけられる攻撃を受ける可能性があります。
そこで、この wp-mail.php ファイルはリネームして、推測できない別の名前にしておいた方が良いでしょう。メール投稿を使わない場合は、削除しておいた方がよりよいです。
ところで、このメール投稿機能でメールのタイトルに日本語を使うと文字化けしてしまいます。これはリネームした wp-mail.php の 146 行目を直接変更します。
$subject = trim($subject); $subject = mb_convert_encoding(mb_decode_mimeheader($subject), "utf-8"); //←追加
続いて、本文の文字化けも修正します。同じく 158 行目に追加します。
$content = trim($content); $content = mb_convert_encoding($content, "UTF-8" , "auto"); //←追加
これでメール投稿機能で日本語でも正常に使えるようになりました。
参考になりました、ありがとうございます!
> $subject = mb_convert_encoding(mb_decode_mimeheader($subject), “utf-8”); //←追加
の行に、全角の空白が含まれていてエラーになってしまい、ちょっぴり悩みました(^_^;)
これで気軽にメールで投稿できそうです。ありがとうございますっ(^-^)
コメント by shun55 — 2010-02-3 05:53