Kawa.netブログ(川崎有亮)

アクセスカウンタ

help リーダーに追加 RSS ウェブ上の画像ファイルをメールとして送信するスクリプト

<<   作成日時 : 2007/04/30 02:39   >>

トラックバック 0 / コメント 0

特定の URL にあるファイルを、そのままメール送信する Perl スクリプト。
メール本文テキストはなくて、ファイルのみからなるメールを作成します。
以前は、ファイル添付のメールを送るスクリプトはそれなりの長さになったけど、
今ではメール送信処理自体は3行で済むんですね。CPAN ありがたし。
#!/usr/bin/perl

use strict;
use LWP::UserAgent;
use MIME::Lite;

# 送信したいファイルのURL・ファイル名
my $url = 'http://www.kawa.net/xp/images/xp-title-256.gif';
my $file = ( $url =~ m#/([^/]+)$# )[0] || 'temp.dat';

# BASIC 認証が必要な場合は指定する
my $auth;
### $auth = [ 'user', 'passwd' ];

# メールの差出人・あて先アドレス
my $mail = {
    From => 'mail-from@example.com',
    To => 'mail-rcpt@example.com',
    Encoding => 'base64',
    Subject => $url,
    Path => $file,
};

# メール送信に利用するSMTPサーバ
my $smtp = [ smtp => 'blue.ocn.ne.jp' ];

# コンテンツをダウンロードする
my $ua = LWP::UserAgent->new();
my $req = HTTP::Request->new( GET => $url );
$req->authorization_basic( @$auth ) if ref $auth;
my $res = $ua->request( $req, $file ) or die;

# 取得失敗の場合はエラーメッセージを表示
if ( $res->is_error() ) {
    my $stat = $res->code();
    my $mess = $res->message();
    die "$stat $mess - $url\n"
}

# 添付ファイルを付けてメールを送信する
$mail->{Type} ||= $res->content_type();
MIME::Lite->send( @$smtp );
my $msg = MIME::Lite->new( %$mail ) or die;
$msg->send() or die "$!\n";


BASIC 認証にも対応。
Munin で生成した画像ファイルを cron で定期的に Gmail に送って蓄積したかったので。

画像ファイルだけでなく、HTML の URL を指定すれば HTML メールも送れるが、
相対パスの処理などは行われないので、画像やリンク先URLは要注意。
 

設定テーマ

関連テーマ 一覧

月別リンク

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文

EDGE Now!