雑なメモ(無保証)

perlでSMTPメール送信するスクリプト


perlモジュールをインストールする


CPANサーチとか言うところで必要なモジュールを検索してDLする。
http://search.cpan.org/

ダウンロードしたら解凍

> tar xvfz (ファイル名).tar.gz
解凍したらMaikefileを作る

> cd (ファイル名)
> perl Makefile.PL
makeする

> make
テストする(何の?)

> make test
インストールする

> make install

perlでSMTPメール送信するスクリプト(添付ファイル付き)

#!/usr/bin/perl

use Net::SMTP;
use MIME::Entity;
use POSIX qw(locale_h strftime);
use MIME::Base64;
use Authen::SASL;

require MIME::Base64;
require Authen::SASL;

# 設定
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time());
my $date = sprintf("%d%02d%02d", (1900 + $year), ($mon + 1),$mday);

# ログファイルの場所と名前
my $logdir = "/usr/local/squid/var/logs/";
my $logfile = "squid" . $date . ".zip";
# ついでにdfコマンドもやっとく
my $df = `df -h`;

# メールアカウント情報
my $sender = 'hogehoge@dmain.com'; # メールアドレス
my $server = 'mail.domain.com'; # SMTPサーバー
my $user = 'hogehoge'; # ユーザーID
my $passwd = 'password'; # パスワード

# メールヘッダ情報
my $from = 'hogehoge@domain.com'; # FROM
my $to = 'pomupomu@domain.com'; # TO
my $subject = "[PROXY]Squid access log -- "; # SUBJECT
$subject .= $date;
# BODY
my $body = "This E-mail is automatically transmitted from Proxyserver.\n"
."The access log of squid is appended.\n\n"
."The execution result of command \"df -h\" isdisplayed as follows.\n\n"
.$df;


# ファイルがあるかチェック
unless ( -r $logdir.$logfile) {
exit;
}

# オブジェクト作成
my $smtp = Net::SMTP->new($server, Hello=>$server,Timeout=>60, Debug=>1);

# 認証
$smtp->auth($user, $passwd) or die "AUTHENTICATION ERROR";

# ヘッダ部の組み立て
$smtp->mail($sender) or die "SENDER ERROR";
$smtp->to($to) or die "RECIPIENT ERROR";

# データ部の組み立て(MIME::Entityによるデータの作成)
$smtp->data() or die "SEND ERROR";
$oMime = MIME::Entity->build(
From => $sender, # 送信元(データ部)
To => $to, # 宛先(データ部)
Subject => $subject, # 件名
Data => $body # 本文
);

# 添付ファイルをつける
$oMime->attach(
Path => $logdir . $logfile,
Type => "application/x-compress",
Encoding => "Base64"
);

# 文字列に変換
$smtp->datasend($oMime->stringify) or die "SEND ERROR";
$smtp->dataend() or die "SEND ERROR";

#メール送信、SMTP接続の終了
$smtp->quit;





最終更新 2006/09/09 22:00:06 - llinfo_arp
(2006/05/27 18:00:17 作成)


Amazon