備忘録

あるディレクトリの1ヶ月前の年月を渡し、該当するファイル名のファイルをかき集めてある処理を通し、添付ファイルにしてメールに送り出す方法。
実際に動いているもので出せない部分を消しているソース。
いろんな事情で変なパスをいっぱい切っているけどつっこみ無用。

#!/bin/bash
/home/homedir/getdata.pl $(date --date '1 month ago' +%Y%m) | /usr/sbin/sendmail -f fromuser@hogehoge -t touser@fugahoge

汚いソースだけど

#! /usr/bin/perl

#
#======================================================================#
#======================================================================#
#
use MIME::Base64 ;
$HOME = "/home/homedir" ;
#◇ jcode.pl までのパス
require "$HOME/jcode.pl";
#◇ getassociate.pl までのパス
require "$HOME/getassociate.pl";

$from="fromuser\@hogehoge" ;
$to="touser@fugahoge" ;

#======================================================================#
#======================================================================#

$ym = "$HOME/".$ARGV[0].'.txt' ;

unlink $ym ;

$ym = '>' . $ym ;

$outdtbase64 = "From: $from\n" ;
$outdtbase64 .= "Subject: Subjectdt $ARGV[0]\n" ;
$outdtbase64 .= "To: $to\n" ;
$outdtbase64 .= "MIME-Version: 1.0\n";
$outdtbase64 .= "Content-Type: multipart/mixed; boundary=\"------_45A34CB85CE2047A77F8_MULTIPART_MIXED_\"\n" ;
$outdtbase64 .= "Content-Transfer-Encoding: 7bit\n" ;

$outdtbase64 .= "--------_45A34CB85CE2047A77F8_MULTIPART_MIXED_\n" ;
$outdtbase64 .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n" ;
$outdtbase64 .= "Content-Transfer-Encoding: 7bit\n\n" ;
$body = jcode'jis("本文\n");
$outdtbase64 .= $body ;
$outdtbase64 .= "\n" ;

$outdtbase64 .= "--------_45A34CB85CE2047A77F8_MULTIPART_MIXED_\n" ;
$outdtbase64 .= "Content-Type: application/octet-stream;\n" ;
$outdtbase64 .= " name=\"$ARGV[0].txt\"\n" ;
$outdtbase64 .= "Content-Disposition: attachment;\n" ;
$outdtbase64 .= " filename=\"$ARGV[0].txt\"\n" ;
$outdtbase64 .= "Content-Transfer-Encoding: base64\n\n" ;
print $outdtbase64 ;

while ($filename = glob("$HOME/datadir/".$ARGV[0].'??')){

	open(filename) ;
	while(){
		@res=split(/\t/) ;
                $outdt= $res[0].",".$res[1].",".$res[2].","  ;
                $outdt .= "\n" ;
		$outdtbase64 = encode_base64($outdt);
                print $outdtbase64 ;
	}
	close(filename) ;
}
$outbase64 = "--------_45A34CB85CE2047A77F8_MULTIPART_MIXED_\n" ;
print $outdtbase64 ;

exit ;
__END__