ログイン

04
6月

WordPressへメールから投稿する

Written by チキチキ. WordPressへメールから投稿する はコメントを受け付けていません Posted in: WordPress
Tagged with
Posted Date : 2011-06-04

wordpressのメール投稿機能を使って、
メールから記事を投稿する事が出来ます。

この記事はメールから投稿してみました。
wordpressの「管理画面」→「投稿設定」の「メールでの投稿」に
必要事項を設定するだけです。
メールをポストするメールアドレスは、
自宅サーバーのメールアドレスに設定してますので、
gmailを使う場合と同じ様にpop3sを使って読み出します。
ポイントは、メールサーバーの設定で、

メールサーバー : ssl://pop.gmail.com
ポート番号 : 995

を設定する事ですね。
しかし、これだけでは投稿されません。
ブラウザから「wp-mail.php」を実行しないとメールは読みません。
色々ググって解った事は、
・wp-mail.phpはリネームして使うべし!
・cronで定期的にwp-mail.phpを実行すれば良い
・メール送信者とwordpressユーザーのメアドが一致しないとレビュー待ちになる

ここから先は、メール投稿ではなく再編集しました。

◯wp-mail.phpをリネームする
wp-mail.phpは名前が知れ渡っているので、いたずらされる可能性が大きいので、
適当に推測し難い名称にリネームします。
wp-mail.phpのソースの中に再帰的に呼び出している所が有るので修正します。
/** Allow a plugin to do a complete takeover of Post by Email **/
do_action(‘wp-mail.php‘); ←この部分


◯cronで定期的にwp-mail.phpを実行する

先にも書きましたが、メールで投函しただけでは読み出してくれず、
ブラウザからwp-mail.phpを実行しなければなりません。
いちいち面倒くさいので、cronで定期的に実行させる事にしました。
自宅サーバーなので誰も迷惑は掛からないので、監視間隔を1分にして
定期実行させますまが、wp-mail.phpの中にガードタイムが有ります。
デフォルトは5分ですが30秒に縮めて、cronで1分で回します。

・実行スクリプトを作って実行権限744を与えておく
<スクリプトの中身>
#!/bin/sh
#PHP
/usr/bin/php /var/www/wordpress/wp-mail.php ← 当然先にリネームした名前

・wp-mail.phpのガードタイムを変更する
/** Only check at this interval for new messages. */
if ( !defined('WP_MAIL_INTERVAL') )
define('WP_MAIL_INTERVAL',300); ← ここの値を変更する // 5 minutes

◯投稿ユーザーとメール作成者のアドレスを一致させる
メールを作成したユーザーのメールアドレスとwordpress登録ユーザーの
メールアドレスが一致しないとレビュー待ちとなってしまいます。
注)「設定」→「一般」のメールアドレスではなく「ユーザー」のメールアドレスです。

Similar Posts:

Protected Image