2011年01月25日に投稿

[Movable Type]エントリーが保存されたら指定のメールアドレスにメールを送信するサンプルプラグイン

ブログ記事が保存された予め指定したメールアドレスにメールが送信されるプラグインです。プラグインの動作確認用のサンプルコードのため、実用性は皆無ですがプラグインの動作の理解の一助となりましたので掲載します。


ポイントとなる箇所は「エントリーが保存されたら何かする」という動作をしたい場合はどのように書けばいいのかというところです。この動作をさせるために他の方が作ったプラグインを参考にさせて頂いたり、ブログ記事を探し回りましたがやっと見つけました。メール送信の部分はおまけのようなものです。

[perl]
package MT::Plugin::TestMailSender;

use base qw(MT::Plugin);
my $plugin = new MT::Plugin({
name => ‘TestMailSender’,
version => ‘1.0.0’,
registry => {
callbacks => {
‘cms_post_save.entry’ => \&test_mail_send
}
}
});
MT->add_plugin($plugin);

sub test_mail_send{
use MT::Mail;
my %head = (To => ‘mailaddress1@example.com’ , Subject => ‘hoge’);
my $body = ‘dore’;
MT::Mail->send(\%head,$body);
}
[/perl]

その「エントリーが保存されたら何かする」という動作は、7-11行目で定義されています。内容はエントリーが保存されたら、指定したサブルーチンを実行するというものです。ここではメールを送信するサブルーチンのtest_mail_sendが指定されています。したがってエントリーが保存されたら、タイトルhoge、本文doreと書かれたメールが指定のメールアドレスに送信されます。

このサンプルコードでは、「エントリーが保存されたら」という動作を表しているのが9行目のcms_post_save.entryになるのですが、これには他にも種類があり「〇〇したら」という動作に合わせて変更、追加をします。ここで定義できる動作の一覧については、日本語のリソースが見当たらなかったので、英語のリファレンスしかないようです。

参考
http://www.movabletype.org/documentation/developer/callbacks/

関連記事

Leave a Reply