c/fe

http://d.hatena.ne.jp/uzulla から移行しました。

メールでTwitter

はてなに投稿する場所はまだごちゃごちゃだけれど、メールで投稿する部分だけはある程度綺麗になったので。

#!/usr/bin/perl

use MIME::Parser;
use MIME::Words qw(decode_mimewords);
use LWP::UserAgent;
use Jcode;

my $username='username';
my $password='pass';

#
# mail parse
#
while(<>){ $data= $data.$_ ;}
my $parser = new MIME::Parser;
$parser->output_dir('/tmp/');
my $entity = $parser->parse_data($data);
my $subject = decode_mimewords($entity->head->get('Subject'));

#
#Twit post
#
my $ua = LWP::UserAgent->new;
$ua->agent("MTwit0.1");
$ua->timeout(30);
$ua->credentials('twitter.com:80', 'twit', $username, $password);

my $status=jcode($subject)->h2z->utf8;
my $response = $ua->post('http://twitter.com/statuses/update.json', {status => $status});

こんなんを.forwardとか、.qmailとか、aliasesとかに仕込むと良いでしょう。
/etc/aliasesに書くなら、

twitterpostmailaddr: "|/usr/bin/perl /path/to/mailtwit.pl"

※認証がないので、メールアドレスの複雑さが認証代わり(笑


あ、Parseの際に生成されるファイルを消すの忘れてた。