OpenPNE3はOpenPNE2とはフレームワークが違うので、ネット上にいっぱいある2.x系で培われた手法がそのまま利用出来ない場面がほとんどです。携帯からのメールで日記を更新したりする機能についても然り。一応、同梱されているドキュメントには設定方法が書かれているのですが、実際の所、アレで設定を完了させるのは難しいという人も多いのではないでしょうか。
というわけで、OpenPNE3で、携帯からのメールでの投稿を有効にする方法のメモ。
ドキュメントが簡素すぎて逆に難しそうな印象を受けますが、設定自体はOpenPNE2系よりも簡単になっています。
手順
以下の手順は基本的にCentOSのものです。他のディストリビューションではちょっとやり方が違うかもしれませんが、ご了承下さい。
25番ポートを開ける
メールを受信するために25番ポートを開けます。「内部からメールすると届くのに、外部からのメールは届かない」と言う場合、原因は大抵コレです。Gmailをメールサーバとして使っている人はサーバの25番ポートを開けていないことが多いと思うので、一度確認しておいてください。
というわけで、iptablesの設定ファイル「/etc/sysconfig/iptables」を開いて25番ポートを開けます。設定ファイルに以下を追加します。追加する場所はどこでも良いと思いますが、SSHのポートを設定している行の後とかが分かりやすいかも?
# Allows postfix to accept incoming connections
-A INPUT -p tcp --dport 25 -j ACCEPT
保存したら、iptablesを再起動します。
service iptables restart
postfixのvirtualドメインを設定
「/etc/postfix/virtual」を編集します。これはドキュメントにも出ていますね。追記する場所は、ファイルの最初でも最後でもどちらでも良いと思います。「example.com」の部分は設定しようとしているドメインに変えて下さい。
example.com anything
@example.com openpne_user
追記したら、以下のコマンドを実行してvirtual.dbを更新します。コレはドキュメントにはありません。。(当たり前すぎて書くに値しない?)
postmap /etc/postfix/virtual
aliasesを設定
「/etc/aliases」を編集します。これはドキュメントに載っている通りです。「/path/to/openpne」となっている部分は、OpenPNEを設置しているディレクトリのパスに置き換えます。
openpne_user "| php /path/to/openpne/symfony openpne:execute-mail-action"
保存したら、以下のコマンドを実行してaliases.dbを更新します。当たり前すぎるためか、ドキュメントには書いてありません。
newaliases
postfixの設定
/etc/postfix/main.cfを編集して、virtualドメインの設定をします。設定ファイルの最後の方にでも以下の記述を追記してください。既に同様の設定がある場合は、特に編集する必要はありません。
# VIRTUAL DOMAIN
virtual_alias_maps = hash:/etc/postfix/virtual
設定を変更したらpostfixを再起動します。(restartじゃなくてreloadでもいいのかも?)
service postfix restart
以上で設定は完了です。これで携帯からのメールで投稿が出来るようになっているはず!
出来ない場合は、postfixの設定に原因がある場合が多いと思うので、/var/log/maillogあたりを確認してみてください。
このように作業自体はOpenPNE2に比べるとかなり簡単になったのですが、ドキュメントが相変わらず素っ気ないので、設定の難易度は高めな気がします。。