1999.3.4 Mew で書いたメールの Queue を確認して送信する。  1998.10.16 の日記の続編であり補足であり拡張。  オフラインでメールを書くのを想定して,default では C-m C-c で送信し ても ~/.im/queue/ に溜め込むように,~/.im/Config に JustQueuing=yes  としている。ネットにつながったら,imput -q としてキューに溜ったメー ルを送信する。  仕事中は確実に社内の LAN に接続された状態で使用しているし,メールを 出したつもりでキューに溜めたまま…,という事故を防ぐために,仕事メール の config の部分 (case morisawa) に JustQueuing=no  と,すぐに送信するようにしている。 〜〜 ここまでが前回の補足 〜〜  人間というのはどこまでも忘れる生き物である。  imput -q した時に, 『何だか溜めているメールよりも沢山送信したような気がするなぁ…』  と思うことがしばしばあった。  何度目かの時に原因を追求すると,仕事メールを私信で出している事に気付 く。  連絡が遅れるのも問題だが,From: がプライベートアドレスなのはもっと問 題だ。imput する前に確認を取るべきだ…と,シェルスクリプトの作成を決意。  …が,慣れている perl で書いてしまう。  キューディレクトリにあるファイルの From:,To:,Subject: フィールドを 表示して,OK なら imput するというスクリプト。  que というファイル名で chmod 700 としてパスを通している ~/bin に保存。  これでもやがて機械的に "y" を入力して送信ミスをするんだろうなぁ…。 #!/usr/bin/perl $QUEUEDIR = "/home/take/.im/queue"; opendir(DIR,$QUEUEDIR); @files=readdir(DIR); foreach $file (@files){ $target="$QUEUEDIR"."/$file"; print "\n"; open(FILE,$target); @data = ; close (FILE); foreach $line (@data) { if($line =~ /From:/ || $line =~ /To:/ || $line =~ /Cc:/ || $line =~ /Subject:/){ print "$line"; $flag=1; } } } closedir(DIR); if($flag == 1){ print "\nAre you OK? (y/n)"; $ans=getc(); if($ans eq "y"){ exec ("imput -q"); } else{ print "Not send.\n"; } } else{ print "Nothing to send.\n"; }