携帯からPlaggerしてみる

さくらのメールはmaildropというの使ってるらしいんですが、
そいつにはメールの着信をトリガーにして自作のスクリプトを動かせる機能があるようです。
参考:さくらのレンタルサーバ非公式FAQ
ということは携帯からconfig.yamlのメール送ってPlagger起動できるんじゃね?
と思ったのでさっそくやってみました。


まずはコンパネからメールアドレスをひとつ作成。
すると/home/username/Mailbox/にそのアドレスのディレクトリが作られます。
plagger@username.sakura.ne.jpなら/home/username/Mailbox/plagger/な感じです。


その中に.mailfilterというファイルがあるので、
こいつに設定を書き込みます。

PERL5LIB="/home/username/local/lib/perl5:/home/username/local/lib/perl5/site_perl"
cc "| /home/username/plagger/plagger.pl"
exit

シェルから呼び出すわけではないのでPERL5LIBのパスを通しておくのを忘れずに。
CPANのインストール先に従って適宜変更してください。
2行目で自作スクリプトを起動させます。
ccだとメールボックスに届いたメールを残す、toなら残さない、という設定になるようです。


きちんと書き換えたら、おもむろに

%chmod 600 .mailfilter

をします。これをやらないと動かない模様。


最後にPlagger起動スクリプト
メールの中身はから取り出します。

#!/usr/bin/perl
use strict;
use warnings;

use Plagger;

my $mail = '';

{
    local $/ = undef;
    $mail = <STDIN>;
    $mail =~ s/^.+?global:/global:/sm;
}

Plagger->bootstrap(config => \$mail);

正規表現はちょっと適当。。。ヘッダ部分を削除してます。


あとは携帯からyaml書いて、作ったメールアドレスに送信!

global:
  timezone: Asia/Tokyo
  log:
    level: info
  assets_path: /home/username/local/lib/perl5/Plagger/assets
plugins:
  - module: Subscription::Config
    config:
      feed:
        - http://d.hatena.ne.jp/taraburo/rss
  - module: Publish::Gmail
    config:
      mailto: example@gmail.com
      mailfrom: example@gmail.com
      mailroute:
        via: smtp_tls
        host: smtp.gmail.com:587
      username: example@gmail.com
      password: password

こんな感じでメールを送ると、着信と同時にPlaggerを実行してくれます。


まあセキュリティ的にどうなのかちょっとわからないんですが
こんなこともできますよ、ということで。