im-151/0000755000000000000000000000000011567034543010475 5ustar rootrootim-151/imcd.in0000644000000000000000000001053011566752617011750 0ustar rootroot#! @im_path_perl@ ################################################################ ### ### imcd ### ### Author: Internet Message Group ### Created: Apr 23, 1997 ### Revised: Apr 23, 2007 ### BEGIN { @im_my_siteperl@ @im_src_siteperl@ }; $Prog = 'imcd'; my $VERSION_DATE = "20110525"; my $VERSION_NUMBER = "151"; my $VERSION = "${Prog} version ${VERSION_DATE}(IM${VERSION_NUMBER})"; my $VERSION_INFORMATION = "${Prog} (IM ${VERSION_NUMBER}) ${VERSION_DATE} Copyright (C) 1999 IM developing team This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. "; ## ## Require packages ## use IM::Config; use IM::Folder; use IM::Util; use integer; use strict; use vars qw($Prog $EXPLANATION @OptConfig $opt_src $opt_quiet $opt_verbose $opt_debug $opt_help $opt_version); ## ## Environments ## $EXPLANATION = "$VERSION change default folder of IM Usage: $Prog [OPTIONS] [FOLDER] "; @OptConfig = ( 'src;F;;' => "Set source folder", 'quiet;b;;' => "Do not bark", 'verbose;b;;' => 'With verbose messages', 'debug;d;;' => "With debug message", 'help;b;;' => "Display this help and exit", 'version,V;b;;' => "Output version information and exit", ); ## ## Profile and option processing ## init_opt(\@OptConfig); read_cfg(); read_opt(\@ARGV); # help? print("${VERSION_INFORMATION}") && exit $EXIT_SUCCESS if $opt_version; help($EXPLANATION) && exit $EXIT_SUCCESS if $opt_help; debug_option($opt_debug) if $opt_debug; ## ## Main ## my $folder = &cur_folder(); $folder = $opt_src if (defined $opt_src); if (! -d &expand_path($folder)) { im_die("no such folder $folder\n"); } &set_cur_folder($folder); print "$folder\n" unless $opt_quiet; exit $EXIT_SUCCESS; __END__ =head1 NAME imcd - change default folder of IM =head1 SYNOPSIS B [OPTIONS] [FOLDER] =head1 DESCRIPTION The I command change the current folder of IM. This command is provided by IM (Internet Message). =head1 OPTIONS =over 5 =item I<-s, --src=FOLDER> Set source folder. "--src=+xxx" is equivalent to "+xxx". =item I<-q, --quiet={on,off}> Do not show any messages. =item I<-v, --verbose={on,off}> Print verbose messages when running. =item I<--debug=DEBUG_OPTION> Print debug messages when running. =item I<-h, --help> Display help message and exit. =item I<--version> Output version information and exit. =back =head1 FILES =over 5 =item ~/.im/Context =back =head1 BUGS This feature is not well supported by the other im* commands. =head1 COPYRIGHT IM (Internet Message) is copyrighted by IM developing team. You can redistribute it and/or modify it under the modified BSD license. See the copyright file for more details. =cut ### Copyright (C) 1997, 1998, 1999 IM developing team ### All rights reserved. ### ### Redistribution and use in source and binary forms, with or without ### modification, are permitted provided that the following conditions ### are met: ### ### 1. Redistributions of source code must retain the above copyright ### notice, this list of conditions and the following disclaimer. ### 2. Redistributions in binary form must reproduce the above copyright ### notice, this list of conditions and the following disclaimer in the ### documentation and/or other materials provided with the distribution. ### 3. Neither the name of the team nor the names of its contributors ### may be used to endorse or promote products derived from this software ### without specific prior written permission. ### ### THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS ``AS IS'' AND ### ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ### IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ### PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TEAM OR CONTRIBUTORS BE ### LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ### CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ### SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ### BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ### WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE ### OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN ### IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ### Local Variables: ### mode: perl ### End: im-151/imrm.in0000644000000000000000000002004211566752617011777 0ustar rootroot#! @im_path_perl@ ################################################################ ### ### imrm ### ### Author: Internet Message Group ### Created: Apr 23, 1997 ### Revised: Apr 23, 2007 ### BEGIN { @im_my_siteperl@ @im_src_siteperl@ }; $Prog = 'imrm'; my $VERSION_DATE = "20110525"; my $VERSION_NUMBER = "151"; my $VERSION = "${Prog} version ${VERSION_DATE}(IM${VERSION_NUMBER})"; my $VERSION_INFORMATION = "${Prog} (IM ${VERSION_NUMBER}) ${VERSION_DATE} Copyright (C) 1999 IM developing team This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. "; ## ## Require packages ## use IM::Config; use IM::Folder; use IM::File; use IM::MsgStore; use IM::Util; use integer; use strict; use vars qw($Prog $EXPLANATION @OptConfig @msgs $opt_noharm $opt_src @opt_dst $opt_verbose $opt_debug $opt_help $opt_version); ## ## Environments ## my %NewMsgCache = (); $EXPLANATION = "$VERSION remove mail/news messages Usage: $Prog [OPTIONS] FOLDER... MSGS... "; @OptConfig = ( 'src;F;;' => "Set source folder", 'dst;f@;;' => "Set destination folder", 'SSHServer,S;s;localhost;SSH_server' => 'SSH port relay server', 'noharm;b;;' => "Display the commands but do not actually execute them", 'verbose;b;;' => 'With verbose messages', 'debug;d;;' => "With debug message", 'help;b;;' => "Display this help and exit", 'version,V;b;;' => "Output version information and exit", ); ## ## Profile and option processing ## init_opt(\@OptConfig); read_cfg(); read_opt(\@ARGV); # help? print("${VERSION_INFORMATION}") && exit $EXIT_SUCCESS if $opt_version; help($EXPLANATION) && exit $EXIT_SUCCESS if $opt_help; debug_option($opt_debug) if $opt_debug; ## ## Main ## @opt_dst = uniq(@opt_dst); @ARGV || im_die "no message specified.\n"; @msgs = @ARGV; imrm($opt_src, \@opt_dst, \@msgs); exit $EXIT_SUCCESS; ################################################## ## ## Work horse ## sub imrm($$$) { my($src, $dsts, $msgs) = @_; my(@imap_dsts, @local_dsts); my($imap_src, $imap_dst, $news_src, $news_dst) = (0, 0, 0, 0); if ($src =~ /^-/) { $news_src = 1; } elsif ($src =~ /^%/) { $imap_src = 1; } foreach (@$dsts) { if (/^-/) { $news_dst = 1; } elsif (/^%/) { $imap_dst = 1; push(@imap_dsts, $_); } else { push(@local_dsts, $_); } } if ($news_dst) { im_die "refile to News folder is not permitted.\n"; } if ($news_src) { require IM::Nntp && import IM::Nntp qw(nntp_get_message); } if ($imap_src || $imap_dst) { require IM::Imap && import IM::Imap; require IM::GetPass && import IM::GetPass; } chk_folder_existance($src, @{$dsts}); if (($imap_src && imap_open_folders(0, $src) < 0) || ($imap_dst && imap_open_folders(1, @imap_dsts) < 0)) { exit($EXIT_ERROR); } if ($src =~ /^%/) { imap2local($src, \@local_dsts, $msgs) if (scalar(@local_dsts) > 0); imap2imap($src, \@imap_dsts, $msgs) if (scalar(@imap_dsts) > 0); } elsif ($src =~ /^-/) { news2local($src, \@local_dsts, $msgs) if (scalar(@local_dsts) > 0); news2imap($src, \@imap_dsts, $msgs) if (scalar(@imap_dsts) > 0); } else { local2local($src, \@local_dsts, $msgs) if (scalar(@local_dsts) > 0); local2imap($src, \@imap_dsts, $msgs) if (scalar(@imap_dsts) > 0); } if ($imap_src || $imap_dst) { imap_close_folders(); } return 0; } sub local2local($$$) { my($src, $dsts, $msgs) = @_; my @msg_paths = get_impath($src, @$msgs); foreach (@msg_paths) { refile_one($src, $dsts, $_) if (-f $_); } } sub imap2local($$$) { my($src, $dsts, $msgs) = @_; my($msg, $Message); foreach $msg (@$msgs) { $Message = imap_get_message($src, $msg); refile_one("", $dsts, $Message); } imap_delete_message($src, @$msgs); } sub news2local($$$) { my($src, $dsts, $msgs) = @_; my($msg, $rc, $Message); foreach $msg (@$msgs) { ($rc, $Message) = nntp_get_message($src, $msg); im_die($Message) if ($rc < 0); refile_one("", $dsts, $Message); } } sub refile_one($$$) { my($src, $dsts, $msg) = @_; my($dst, $dst_path, $link_it); foreach $dst (@{$dsts}) { if ($NewMsgCache{$dst}) { $NewMsgCache{$dst} =~ s|([^/]+)$|$1+1|e; # increment cache $dst_path = $NewMsgCache{$dst}; } else { $dst_path = $NewMsgCache{$dst} = get_impath($dst, 'new'); } if ($link_it) { im_link($link_it, $dst_path) || die $@; } else { if ($src eq "") { if (store_message($msg, $dst, 1) < 0) { im_warn("can't store msg to $dst folder.\n"); } } else { im_rename($msg, $dst_path) || die $@; } $link_it = $dst_path; } touch_folder($dst_path) unless ($opt_noharm); } } sub local2imap($$$) { my($src, $dsts, $msgs) = @_; my $msg; foreach $msg (@$msgs) { my $src_path = get_impath($src, ($msg)); if (-f $src_path) { imap_put_file($src, $dsts, $src_path); im_unlink($src_path); } } } sub news2imap($$$) { my($src, $dsts, $msgs) = @_; my($msg, $rc, $Message); foreach $msg (@$msgs) { ($rc, $Message) = nntp_get_message($src, $msg); im_die($Message) if ($rc < 0); imap_put_message($Message, $dsts); } } sub imap2imap($$$) { imap_refile(@_); } sub uniq(@) { my @array = @_; my %hash; foreach (@array) { $hash{$_} = $_; } return keys(%hash); } __END__ =head1 NAME imrm - remove mail/news messages =head1 SYNOPSIS B [OPTIONS] FOLDER... MSGS... =head1 DESCRIPTION The I command moves mail/news messages from the source folder to the +trash folder. This command is provided by IM (Internet Message). =head1 OPTIONS =over 5 =item I<-s, --src=FOLDER> Set source folder. Default value is "+inbox". "--src=+xxx" is equivalent to "+xxx". =item I<-d, --dst=FOLDER> Set destination folder. Default value is "+trash". =item I<-S, --sshserver=SERVER> SSH port relay server. =item I<-n, --noharm={on,off}> Display the commands but do not actually execute them. =item I<-v, --verbose={on,off}> Print verbose messages when running. =item I<--debug=DEBUG_OPTION> Print debug messages when running. =item I<-h, --help> Display help message and exit. =item I<--version> Output version information and exit. =back =head1 COPYRIGHT IM (Internet Message) is copyrighted by IM developing team. You can redistribute it and/or modify it under the modified BSD license. See the copyright file for more details. =cut ### Copyright (C) 1997, 1998, 1999 IM developing team ### All rights reserved. ### ### Redistribution and use in source and binary forms, with or without ### modification, are permitted provided that the following conditions ### are met: ### ### 1. Redistributions of source code must retain the above copyright ### notice, this list of conditions and the following disclaimer. ### 2. Redistributions in binary form must reproduce the above copyright ### notice, this list of conditions and the following disclaimer in the ### documentation and/or other materials provided with the distribution. ### 3. Neither the name of the team nor the names of its contributors ### may be used to endorse or promote products derived from this software ### without specific prior written permission. ### ### THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS ``AS IS'' AND ### ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ### IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ### PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TEAM OR CONTRIBUTORS BE ### LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ### CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ### SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ### BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ### WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE ### OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN ### IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ### Local Variables: ### mode: perl ### End: im-151/imhist.in0000644000000000000000000001726511566752617012345 0ustar rootroot#! @im_path_perl@ ################################################################ ### ### imhist ### ### Author: Internet Message Group ### Created: Jul 6, 1997 ### Revised: Apr 23, 2007 ### BEGIN { @im_my_siteperl@ @im_src_siteperl@ }; $Prog = 'imhist'; my $VERSION_DATE = "20110525"; my $VERSION_NUMBER = "151"; my $VERSION = "${Prog} version ${VERSION_DATE}(IM${VERSION_NUMBER})"; my $VERSION_INFORMATION = "${Prog} (IM ${VERSION_NUMBER}) ${VERSION_DATE} Copyright (C) 1999 IM developing team This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. "; ## ## Require packages ## use IM::Config; use IM::Address; use IM::History; use IM::Message; use IM::Util; use integer; use strict; use vars qw($Prog $EXPLANATION @OptConfig @Hdr $opt_lookup $opt_remove $opt_msg $opt_dump $opt_add $opt_subfolders $opt_verbose $opt_debug $opt_help $opt_version); ## ## Environments ## $EXPLANATION = "$VERSION treat mail/news history database Usage: imhist [OPTIONS] "; @OptConfig = ( 'lookup;s;;' => 'Look up an entry for specified message-id', 'remove;s;;' => 'Remove whole information on specified message-id', 'msg;s;;' => 'Message to be deleted if multiple in database', 'dump;b;;' => 'Dump database just for debugging', 'add;f;;' => 'Add information of messages in a specified folder', 'subfolders;b;;' => 'Descend sub folders recursively (option for --add)', 'verbose;b;;' => 'With verbose messages', 'debug;d;;' => "With debug message", 'help;b;;' => "Display this help and exit", 'version,V;b;;' => "Output version information and exit", ); ## ## Profile and option processing ## init_opt(\@OptConfig); read_cfg(); read_opt(\@ARGV); # help? print("${VERSION_INFORMATION}") && exit $EXIT_SUCCESS if $opt_version; help($EXPLANATION) && exit $EXIT_SUCCESS if $opt_help; debug_option($opt_debug) if $opt_debug; ## ## Main ## if (msgdbfile() eq '') { im_die("MsgDBFile is not defined.\n"); } if ($opt_lookup ne '') { exit $EXIT_ERROR if (history_open(1) < 0); # unless ($opt_lookup =~ /^<.*>$/) { # im_warn("Message-ID should be surrounded by <>.\n"); # exit $EXIT_ERROR; # } my $msg = history_lookup($opt_lookup, LookUpMsg); if ($msg eq '') { im_info("no entry found for $opt_lookup\n"); exit $EXIT_ERROR; } else { print $msg . "\n"; } history_close(); } elsif ($opt_remove ne '') { exit $EXIT_ERROR if (history_open(1) < 0); # unless ($opt_lookup =~ /^<.*>$/) { # im_warn("Message-ID should be surrounded by <>.\n"); # exit $EXIT_ERROR; # } my $num = history_delete($opt_remove, $opt_msg); if ($num < 0) { im_warn("no entry found for $opt_remove\n"); exit $EXIT_ERROR; } if ($opt_msg ne '' && $num > 0) { im_info("message $opt_msg for $opt_remove deleted\n"); } else { im_info("entry for $opt_remove deleted\n"); } history_close(); } elsif ($opt_dump) { exit $EXIT_ERROR if (history_open(0) < 0); history_dump(); history_close(); } elsif ($opt_add ne '') { my $p = expand_path($opt_add); if (-f $p) { # single file if (history_open(1) < 0) { exit $EXIT_ERROR; } add_msg_info($p, $opt_add); history_close(); } elsif (-d $p) { # folder if (history_open(1) < 0) { exit $EXIT_ERROR; } add_folder_info($p, $opt_add); history_close(); } else { im_warn("no message found to add.\n"); exit $EXIT_ERROR; } } else { im_warn("no option specified.\n"); exit $EXIT_ERROR; } exit $EXIT_SUCCESS; sub add_msg_info($$) { my($path, $msg) = @_; local(@Hdr) = (); if (im_open(\*MSG, "<$path")) { &read_header(\*MSG, \@Hdr, 0); my $mid = &header_value(\@Hdr, 'Message-ID'); # my $dt = &header_value(\@Hdr, 'Date'); my $ver = &extract_addr(&header_value(\@Hdr, 'Mime-Version')); $ver =~ s/\s//g; my $master = ''; if ($ver eq '1.0') { my $ct = &header_value(\@Hdr, 'Content-Type') . ';'; $ct =~ s/\s//g; if ($ct =~ m|^Message/partial;(.*;)?id=([^;]+);|i) { $master = $2; $master =~ s/^"(.*)"$/$1/; } } if ($mid ne '') { history_store($mid, $msg); history_store("partial:$master", $mid) if ($master ne ''); } close (MSG); return 0; } return -1; } sub add_folder_info($$) { my($dir, $folder) = @_; $dir =~ s|/$||; im_info("Entering folder $dir\n"); chdir ($dir); unless (opendir(FOLDER, $dir)) { im_warn("can't read $dir\n"); return -1; } my @lower = (); my $f; foreach $f (readdir(FOLDER)) { if ($f eq '.' || $f eq '..') { } elsif ($f =~ /^\d+$/ && -f $f) { print(" $f\n"); add_msg_info($f, "$folder/$f"); } elsif (-d $f) { push(@lower, $f); } } closedir(FOLDER); if ($opt_subfolders eq '1') { my $l; foreach $l (@lower) { if ($folder eq '+') { add_folder_info("$dir/$l", "+$l"); } else { add_folder_info("$dir/$l", "$folder/$l"); } } } } __END__ =head1 NAME imhist - treat mail/news history database =head1 SYNOPSIS B [OPTIONS] =head1 DESCRIPTION The I command handles mail/news history database. This command is provided by IM (Internet Message). =head1 OPTIONS =over 5 =item I<-l, --lookup=STRING> Look up an entry for specified message-id. =item I<-r, --remove=STRING> Remove whole information on specified message-id. =item I<-m, --msg=STRING> Message to be deleted if multiple in database. =item I<-d, --dump={on,off}> Dump database just for debugging. =item I<-a, --add=FOLDER> Add information of messages in a specified folder. =item I<-s, --subfolders={on,off}> Descend sub folders recursively (option for --add). =item I<-v, --verbose={on,off}> Print verbose messages when running. =item I<--debug=DEBUG_OPTION> Print debug messages when running. =item I<-h, --help> Display help message and exit. =item I<--version> Output version information and exit. =back =head1 COPYRIGHT IM (Internet Message) is copyrighted by IM developing team. You can redistribute it and/or modify it under the modified BSD license. See the copyright file for more details. =cut ### Copyright (C) 1997, 1998, 1999 IM developing team ### All rights reserved. ### ### Redistribution and use in source and binary forms, with or without ### modification, are permitted provided that the following conditions ### are met: ### ### 1. Redistributions of source code must retain the above copyright ### notice, this list of conditions and the following disclaimer. ### 2. Redistributions in binary form must reproduce the above copyright ### notice, this list of conditions and the following disclaimer in the ### documentation and/or other materials provided with the distribution. ### 3. Neither the name of the team nor the names of its contributors ### may be used to endorse or promote products derived from this software ### without specific prior written permission. ### ### THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS ``AS IS'' AND ### ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ### IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ### PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TEAM OR CONTRIBUTORS BE ### LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ### CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ### SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ### BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ### WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE ### OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN ### IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ### Local Variables: ### mode: perl ### End: im-151/imsort.in0000644000000000000000000001762711566752620012361 0ustar rootroot#! @im_path_perl@ ################################################################ ### ### imsort ### ### Author: Internet Message Group ### Created: Jul 2, 1997 ### Revised: Apr 23, 2007 ### BEGIN { @im_my_siteperl@ @im_src_siteperl@ }; $Prog = 'imsort'; my $VERSION_DATE = "20110525"; my $VERSION_NUMBER = "151"; my $VERSION = "${Prog} version ${VERSION_DATE}(IM${VERSION_NUMBER})"; my $VERSION_INFORMATION = "${Prog} (IM ${VERSION_NUMBER}) ${VERSION_DATE} Copyright (C) 1999 IM developing team This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. "; ## ## Require packages ## use IM::Config; use IM::Folder; use IM::File; use IM::Util; use integer; use strict; use vars qw($Prog $EXPLANATION @OptConfig $opt_field $opt_mode $opt_noharm $opt_src $opt_verbose $opt_debug $opt_help $opt_version); ## ## Environments ## $EXPLANATION = "$VERSION sort mail/news messages Usage: $Prog [OPTIONS] FOLDER [MSGS...] "; @OptConfig = ( 'src;F;;' => "Set source folder", 'field;s;date;'=> "Sort by the specified field", 'mode;s;date;' => "Set sort mode to date, num, text or ml", 'noharm;b;;' => "Display the commands but do not actually execute them", 'verbose;b;;' => 'With verbose messages', 'debug;d;;' => "With debug message", 'help;b;;' => "Display this help and exit", 'version,V;b;;' => "Output version information and exit", ); ## ## Profile and option processing ## init_opt(\@OptConfig); read_cfg(); read_opt(\@ARGV); # help? print("${VERSION_INFORMATION}") && exit $EXIT_SUCCESS if $opt_version; help($EXPLANATION) && exit $EXIT_SUCCESS if $opt_help; debug_option($opt_debug) if $opt_debug; ## ## Main ## my @msgs = @ARGV; @msgs = ('all') if (!@ARGV); my $msgs = \@msgs; $opt_src || im_die "no folder specified.\n"; @msgs || im_die "no message specified.\n"; $opt_field || im_die "no field specified.\n"; $opt_mode =~ /^(date|num|text|ml)$/ || im_die "Wrong mode $opt_mode.\n"; # # Set date relative magic values. # my @TBL = (0, 306, 337, 0, 31, 61, 92, 122, 153, 184, 214, 245, 275); my %ZONE = ('PST', -8, 'PDT', -7, 'MST', -7, 'MDT', -6, 'CST', -6, 'CDT', -5, 'EST', -5, 'EDT', -4, 'AST', -4, 'NST', -3, 'UT' , +0, 'GMT', +0, 'BST', +1, 'MET', +1, 'EET', +2, 'JST', +9,); my %MONTH = ('Jan', 1, 'Feb', 2, 'Mar', 3, 'Apr', 4, 'May', 5, 'Jun', 6, 'Jul', 7, 'Aug', 8, 'Sep', 9, 'Oct', 10, 'Nov', 11, 'Dec', 12); sub rxp_or { join('|', @_); } my $m_rxp = rxp_or(keys(%MONTH)); my $z_rxp = rxp_or(keys(%ZONE), '[-+]\d{4}'); # # do it. # imsort($opt_src, $msgs, $opt_mode, $opt_field); exit $EXIT_SUCCESS; ################################################## ## ## Work horse ## sub imsort($$$$) { my($src, $msgs, $mode, $field) = @_; my($i, $path, $from, $to, $tmp, @msg_all, @msg_paths, @sorted_index); my @param = (); my $HOLE_PATH = get_impath($src, 'new'); @msg_all = get_impath($src, @{$msgs}); foreach $path (@msg_all) { if (-f $path) { push(@msg_paths, $path); push(@param, get_field_value($path, $field, $mode)); } } if (($mode eq 'text') || ($mode eq 'ml')) { @sorted_index = sort { $param[$a] cmp $param[$b] } 0 .. $#msg_paths; } else { @sorted_index = sort { $param[$a] <=> $param[$b] } 0 .. $#msg_paths; } $tmp = $#msg_paths + 1; for $i (0 .. $#msg_paths) { next if $i == $sorted_index[$i] or $sorted_index[$i] < 0; $msg_paths[$tmp] = $HOLE_PATH; $sorted_index[$tmp] = $i; $to = $tmp; do { $from = $sorted_index[$to]; if ($sorted_index[$from] < 0) { $from = $tmp; } $sorted_index[$to] = -1; im_rename($msg_paths[$from], $msg_paths[$to]) || die; } while ($to = $from) != $tmp; $#msg_paths = $#sorted_index = $tmp - 1; } touch_folder($src) unless $opt_noharm; } sub get_field_value($$$) { my($path, $field, $smode) = @_; local $_; local $/ = ''; my($ml, $num); if (im_open(\*MSG, "< $path")) { ($_ = ) =~ s/\n\s+/ /g; close(MSG); } else { im_die("Can't open $path. (Nothing was done.)\n"); } ($_) = /^$field:\s+([^\n]*)/imo; if (lc($field) eq 'subject') { if ($smode eq 'ml') { if (s/^[\[\(]([^\]\)]*)[\]\)]\s*//i) { $1 =~ /^(.*)[:,\s](.*)$/; $ml=$1; $num=$2; s/^(re:\s*)(.*)$/$2$1/i; $_ = $ml . $_ . $num; } } else { s/^(re:\s*)(.*)$/$2$1/i; } } if ($smode eq 'num') { m/(\d+)\D*$/; $_ = $1; } if ($smode eq 'date') { if (/(\d+)\s+($m_rxp)\s+(\d+)\s+(\d+):(\d+)(:(\d+))?\s*($z_rxp)?/io) { ## Y2K: conform to drums if ($3 < 50) { return sec_from_epoc($3 + 2000, $MONTH{$2}, $1, $4, $5, $7+0, $8); } elsif ($3 < 100) { return sec_from_epoc($3 + 1900, $MONTH{$2}, $1, $4, $5, $7+0, $8); } else { return sec_from_epoc($3, $MONTH{$2}, $1, $4, $5, $7+0, $8); } } return (stat($path))[9]; } return $_; } sub sec_from_epoc($$$$$$$) { my($y, $m, $d, $hh, $mm, $ss, $tz) = @_; $tz = ($ZONE{$tz} * 3600) || (int($tz/100)*3600 + ($tz%100)*60); $y-- if ($m < 3); ($y * 365 + int($y/4) - int($y/100) + int($y/400) + $TBL[$m] + $d - 719469) * 86400 + $hh * 3600 + $mm * 60 + $ss - $tz; } __END__ =head1 NAME imsort - sort mail/news messages =head1 SYNOPSIS B [OPTIONS] FOLDER [MSGS...] =head1 DESCRIPTION The I command sorts mail/news messages in a folder. This command is provided by IM (Internet Message). =head1 OPTIONS =over 5 =item I<-s, --src=FOLDER> Set source folder. Default value is "+inbox". "--src=+xxx" is equivalent to "+xxx". =item I<-f, --field=STRING> Sort by the specified field. Default value is "date". =item I<-m, --mode=STRING> Set sort mode to date, num, text or ml. Default value is "date". =item I<-n, --noharm={on,off}> Display the commands but do not actually execute them. =item I<-v, --verbose={on,off}> Print verbose messages when running. =item I<--debug=DEBUG_OPTION> Print debug messages when running. =item I<-h, --help> Display help message and exit. =item I<--version> Output version information and exit. =back =head1 COPYRIGHT IM (Internet Message) is copyrighted by IM developing team. You can redistribute it and/or modify it under the modified BSD license. See the copyright file for more details. =cut ### Copyright (C) 1997, 1998, 1999 IM developing team ### All rights reserved. ### ### Redistribution and use in source and binary forms, with or without ### modification, are permitted provided that the following conditions ### are met: ### ### 1. Redistributions of source code must retain the above copyright ### notice, this list of conditions and the following disclaimer. ### 2. Redistributions in binary form must reproduce the above copyright ### notice, this list of conditions and the following disclaimer in the ### documentation and/or other materials provided with the distribution. ### 3. Neither the name of the team nor the names of its contributors ### may be used to endorse or promote products derived from this software ### without specific prior written permission. ### ### THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS ``AS IS'' AND ### ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ### IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ### PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TEAM OR CONTRIBUTORS BE ### LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ### CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ### SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ### BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ### WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE ### OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN ### IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ### Local Variables: ### mode: perl ### End: im-151/imhsync.in0000644000000000000000000001736611566752617012524 0ustar rootroot#! @im_path_perl@ ################################################################ ### ### imhsync ### ### Author: Internet Message Group ### Created: Jul 02, 1998 ### Revised: Apr 23, 2007 ### BEGIN { @im_my_siteperl@ @im_src_siteperl@ }; $Prog = 'imhsync'; my $VERSION_DATE = "20110525"; my $VERSION_NUMBER = "151"; my $VERSION = "${Prog} version ${VERSION_DATE}(IM${VERSION_NUMBER})"; my $VERSION_INFORMATION = "${Prog} (IM ${VERSION_NUMBER}) ${VERSION_DATE} Copyright (C) 1999 IM developing team This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. "; ## ## Require packages ## use Fcntl; use IM::Config; use IM::History; use IM::Message; use IM::Util; use integer; use strict; use vars qw($Prog $EXPLANATION @OptConfig @Hdr %Folder $opt_db $opt_folder $opt_verbose $opt_debug $opt_help $opt_version); ## ## Environments ## $EXPLANATION = "$VERSION refile mail/news messages by another DB Usage: imhsync [OPTIONS] "; @OptConfig = ( 'db;s;;' => 'reference DB', 'folder;s;;' => 'folder to be refiled', 'verbose;b;;' => 'With verbose messages', 'debug;d;;' => "With debug message", 'help;b;;' => "Display this help and exit", 'version,V;b;;' => "Output version information and exit", ); ## ## Profile and option processing ## init_opt(\@OptConfig); read_cfg(); read_opt(\@ARGV); # help? print("${VERSION_INFORMATION}") && exit $EXIT_SUCCESS if $opt_version; help($EXPLANATION) && exit $EXIT_SUCCESS if $opt_help; debug_option($opt_debug) if $opt_debug; ## ## Main ## if (msgdbfile() eq '') { im_die("MsgDBFile is not defined.\n"); } if ($opt_db eq '') { im_die("--db option is not specified.\n"); } if (! -f $opt_db) { im_die("$opt_db is not found.\n"); } if ($opt_folder eq '') { im_die("--folder is not specified.\n"); } { my $p = expand_path($opt_folder); if (-d $p) { # folder if (my_history_open($opt_db) < 0) { exit $EXIT_ERROR; } folder_db_refile($p, $opt_folder); my_history_close(); } else { im_warn("no message found to refile.\n"); exit $EXIT_ERROR; } } exit $EXIT_SUCCESS; sub db_refile($$) { my($msg, $folder) = @_; my($multi_folder); local(@Hdr) = (); if (im_open(\*MSG, "<$msg")) { &read_header(\*MSG, \@Hdr, 0); close(MSG); my $mid = &header_value(\@Hdr, 'Message-ID'); my $dest = my_history_lookup($mid, 0); my($f, $df); $multi_folder = 0; $df = ''; foreach $f (split(',', $dest)) { $f =~ s|/[^/]*$||; if ($df eq '') { $df = $f; } elsif ($df ne $f) { $multi_folder = 1; } } if ($df ne '') { if ($folder ne $df && $multi_folder == 0) { # system("immv --src=$folder $df $msg"); $Folder{$df} .= " $msg"; } else { print "keep $folder/$msg\n"; } } return 0; } return -1; } sub folder_db_refile($$) { my($dir, $folder) = @_; $dir =~ s|/$||; im_info("Refiling folder $dir\n"); chdir($dir); unless (opendir(FOLDER, $dir)) { im_warn("can't read $dir\n"); return -1; } my @lower = (); my $f; foreach $f (readdir(FOLDER)) { if ($f eq '.' || $f eq '..') { } elsif ($f =~ /^\d+$/ && -f $f) { # print(" $f\n"); db_refile($f, $folder); } } foreach $f (keys %Folder) { my $m = join(' ', sort(split(' ', $Folder{$f}))); im_info("$f:$Folder{$f}\n"); system("immv --src=$folder $f $Folder{$f}"); } closedir(FOLDER); } use vars qw($DBtype $nodbfile $DB_HASH %History); sub my_history_open($$) { my($dbfile) = @_; $DBtype = msgdbtype(); # package global unless ($DBtype) { $DBtype = 'DB'; } if ($dbfile eq '') { $nodbfile = 1; return -2; } if ($DBtype eq 'DB') { require DB_File && import DB_File; $DB_HASH->{'cachesize'} = 100000 ; } elsif ($DBtype eq 'NDBM') { require NDBM_File && import NDBM_File; } elsif ($DBtype eq 'SDBM') { require SDBM_File && import SDBM_File; } elsif ($DBtype eq '') { im_err("no DB type defined.\n"); return -2; } else { im_err("DB type $DBtype is not supported.\n"); return -2; } im_debug("history database: $dbfile\n") if (&debug('history')); my($db, $fd); if ($DBtype eq 'DB') { $db = tie %History, 'DB_File', $dbfile, O_RDONLY(), 0444; } elsif ($DBtype eq 'NDBM') { $db = tie %History, 'NDBM_File', $dbfile, O_RDONLY(), 0444; } elsif ($DBtype eq 'SDBM') { if (&win95p || &os2p) { $db = tie %History, 'SDBM_File', $dbfile, O_RDONLY(), 0444; } else { $db = tie %History, 'SDBM_File', $dbfile, O_RDONLY(), 0444; } } unless ($db) { im_err "history: cannot access $dbfile ($!).\n"; return -1; } if ($DBtype eq 'DB') { $fd = $db->fd; if ($fd < 0) { im_err "history: cannot access $dbfile (fd = $fd)\n"; return -1; } } return 0; } sub my_history_close() { if ($nodbfile) { im_err("no database specified.\n"); return; } untie %History; } sub my_history_lookup($$) { if ($nodbfile) { im_err("no database specified.\n"); return (); } my($msgid, $field) = @_; $msgid =~ s/^<(.*)>$/$1/; if (defined($History{$msgid})) { if ($field == LookUpAll) { return split("\t", $History{$msgid}); } else { my @flds = split("\t", $History{$msgid}); return $flds[$field]; } } else { if ($field == LookUpAll) { return (); } else { return ''; } } } __END__ =head1 NAME imhsync - refile mail/news messages by another DB =head1 SYNOPSIS B [OPTIONS] =head1 DESCRIPTION The I command handles mail/news messages by another DB. This command is provided by IM (Internet Message). =head1 OPTIONS =over 5 =item I<-d, --db=STRING> reference DB. =item I<-f, --folder=STRING> folder to be refiled. =item I<-v, --verbose={on,off}> Print verbose messages when running. =item I<--debug=DEBUG_OPTION> Print debug messages when running. =item I<-h, --help> Display help message and exit. =item I<--version> Output version information and exit. =back =head1 COPYRIGHT IM (Internet Message) is copyrighted by IM developing team. You can redistribute it and/or modify it under the modified BSD license. See the copyright file for more details. =cut ### Copyright (C) 1997, 1998, 1999 IM developing team ### All rights reserved. ### ### Redistribution and use in source and binary forms, with or without ### modification, are permitted provided that the following conditions ### are met: ### ### 1. Redistributions of source code must retain the above copyright ### notice, this list of conditions and the following disclaimer. ### 2. Redistributions in binary form must reproduce the above copyright ### notice, this list of conditions and the following disclaimer in the ### documentation and/or other materials provided with the distribution. ### 3. Neither the name of the team nor the names of its contributors ### may be used to endorse or promote products derived from this software ### without specific prior written permission. ### ### THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS ``AS IS'' AND ### ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ### IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ### PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TEAM OR CONTRIBUTORS BE ### LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ### CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ### SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ### BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ### WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE ### OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN ### IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ### Local Variables: ### mode: perl ### End: im-151/imstore.in0000644000000000000000000001001211566752620012503 0ustar rootroot#! @im_path_perl@ ################################################################ ### ### imstore ### ### Author: Internet Message Group ### Created: Dec 31, 1995 ### Revised: Apr 23, 2007 ### BEGIN { @im_my_siteperl@ @im_src_siteperl@ }; $Prog = 'imstore'; my $VERSION_DATE = "20110525"; my $VERSION_NUMBER = "151"; my $VERSION = "${Prog} version ${VERSION_DATE}(IM${VERSION_NUMBER})"; my $VERSION_INFORMATION = "${Prog} (IM ${VERSION_NUMBER}) ${VERSION_DATE} Copyright (C) 1999 IM developing team This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. "; use IM::Config; use IM::MsgStore; use IM::Util; use integer; use strict; use vars qw($Prog $EXPLANATION @OptConfig $opt_dst $opt_noscan $opt_verbose $opt_debug $opt_help $opt_version); ## ## Environments ## $EXPLANATION = "$VERSION store mail/news message to a folder Usage: $Prog [OPTIONS] "; @OptConfig = ( 'dst;s;+inbox;' => 'Set destination folder', 'verbose;b;;' => 'With verbose messages', 'debug;d;;' => "With debug message", 'help;b;;' => "Display this help and exit", 'version,V;b;;' => "Output version information and exit", ); ## ## Profile and option processing ## init_opt(\@OptConfig); read_cfg(); read_opt(\@ARGV); # help? print("${VERSION_INFORMATION}") && exit $EXIT_SUCCESS if $opt_version; help($EXPLANATION) && exit $EXIT_SUCCESS if $opt_help; debug_option($opt_debug) if $opt_debug; &process_stdin(); sub process_stdin() { my @Message = (); while () { push(@Message, $_); } &store_message(\@Message, $opt_dst, 1); &exec_getsbrfile($opt_dst); } __END__ =head1 NAME imstore - store mail/news message to a folder =head1 SYNOPSIS B [OPTIONS] =head1 DESCRIPTION The I command get mail/new message from the standard input into a folder. The new message being incorporated is assigned the next highest number in the folder. This command is provided by IM (Internet Message). =head1 OPTIONS =over 5 =item I<-d, --dst=FOLDER> Set target folder. Default value is "+inbox". =item I<-v, --verbose={on,off}> Print verbose messages when running. =item I<--debug=DEBUG_OPTION> Print debug messages when running. =item I<-h, --help> Display help message and exit. =item I<--version> Output version information and exit. =back =cut ### Copyright (C) 1997, 1998, 1999 IM developing team ### All rights reserved. ### ### Redistribution and use in source and binary forms, with or without ### modification, are permitted provided that the following conditions ### are met: ### ### 1. Redistributions of source code must retain the above copyright ### notice, this list of conditions and the following disclaimer. ### 2. Redistributions in binary form must reproduce the above copyright ### notice, this list of conditions and the following disclaimer in the ### documentation and/or other materials provided with the distribution. ### 3. Neither the name of the team nor the names of its contributors ### may be used to endorse or promote products derived from this software ### without specific prior written permission. ### ### THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS ``AS IS'' AND ### ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ### IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ### PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TEAM OR CONTRIBUTORS BE ### LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ### CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ### SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ### BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ### WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE ### OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN ### IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ### Local Variables: ### mode: perl ### End: im-151/Makefile.PL0000644000000000000000000001323307600620272012442 0ustar rootroot### This -*- perl -*- script writes the Makefile by ukai ### ### Author: Internet Message Group ### Created: Apr 23, 1997 ### Revised: Dec 20, 2002 ### ### perl Makefile.PL ### make ### make install or make install_rpop ### require 5.004; use Config; BEGIN { $VERSION = '100'; $im_db_type = "DB"; # this should be in BEGIN section. if ($im_db_type) { @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File SDBM_File ODBM_File); unshift(@AnyDBM_File::ISA, "${im_db_type}_File"); print "try DB type: @AnyDBM_File::ISA\n"; } else { print "ignore DB type\n"; } } if (open(CONFIN, "configure.in")) { while () { /^im_/ && eval "\$$_"; } close(CONFIN); } if ($Config{'osname'} ne 'MSWin32') { $prefix = "/usr/local"; $libdir = "\$exec_prefix/lib"; } else { $prefix = $Config{'prefix'}; $prefix =~ s:\\:/:g; $libdir = $Config{'sitelib'}; $libdir =~ s:\\:/:g; } chomp($im_hostname); if ($Config{osname} eq "solaris") { $im_usecl='yes'; } else { $im_usecl='no'; } $im_nosync='no'; # checking DB type if ($im_db_type) { use AnyDBM_File; $im_db_type="$AnyDBM_File::ISA[0]"; $im_db_type =~ s/_File$//; print "Your DB type is $im_db_type\n"; } # generate im*.in -> im*.PL opendir(DIR, ".") or die "cannot opendir .: $!"; @programs_to_install = @pl_files = (); foreach (grep(/\.in$/ && !/^(configure|Makefile|IM)/, readdir DIR)) { open(IN, "$_") or die "cannot open $_.in: $!"; s/.in$//; push(@programs_to_install, "$_"); open(PL, ">$_.PL") or die "cannot open $_.PL: $!"; push(@pl_files, "$_.PL"); print PL <<"!SUBST!"; use Config; (\$file = \$0) =~ s/\\.PL\$//i; open(OUT, ">\$file") or die "Cannot create \$file: $!"; chmod(0755, \$file); print "Extracting \$file (with variable substitutions)\n"; print OUT << \"!GROK!THIS\"; \$Config{'startperl'} !GROK!THIS while () { /^#! \\\@im_path_perl\\\@/ && next; s/\\\@im_my_siteperl\\\@//; s/\\\@im_src_siteperl\\\@//; print OUT; } close(OUT); exit 0; __END__ !SUBST! while () { print PL $_; } close(IN); close(PL); } closedir(DIR); # generate IM/Config.pm.in -> IM/Config.pm # cnf.im/SiteConfig.in -> cnf.im/SiteConfig @generate_files = ('IM/Config.pm', 'cnf.im/SiteConfig'); foreach (@generate_files) { open(IN, "$_.in") or die "cannot open $_.in: $!"; open(PM, ">$_") or die "cannot open $_: $!"; print "Extracting $_ (with variable substitutions)\n"; while () { s/\@prefix\@/$prefix/; # Config.pm.in s/\@exec_prefix\@/$prefix/; s/\@libdir\@/$libdir/; s/\@im_db_type\@/$im_db_type/; s/\@im_file_attr\@/$im_file_attr/; s/\@im_hostname\@/$im_hostname/; s/\@im_usecl\@/$im_usecl/; s/\@im_nosync\@/$im_nosync/; print PM; } close(IN); close(PM); } closedir(DIR); # write Makefile use ExtUtils::MakeMaker; WriteMakefile( 'NAME' => 'IM', 'VERSION' => $VERSION, 'EXE_FILES' => \@programs_to_install, 'MAN1PODS' => {}, 'MAN3PODS' => {}, 'PREFIX' => $prefix, 'clean' => { FILES => join(' ', '$(EXE_FILES)', @pl_files, @generate_files) }, 'dist' => { COMPRESS => 'gzip -9f', SUFFIX => 'gz' } ); # special rules sub MY::postamble { my($self) = shift; my(@m); if ($Config{'osname'} ne 'MSWin32') { push (@m, qq{ prefix=$prefix exec_prefix=$prefix libdir=\$(exec_prefix)/lib IM_SITECONFIG_DIR=\$(libdir)/im install:: install_config install_config: cnf.im/SiteConfig \$(MKPATH) \$(IM_SITECONFIG_DIR) for cnf_im in SiteConfig ; do \\ if \$(TEST_F) \$(IM_SITECONFIG_DIR)/\$\$cnf_im; then \\ (\$(CP) cnf.im/\$\$cnf_im \$(IM_SITECONFIG_DIR)/\$\$cnf_im.new;) \\ else \\ (\$(CP) cnf.im/\$\$cnf_im \$(IM_SITECONFIG_DIR);) \\ fi \\ done \$(CHMOD) -R 0644 \$(IM_SITECONFIG_DIR)/* \$(CHMOD) 755 \$(IM_SITECONFIG_DIR) uninstall:: uninstall_config uninstall_config:: \$(RM_F) \$(IM_SITECONFIG_DIR)/SiteConfig install_rpop: install \$(PERL) -e 'chown(0, (getgrnam("mail"))[2], \@ARGV) and chmod(04755, \@ARGV);' \$(INSTALLSCRIPT)/imget }); } else { push (@m, qq{ install:: install_progs install_progs: \$(CP) Win32\*.exe \$(INSTALLBIN) }); join "", @m; } } ### Copyright (C) 1997, 1998, 1999 IM developing team ### All rights reserved. ### ### Redistribution and use in source and binary forms, with or without ### modification, are permitted provided that the following conditions ### are met: ### ### 1. Redistributions of source code must retain the above copyright ### notice, this list of conditions and the following disclaimer. ### 2. Redistributions in binary form must reproduce the above copyright ### notice, this list of conditions and the following disclaimer in the ### documentation and/or other materials provided with the distribution. ### 3. Neither the name of the team nor the names of its contributors ### may be used to endorse or promote products derived from this software ### without specific prior written permission. ### ### THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS ``AS IS'' AND ### ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ### IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ### PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TEAM OR CONTRIBUTORS BE ### LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ### CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ### SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ### BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ### WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE ### OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN ### IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. im-151/imjoin.in0000644000000000000000000002113611566752617012325 0ustar rootroot#! @im_path_perl@ ################################################################ ### ### imjoin ### ### Author: Internet Message Group ### Created: May 5, 1997 ### Revised: Apr 23, 2007 ### BEGIN { @im_my_siteperl@ @im_src_siteperl@ }; $Prog = 'imjoin'; my $VERSION_DATE = "20110525"; my $VERSION_NUMBER = "151"; my $VERSION = "${Prog} version ${VERSION_DATE}(IM${VERSION_NUMBER})"; my $VERSION_INFORMATION = "${Prog} (IM ${VERSION_NUMBER}) ${VERSION_DATE} Copyright (C) 1999 IM developing team This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. "; ## ## Require packages ## use IM::MsgStore qw(store_message); use IM::Config; use IM::Util; use integer; use strict; use vars qw($Prog $EXPLANATION @EnvConfig @OptConfig $opt_noscan $opt_src $opt_dst $opt_verbose $opt_debug $opt_help $opt_version); ## ## Environments ## $EXPLANATION = "$VERSION join Message/partial messages Usage: imjoin [OPTIONS] MSGS "; @OptConfig = ( 'src;f;;' => "Source folder", 'dst;s;+inbox;' => "Destination folder", 'verbose;b;;' => 'With verbose messages', 'debug;d;;' => "With debug message", 'help;b;;' => "Display this help and exit", 'version,V;b;;' => "Output version information and exit", ); ## ## Profile and option processing ## init_opt(\@OptConfig); read_env(\@EnvConfig); read_cfg(); read_opt(\@ARGV); # help? print("${VERSION_INFORMATION}") && exit $EXIT_SUCCESS if $opt_version; help($EXPLANATION) && exit $EXIT_SUCCESS if $opt_help; debug_option($opt_debug) if $opt_debug; ## ## Main ## my @msgs = @ARGV; my $msg = $msgs[0]; my @Message = join_msg(@msgs); if ($opt_dst eq "stdout") { print join('', @Message); } else { store_message(\@Message, $opt_dst, 1); } exit $EXIT_SUCCESS; sub join_msg($) { my @msgs = @_; my @paths; my @index; my @Message; local $_; if ($#msgs == 0) { # search partial messages using history_db @paths = get_paths("$opt_src/$msgs[0]"); } else { # all partial message is specified by command line require IM::Folder && import IM::Folder qw(message_name); my $msg; foreach $msg (@msgs) { if ($msg =~ /^\//) { push(@paths, $msg); } elsif ($msg =~ /(.*)\/(\d+)/) { push(@paths, message_name($1, $2)); } else { push(@paths, message_name($opt_src, $msg)); } } } # sort each part number on each part my $total = 0; my($path, $header); foreach $path (@paths) { if (im_open(\*MSG, "<$path")) { $/ = "\n\n"; $header = ; $/ = "\n"; close(MSG); } $header =~ s/\n\s+//g; $header =~ s/[ \t]+//g; $header =~ s/\n/;\n/g; $header = "\n$header;\n"; my $number = 0; my $this_total = 0; if ($header =~ /\nContent-Type:Message\/partial(;[^\n]+)\n/i) { my $rest = $1; if ($rest =~ /;number=(\d+);/i) { $number = $1; } if ($rest =~ /;total=(\d+);/i) { $this_total = $1; } } if ($number == 0 || $this_total == 0) { im_warn("$_: not a partial message, skipping.\n"); next; } if ($total) { if ($total != $this_total) { im_warn("$_: total of partial messages mismatch, skipping.\n"); next; } } else { $total = $this_total; } $index[$number] = $path; im_notice("$path is part $number.\n"); } # check existance of all partial messages my $missing = 0; my $i; for ($i = 1; $i <= $#index; $i++) { if ($index[$i] eq '') { im_err("part $i is missing.\n"); exit $EXIT_SUCCESS; } } # show in sequence for ($i = 1; $i <= $#index; $i++) { if (im_open(\*MSG, "<$index[$i]")) { $/ = "\n\n"; if ($i == 1) { # first partial message my $header = ; # header of enclosing message my $skip = 0; foreach (split("\n", $header)) { next if (/^[ \t]/ && $skip); $skip = 0; if (/^(Content|Message-ID|Subject|Encrypted|MIME-Version)/i) { $skip = 1; next; } last if (/^$/); push(@Message, "$_\n"); } $header = ; $skip = 0; foreach (split("\n", $header)) { next if (/^[ \t]/ && $skip); $skip = 0; unless (/^(Content-|Subject|Message-ID|Encrypted|MIME-Version)/i || /^[ \t]/) { $skip = 1; next; } last if (/^$/); push(@Message, "$_\n"); } push(@Message, "\n"); } else { # skip header part ; } $/ = "\n"; while () { push(@Message, $_); } close(MSG); } } return @Message; } sub get_paths($) { my $msg = shift; my $path; local $_; unless (msgdbfile()) { im_die("need history database to join by one message.\n"); exit $EXIT_ERROR; } require IM::History; import IM::History qw(history_open history_lookup history_close); # get master Message-ID my $header = ''; if ($msg =~ /^\+/) { $path = &expand_path($msg); } else { $path = $msg; } if (im_open(\*MSG, "<$path")) { $/ = "\n\n"; $header = ; $/ = "\n"; close(MSG); } if ($header eq '') { im_err("specified message is not found at $path.\n"); exit $EXIT_ERROR; } $header =~ s/\n\s+//g; $header =~ s/[ \t]+//g; $header =~ s/\n/;\n/g; $header = "\n$header"; my $master = ''; if ($header =~ m|\nContent-Type:Message/partial;(.*;)?id=([^;]+);|i) { $master = $2; $master =~ s/^"(.*)"$/$1/; } else { im_err("specified message is not a partial.\n"); exit $EXIT_ERROR; } im_notice("Master Message-ID: $master.\n"); # get Message-IDs of partial if (history_open(0) < 0) { im_err("cannot open history.\n"); exit $EXIT_ERROR; } my $ids = history_lookup("partial:$master", 'LookUpMsg'); if ($ids eq '') { im_err("information on partial messages is not found in history.\n"); exit $EXIT_ERROR; } im_notice("partial Message-IDs: $ids.\n"); # get path and part number on each part my @paths; foreach (split(',', $ids)) { my $locate = history_lookup($_, 'LookUpMsg'); if ($locate eq '') { im_warn("message $_ not found, skipping.\n"); next; } my $path = &expand_path($locate); if ($path eq '') { im_warn("no path for message $locate, skipping.\n"); next; } push(@paths, $path); } history_close(); return @paths; } __END__ =head1 NAME imjoin - join Message/partial messages =head1 SYNOPSIS B [OPTIONS] MSGS =head1 DESCRIPTION The I command joins Message/partial messages. This command is provided by IM (Internet Message). =head1 OPTIONS =over 5 =item I<-s, --src=FOLDER> Source folder. =item I<-d, --dst=FOLDER> Destination folder. Default value is "+inbox". =item I<-v, --verbose={on,off}> Print verbose messages when running. =item I<--debug=DEBUG_OPTION> Print debug messages when running. =item I<-h, --help> Display help message and exit. =item I<--version> Output version information and exit. =back =head1 COPYRIGHT IM (Internet Message) is copyrighted by IM developing team. You can redistribute it and/or modify it under the modified BSD license. See the copyright file for more details. =cut ### Copyright (C) 1997, 1998, 1999 IM developing team ### All rights reserved. ### ### Redistribution and use in source and binary forms, with or without ### modification, are permitted provided that the following conditions ### are met: ### ### 1. Redistributions of source code must retain the above copyright ### notice, this list of conditions and the following disclaimer. ### 2. Redistributions in binary form must reproduce the above copyright ### notice, this list of conditions and the following disclaimer in the ### documentation and/or other materials provided with the distribution. ### 3. Neither the name of the team nor the names of its contributors ### may be used to endorse or promote products derived from this software ### without specific prior written permission. ### ### THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS ``AS IS'' AND ### ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ### IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ### PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TEAM OR CONTRIBUTORS BE ### LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ### CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ### SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ### BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ### WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE ### OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN ### IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ### Local Variables: ### mode: perl ### End: im-151/man/0000755000000000000000000000000010613117466011245 5ustar rootrootim-151/man/imclean.jis0000644000000000000000000000076006571360410013364 0ustar rootroot IMCLEAN $B%^%K%e%"%k(B $B5!G=(B: trash $B%U%)%k%@$NA]=|(B $B%*%W%7%g%s(B: --src= +trash $B%U%)%k%@$NBe$o$j$KA]=|$r9T$J$&%U%)%k%@(B $B$r;XDj$9$k!#(B --noharm= on: $BF0:n$NFbMF$rI=<($9$k$@$1$G!" on: $BF0:n$K4X$9$k>pJs$rI=<($7$J$$!#(B --verbose= on: $B=hM}$K4X$9$k$5$^$6$^$J>pJs$rI=<($9$k!#(B --debug= on: $B%G%P%C%0%a%C%;!<%8$rI=<($9$k!#(B --help= on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B im-151/man/00readme0000644000000000000000000000011506440203720012552 0ustar rootrootThis directory contains manuals for im* commands but not perfect yet, sorry. im-151/man/imcat.jis0000644000000000000000000000060606571360410013050 0ustar rootroot IMCAT $B%^%K%e%"%k(B $B5!G=(B: $B%a%C%;!<%8$NI=<((B $B%*%W%7%g%s(B: --src= $BI=<($9$k%a%C%;!<%8$,$"$k%U%)%k%@$r;XDj$9$k!#(B --join= on: message/partial $B$N7k9g$r9T$J$C$FI=<($9$k!#(B --verbose= on: $B=hM}$K4X$9$k$5$^$6$^$J>pJs$rI=<($9$k!#(B --debug= on: $B%G%P%C%0%a%C%;!<%8$rI=<($9$k!#(B --help= on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B im-151/man/imsetup.jis0000644000000000000000000000045406571360412013444 0ustar rootroot IMSETUP $B%^%K%e%"%k(B $B5!G=(B: IM $B$r;H$&$?$a$N%;%C%H%"%C%W(B $B%*%W%7%g%s(B: --noharm= on: $BF0:n$NFbMF$rI=<($9$k$@$1$G!" on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B im-151/man/imtar.jis0000644000000000000000000000074406571360414013076 0ustar rootroot IMTAR $B%^%K%e%"%k(B $B5!G=(B: $B%U%)%k%@$NCf?H$r(B1$B$D$N%a%C%;!<%8$K$^$H$a$k(B $B%*%W%7%g%s(B: --src= $B$^$H$a$k85%U%)%k%@$r;XDj$9$k!#(B --dst= $B$^$H$a@h$N%U%!%$%k$r;XDj$9$k!#(B --noharm= on: $BF0:n$NFbMF$rI=<($9$k$@$1$G!" on: $B=hM}$K4X$9$k$5$^$6$^$J>pJs$rI=<($9$k!#(B --debug= on: $B%G%P%C%0%a%C%;!<%8$rI=<($9$k!#(B --help= on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B im-151/man/imsort.jis0000644000000000000000000000110606571360413013267 0ustar rootroot IMSORT $B%^%K%e%"%k(B $B5!G=(B: $B%a%C%;!<%8$N%=!<%H(B $B%*%W%7%g%s(B: --src= $B%=!<%H$r9T$J$&%U%)%k%@$r;XDj$9$k!#(B --field= $B%=!<%H$r9T$&BP>]$N%U%#!<%k%I$r;XDj$9$k!#(B --mode= $B%=!<%H$r9T$&%b!<%I(B (date, num, text, ml $B$N$$$:$l$+(B) $B$r;XDj$9$k!#(B --noharm= on: $BF0:n$NFbMF$rI=<($9$k$@$1$G!" on: $B=hM}$K4X$9$k$5$^$6$^$J>pJs$rI=<($9$k!#(B --debug= on: $B%G%P%C%0%a%C%;!<%8$rI=<($9$k!#(B --help= on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B im-151/man/imjoin.jis0000644000000000000000000000061006571360412013235 0ustar rootroot IMJOIN $B%^%K%e%"%k(B $B5!G=(B: $B%a%C%;!<%8$N7k9g(B $B%*%W%7%g%s(B: --src= $B7k9g85$N%a%C%;!<%8$,$"$k%U%)%k%@$r;XDj$9$k!#(B --dst= $B7k9g@h$N%a%C%;!<%8$rCV$/%U%)%k%@$r;XDj$9$k!#(B --verbose= on: $B=hM}$K4X$9$k$5$^$6$^$J>pJs$rI=<($9$k!#(B --debug= on: $B%G%P%C%0%a%C%;!<%8$rI=<($9$k!#(B --help= on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B im-151/man/imput0000644000000000000000000006143706777046764012363 0ustar rootroot Manual for IMPUT 1. Outline * Messages of mail and news are dispatched by way of SMTP/NNTP. (If there is header field such as To: or Cc:, imput dispatches as mail by way of SMTP. If there is header field such as Newsgroups:, imput dispatches as news * Multiple SMTP/NNTP servers can be specified in the configuration file. Imput try one server at a time, and select next server on failure, continuously select servers until it successfully post the message. The service port of each server can be configured. * Japanese in header field can be converted into the MIME(RFC2047) form. * Japanese written with EUC/SJIS can be converted into JIS(ISO-2022-JP). * Text of a message which contains 8bit code is converted into quoted-printable or base64 (RFC2045). * When error occurs while dispatching, error message of Delivery Status Notification form (RFC1891,RFC1892,RFC1894) is generated. * BCC (blind carbon copy) is sent with MIME Message/rfc822 capsulated form (RFC2045). * DCC (distribution carbon copy) is supported. (Addresses will not be show in header field and messages are not capsulated like BCC.) * FCC (folder carbon copy) is also supported. * Message-Id:/Date: header fields are generated automatically. (Therefore, same Message-Id:/Date remains in the message which saved by FCC) * "List:;" (RFC822) style addressing is supported. * "Group:u1,u2;" (RFC822) style addressing is also supported. (The message will be sent to u1 and u2, and the address will be rewritten into "group:;" form) * "Group:/file;" (non-standard) style addressing is supported. (/file is a path of local file and addresses described in the file is read and mail is sent aiming at those addresses. The address will be rewritten into "group:;" form.) * A big size message can be divided into MIME Message/partial form (RFC2045). * Aliasing for mail addresses at individual level is supported (like MH). * Aliasing for domain part of addresses at individual level is supported. (hostalias form of BIND.) * History of all dispatched messages are recorded (like syslog of sendmail). * MH style Annotation is supported (except Forwarded:). * SIZE and DSN (new plan of Return-Receipt-To:) in ESMTP are supported. * imput can be used as replacement of send in MH or sendmail which is called from UCBMAIL or something else. 2. Usage * with Mew Please read the document of Mew. * Direct use from "shell"s imput [options] [list of destinations|path of a message to be sent] Parameters between [ and ] are optional. The option is described later. "list of destinations" are mail addresses delimited by the blank. If list of destinations are specified and no message file is specified by the option, the message is read from a standard input. Path of a message should be absolute-path form. * with MH Please specify imput for sendproc of ~/.mh_profile. Example: sendproc: /home/motonori/cmd/imput * with mh-e (Ver.4 or later) Please execute (setq mh-send-prog "imput"). * with UCB Mail Please set an environment variable, "sendmail". Example: setenv sendmail /home/motonori/cmd/imput (For csh etc.). It is possible to describe in mailrc. Example: set sendmail /home/motonori/cmd/imput * with Mail clients which directly executes the sendmail Please replace /usr/lib/sendmail with imput. (/usr/lib/sendmail may be /usr/sbin/sendmail or something else. This is different in dependence on OS). Please devise on location when it is necessary to leave original sendmail for the reception of messages. * with News clients which executes "inews" Please replace inews with imput. Note: Options other than -h are not supported. 3. Options Options which can be specified with a command line or environment variables are shown below. Current settings are displayed with imput --help. Case of letters in option names are insensitive. The form of the argument when the option is accompanied by the argument is shown by the following signs. "on" or "off" (can be omitted) numerics character string character strings delimited with "," The descriptions below are based on forms as command line options. But all options "--Option=value" can also be described in Config file like "Option=value". [Options concerning setting] --Help= help message is displayed. --Config= block name which should be referred in configuration files. specify WORD at to select a block which starts from the line labeled "case WORD" in configuration file. If multiple names are specified, each block is sequentially evaluated. If address information of a message is extracted from header part of the message (by using --ObeyHeader or --Message option), block name can be specified as a value for "Config:" header field. "Config:" header field will be stripped from the message when it dispatched. --Require= path of a perl script which will be evaluated at initialization. (c.f. Hooks) --Debug= debugging mode (every modules run in debugging mode). --DebugFlag= module names to be set in debugging mode. specify XXX to make &debug("xxx") in the script true. --Verbose verbose mode. [Options concerning server information] --SMTPservers= SMTP servers (and port numbers) are specified (in server_name[/remote_port][%local_port] forms). When /remote_port is omitted, SMTP(25) will be assumed. If local_port is specified, use SSH port forwarding. --TryNextOnFatal= on: Even if permanent error is detected, try to the next server specified with --SMTPservers option. off: If permanent error is detected, rest of servers are not tried. --NNTPservers= NNTP servers (and port numbers) are specified (in server_name[/remote_port][%local_port] forms). When /remote_port is omitted, NNTP(119) will be assumed. If local_port is specified, use SSH port forwarding. --EmgSMTPsvrs= SMTP servers which should be tried when a message has a permanent error and cannot bounce back to any servers specified with --SMTPservers. --Clientname= host name to be used when imput introduces oneself with HELO of SMTP. --ESMTP= on: try ESMTP first even when a SMTP server does not show it can communicate with ESMTP. off: only when a SMTP server shows that it can accept ESMTP. --NewsPost= on: posting of news is permitted (messages are posted if necessary). off: posting of news is prohibited. --SSHServer= Use the specified host as an SSH port relay server. [Options concerning header field generation] --User= local part (user name) of sender's address. The login name is used in default. --Name= full name of sender. used for "Full Name" of Full Name . In default, content of the GCOS field of password file is used. --NameInComment= off: From: Full Name is generated. on: From: User@FromDomain (Full Name) is generated. --Org= Information applied to Organization: header field. --FromDomain= default domain part of sender. --ToDomain= default domain part of recipient. When @domain part of recipient is not specified, this @value is supplemented. --ObeyMTAdomain= on: default domain part should be supplied at MTA (sendmail etc.) and imput should not supply it. --MsgIdDomain= domain part to be used in a value of Message-Id: header field. domain part specified by --FromDomain option will be used when --MsgIdDomain option is not specified. --MsgId= on: Message-Id: will be generated by imput. off: Message-Id: will not be generated by imput. (it will be generated by MTA). --PidMsgId= on: process ID will be included to a character string in Message-ID: header value. This option is preferable to specify when two or more messages will be occasionally sent in one second. --NoMsgIdForNews on: make Message-Id: header generated by NNTP server for messages which posted with NNTP. --Date= on: Date: is generated automatically by imput. off: Date: is not generated automatically by imput. (it will be supplemented with MTA) --NewsGMTdate= on: generate the date information by GMT. GMT might be recommended in news (RFC1036). off: local timezone is used. --NScmpl= on: completion of domain part by using name server is enabled. parameter of domain or search defined in /etc/resolv.conf will be used by the resolver. off: completion by using name server is disabled. --AliasesFile= path of alias files for mail addresses. Example: alias1: u1 alias2: u2@domain alias3: User-Three alias4: u4,u5 alias5: group:u6,u7; alias6: group:/address/list/file; : --HostAliases= path of alias files for domain part completion. Example: alias1 realname1.domain alias2 realname2.domain : --ShowRcpts= on: Apparently-To: header field will be added by MTA. off: To: undisclosed-recipients:; header field will be added by imput not to be added Apparently-To: header field by MTAs. --Subj=(-s) a character string to be added as a value of Subject:. ignored if a message has a Subject: header already. --ObeyHeader=(-t) on: extract addresses of recipients from header part of a message. the message will be posted if Newsgroups: header field is found. recipients specified in the command line will be ignored. off: To:, Cc:, Newsgroups: of header will not be interpreted. It is necessary to specify the address etc. in the command line. --AddHeader= Any header to be added. e.g.: --AddHeader='X-Header: value' [Options concerning delivery operation of message] --MeToo=(-om) on: send messages also to the sender. (equivalent to specify "Dcc: the sender"). --Receipt= on: request to send back the delivery status notification (depend on RFC1891). --MIMEbcc= on: dispatch BCC by MIME Message/rfc822 style encapsulation (RFC2045). off: dispatch BCC without encapsulation. --NewsCheck= on: when To: or Cc: header field exists, no posting is performed for news. off: the message will be posted if Newsgroups: header exists. --Group= news groups which should be posted. this overrides Newsgroups: header field in original messages. --Dist= on: changes to the redistribution mode. Resent-*: style header fields are used. --DistMsg= path of a message to be redistributed. recipients should be specified in the command line or in header part of a file specified with --Message option. --SMTP=(-bs) on: interactive SMTP mode (like sendmail -bs). [Options concerning message filing] --Folder= draft folder in which a draft message to be dispatched located. --TrashMark= a character which should be added before the name of a draft message file when the message is dispatched successfully. --Message= Path of a message to be dispatched. if relative path is specified, it will be considered as relative from a folder specified with --Folder option. --Fcc= folder name in which dispatched message should be preserved. --FccPartial= on: divided with multipart/partial form when preserving. # --FccDir= preserved in MH (directory) style. # --FccFile= preserved in mbox (single file) style. [Options concerning Japanese Handling] --JPheader= on: JIS(ISO-2022-JP) characters in header fields are encoded with the MIME (RFC2047) form. off: JIS characters are preserved as is. --HdrQEncoding= on: JIS characters are encoded with Q-encoding method. off: JIS characters are encoded by B-encoding method. --NoHdrFolding= on: no line folding off: line folding of about 72 characters a line. --JPconv= on: EUC/SJIS->JIS conversion allowed. off: EUC/SJIS->JIS conversion prohibited. --DefCode= The default code when it is not possible to distinguish automatically (EUC/SJIS/8BIT). --8to7= on: The message body which includes 8bit codes should be encoded to 7bit. Either base64 or quoted-printable is automatically selected by the rate of 8bit codes. off: The message body which includes 8bit codes will not be encoded to 7bit. --8BitLabel= value for Content-Type: when body has 8bit codes and Mime-Version is not found in header part. [Options concerning processing of message body] --IgnoreDot=(-oi) on: not to interpret a line only of '.' as the terminal of a message. off: interpret a line only of '.' as the terminal of a message. --MultipartAdd= files to be added as a part of multiparted message. if this option specified multiple times, each file is added as a separate part in that order. If original message is not a multiparted message, the message becomes a multiparted automatically. If original message is a multiparted message, a new part is simply added. [Options concerning message division] --Lines= number of lines by which large mail is divided. (divided with MIME Message/partial form (RFC2045).) when 0 is specified, division is not done. --Sleep= interval of transmissions of divided messages (in seconds). [Options concerning queue processing] --QueueDir= path of a directory to be used as queue. When the directory does not exist, it will be created automatically (default is ~/.im/queue). --JustQueuing=(-odq) on: message is preserved in the queue without dispatching attempt. --Queuing= on: When a message cannot be passed to the server, the message is preserved in the queue instead of bouncing back. --ProcessQueue=(-q) on: messages preserved in the queue are processed to be dispatched. --QueueStatus=(-bp) on: list of preserved messages is displayed. [Options concerning error processing] --Report= on: notify the error by mail when transmission error occurs. off: display messages on transmission error. --Dead= path of a file in which a message will be preserved when the message cannot be sent (mbox form, default is ~/.im/dead.letter). [Options concerning recording history of dispatching activities] --Annotate= on: Replied: or Resent: header fields will be prepended on a message which is referenced with References: or In-Reply-To: field. (Forwarded: is not yet supported.) --Log= path of file which records history. If is NULL, nothing recorded (default is ~/.im/putlog). --Syslog= on: recorded via syslog with MAIL/INFO. Besides above, some compatible options with the send command of MH and inews exist. 4. Interpreted environment variable HOSTALIASES equivalent to --HostAliases option SMTPSERVERS equivalent to --SMTPservers option NNTPSERVERS equivalent to --NNTPservers option ORGANIZATION equivalent to --Org option MSGIDDOMAIN equivalent to --Msgid option FROMDOMAIN equivalent to --FromDomain option TODOMAIN equivalent to --ToDomain option NAME used for comment part of From: SIGNATURE used for comment part of From: (overrides NAME) 5. Handling of header field 5.1 Destinations of messages When it is specified to extract address information from header part of a message, the following header field will be referred: To:, Cc:, Dcc:, Bcc: Copies of a messages for recipients specified in Bcc: are encapsulated with MIME message/rfc822. @MYSELF@ or @ME@ can be specified in these header field for a value. When these values are specified, it will be replaced with the address of sender (which will be shown in From:) of a message. 5.2 expansion of aliases and completion of addresses As for the address of following header field, rewritten by the definition under files which are specified by --HostAliases or --AliasesFile: To:, Cc:, Bcc:, Dcc:, Resent-To:, Resent-Cc:, Resent-Bcc:, Resent-Dcc: When @domain part does not exist in addresses, domain name specified with --ToDomain is appended. (Only when you do not specify the --ObeyMTAdomain option). As for the address of following header field, rewritten by the definition under files which are specified by --HostAliases or --AliasesFile: From:, Resent-From:, Reply-To, Resent-Reply-To, Errors-To, Return-Receipt-To: When @domain part does not exist in addresses, domain name specified with --FromDomain is appended (Only when you do not specify the --ObeyMTAdomain option). 5.3 Fcc: If Fcc: header field (or --Fcc command line option) is specified, a copy of of the message is preserved in the folder specified after dispatching. 5.4 Date: and Message-Id: In some UA (User Agent; user's application for mail transmitting and receiving), Date: and Message-Id: field are not generated and it is expected to be generated by MTA (Mail Transfer Agent). In that case, a copy of message (preserved with Fcc:) does not have Date: or Message-Id: header field, and there is no way to identify message by specifying unique message ID. With imput, all copies of message will have Date: and Message-Id: field by default. 5.5 Sender: and Originator: If there is From: header field in a message to be sent and the value of From: header field is different from an address which is configured to be added automatically, Sender: header field with the configured address is added automatically. When the message is sent as news, Originator: field name is used instead of Sender:. 5.6 Redistribute and Resent-*: header fields When a message is dispatched in redistribution mode, addresses etc. concerning to redistribution are shown in Resent-To:, Resent-Cc:, Resent-Dcc:, Resent-Bcc:, Resent-From:, Resent-Reply-To:, Resent-Sender:, Resent-Date: and Resent-Message-Id: instead of To:, Cc:, Dcc:, Bcc:, From:, Reply-To:, Sender:, Date: and Message-Id:. If Resent-*: header fields exist already, they are rewritten to Prev-Resent-*: and new Resent-*: header fields for this redistri- bution are added. 5.7 Return-Receipt-To: So far, Return-Receipt-To: header field is used to request notification of successful delivery. Return-Receipt-To: is obsolete and SMTP extension for DSN (Delivery Status Notification) is defined in RFC1891 which can be used for telling to the receiver to respond about result of delivery. With imput, Return-Receipt-To: header field is deleted but the request is passed to the receiver in RFC1891 way. However, it is likely not to function if any MTA in a route to destination does not support RFC1891. 5.8 posting to news When Newsgroups: header field exists or newsgroups are specified with --Group option, the message is posted to news system. It fails unless all of the following header field exist: From: ,Subject: ,Newsgroups: since news system will check the existence of these header fields. Moreover, message body should not be empty. When following header fields already exist when dispatching to news system, the message will rejected (for instance, INN1.4 etc.): Path:, Received:, Return-Path:, NNTP-Posting-Host:, Xref: Therefore, these header fields are automatically deleted with imput for posting to news system. Moreover, when --NewsCheck option specified, even if Newsgroups: header field exists:, imput will not attempt to post if the following header fields are exist: To: ,Cc: ,Apparently-To: Newsgroups: header in a message will be converted into X-Newsgroups: header when sending the message as mail at the same time. Moreover, to avoid sending X-Newsgroups: header information to recipients of the message as mail, use BNewsgroups: header to specify news group name instead. 5.9 Config: value of Config: header field will be taken and specified configuration block will be used in configuration files if it is specified to extract addresses etc. information from header part of the message. 5.10 additional header fields Lines: header field which indicates number of lines of the message is generated automatically. Version information on imput will be shown in X-Dispatcher: header field. 6. Error processing When an error occurs when a message was about to be passed to a SMTP server or a NNTP server, error processing is done. When --Queuing option is specified at a case of temporary failure, the message is preserved in the queue. When --Queuing option is not specified and temporary failure or permanent error occurs, it is reported to the sender. When --Report=yes option is specified, the error is notified to the sender by mail. If a draft message is specified by --Message option (or equivalent options), trash-processing (The character specified with --TrashMark will be prepended to the file name) is done. When --Report=no option is specified, the error message is written to display and the message is preserved in the dead.letter file. However, when draft message is specified by --Message option (or equivalent options), the trash-processing is not done and the message file is left as it is and the message is not preserved even in dead.letter. In any case, the error is recorded in the dispatch log file (unless recording to log file is suppressed). 7. Environmental, set file A personal configuration file is ~/.im/Config and system wide one is /usr/local/lib/im/Config by default. The configuration method is common in all the "im" commands. However, a definition block which is delimited by the "case" line can be defined to select special configuration. The "case" line shows that a definition block starts there and the name of the block is described after the word "case". Settings between from top of the configuration file to the first "case" line of the file are treated as default definition. To write default definitions behind "case" lines, specify "case default". Definitions which can be shared by two or more block are started with "case blockname1,blockname2" line. A sample of configuration file is shown below: Lines=3000 #Name=NAKAMURA Motonori SMTPservers=mail.econ.kyoto-u.ac.jp NNTPservers=news.kuis.kyoto-u.ac.jp EmgSMTPsvrs=localhost FromDomain=econ.kyoto-u.ac.jp ToDomain=econ.kyoto-u.ac.jp Org=Faculty of Economics, Kyoto University, Japan case mew FromDomain=mew.org ToDomain=mew.org Org=Internet Message Group 8. Format of queue file When --JustQueuing option is specified or when --Queuing options is specified and dispatch of a message fails (temporary failure), the message is preserved in the queue. A preserved message is stored in a file and numbered from 1 sequentially. Content of a file is: internal state < empty line > RFC822 header part < empty line > RFC822 body part When imput is started with --QueueStatus option, information on preserved messages is displayed. When imput is started with --ProcessQueue option, delivery is attempted sequentially from the file of a small number. Messages in which the delivery fails are left in the queue as it is as long as it has not a permanent failure. 9. Format of dispatch log file Dispatching activities are recorded in a file by one action one line. Form is: date time proto=[p] server=[s] id=[m] from=[f] to=[t] stat=[r] and [p], [s], [m], [t], and [r] are as follows: [p]: smtp processed with SMTP esmtp processed with ESMTP nntp processed with NNTP fcc saved into FCC folder queue queued in queue directory dead-letter saved into dead.letter file on failure draft processing on a draft message [s]: server/port to connect port information will be omitted when the port of default is used. The final server will be recorded if all attempt to servers are failed. [m]: value of Message-Id: header [f]: sender address (config) "config" is a case name specified with Config: or --config option. (config) is omitted if Config: or --config option is not specified. [t]: recipient addresses, folder name or file name delimited with ',' if there are multiple recipients. addresses specified in BCC are enclosed with <>. [r]: sent dispatched successfully information on reception process ID etc are shown in (). skipped skipped to the next server failed was not dispatched successfully reason of the failure is shown in (). queued preservation to message queue preserved the draft message was left as it is 10. Hooks To want to make a special processing done personally in imput, the following are prepared as hooks in the imput script. $Hook_PreHeaderconv Just before the processing of the ISO-2022-JP header conversion. $Hook_PreFinalHeaderProc Just before the processing of the final adjustment of headers. $Hook_PreDispatching Just before the processing of the delivery Define a name of function to be called at that point. The variables should be defined in script specified with --Require option. 11. Known Bugs There might be a problem that the message cannot be dispatched on some IRIX systems of SGI. In such case, remove the # (comment) mark in the middle line of following lines in TcpTransaction.pm to activate 'print $CHAN " ";'. ## if you have mysterious TCP/IP bug on IRIX/SGI # print $CHAN " "; ## endif [end of document] im-151/man/imcd.jis0000644000000000000000000000055606571360410012673 0ustar rootroot IMCD $B%^%K%e%"%k(B $B5!G=(B: $B%G%U%)%k%H%U%)%k%@$NJQ99(B $B%*%W%7%g%s(B: --src= $BJQ99@h$N%U%)%k%@$r;XDj$9$k!#(B --quiet= on: $BJQ99@h$N>pJs$rI=<($7$J$$!#(B --verbose= on: $B=hM}$K4X$9$k$5$^$6$^$J>pJs$rI=<($9$k!#(B --debug= on: $B%G%P%C%0%a%C%;!<%8$rI=<($9$k!#(B --help= on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B im-151/man/imget.jis0000644000000000000000000001475706777046764013121 0ustar rootroot IMGET $B%^%K%e%"%k(B $B%*%W%7%g%s(B: --help= on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B --quiet= on: get $B$7$?Am%a%C%;!<%8?t$J$I$N>pJs$rI=<($7$J$$!#(B --verbose= on: $B=hM}$K4X$9$k$5$^$6$^$J>pJs$rI=<($9$k!#(B --debug= on: $B%G%P%C%0%a%C%;!<%8$rI=<($9$k!#(B --noscan= on: get $B$N:]$K(B scan $BI=<($r9T$o$J$$!#(B --scaninboxonly= on: InboxFolder $B$H(B --dst $B$K;XDj$5$l$?3JG<@h%U%)%k%@$,(B $BEy$7$$>l9g$K$N$_(B scan $BI=<($r9T$&(B --form= scan $BI=<(MQ$N%U%)!<%^%C%H$r5-=R$9$k!#(B --jissafe= on: scan $BI=<($N%U%)!<%^%C%H=hM}$N:]$K!"(BISO-2022-JP $BEy$N%(%9%1!<%W%7!<%1%s%9$r9MN8$9$k!#(B --width= scan $BI=<($N:]$N0l9T$NI}$r;XDj$9$k!#(B --lock= $B%m!<%+%k$N%a!<%k%\%C%/%9(B($B%U%!%$%k(B)$B$+$i(B get $B$9$k:]$K(B $B9T$&GSB>@)8f(B($B%m%C%/(B)$B$NJ}<0$r;XDj$9$k!#(B none: $B%m%C%/$r9T$o$J$$!#(B flock: flock() $B$K$h$k%m%C%/$r9T$&!#(B file: mailbox $B$H$$$&%U%!%$%k$r07$&:]$K!"$=$N%U%!%$%k(B $B$,CV$+$l$F$$$k%G%#%l%/%H%j$K(B mailbox.lock $B$H(B $B$$$&%m%C%/%U%!%$%k$r:n@.$9$k!#(B flock $B$H(B file $B$rJ;MQ$9$k>l9g$O!"(Bflock+file $B$J$I$N(B $B$h$&$K;XDj$9$k!#(B --rpath=UNIX From $B9T$r(B Return-Path: $B$KJQ2=$9$kJ}K!$r;XDj$9$k!#(B ignore: UNIX From $B9T$N>pJs$OpJs$r(B Return-Path: $B$H$7$F;D$9(B replace: $B4{B8$N(B Return-Path: $B$r:o=|$7$F(B append --keep= get $B$7$?8e$N%a!<%k$N07$$$K$D$$$F;XDj$9$k!#(B -1: get $B$7$?8e$b:o=|$7$J$$!#(B 0: get $B$N8e$?$@$A$K:o=|$9$k!#(B n: get $B$7$?8e!"(Bn $BF|7P2a$7$F$+$i:o=|$9$k(B(POP$B$N$_(B)$B!#(B n $B$O!"(Bget $B$7$?;~E@$+$i5/;;$9$k$b$N$G$"$j!"(B $B%a%C%;!<%8$NH/?.;~4V$H$O4X78$J$$!#(B $B$?$@$7!"(BPOP $B$r;HMQ$9$k>l9g$G$b!"(B--protokeep $B$N(B $B@_Dj$K$h$j5!G=$7$J$$>l9g$,$"$k!#(B --protokeep= POP $B$K$*$$$F!"%a%C%;!<%8$r$9$0$K:o=|$;$:!"%5!<%P$K(B $BJ]B8$7$F$*$/>l9g$K!"4{FI$N%a%C%;!<%8$HL$FI$N(B $B%a%C%;!<%8$r<1JL$9$kJ}K!$r;XDj$9$k!#(B UIDL: popd $B$,(B UIDL $B%3%^%s%I$rl9g$K(B $B;XDj$9$k!#J#?t$N%/%i%$%"%s%H$+$iF1$8%a!<%k$r(B $Bl9g$KM-8z!#(B LAST: popd $B$,J]B8$9$k:G6a%"%/%;%9$7$?%a%C%;!<%8$r(B LAST $B%3%^%s%I$GCN$j!"$=$N8e$KE~Ce$7$?%a%C%;!<(B $B%8$N$_$r(B get $B$9$k!#$3$l$r;XDj$7$?>l9g!"F|?t(B $B;XDj$K$h$k%a%C%;!<%8$N:o=|$O%5%]!<%H$5$l$J$$!#(B $B$^$?!"J#?t$N%/%i%$%"%s%H$+$i$OF1$8%a!<%k$r(B $BpJs$K$h$C$F9T$&!#J#?t$N%/%i%$%"%s%H$+$i$OF1$8(B $B%a!<%k$rl9g$O!":G=i$K%"%/%;%9(B $B$7$?%a%C%;!<%8$N$_$7$+(B get $B$G$-$J$$$3$H$KCm0U!#(B --count= $B%K%e!<%9$+$i0lEY$Ke8B$r;XDj(B $B$9$k!#(B --src= $B%a%C%;!<%8$r $B$X$N;XDj$N7A<0$O!"(Blocal[:file]$B!#(B [] $B$O!"$=$NCf$N5-=R$,>JN,$G$-$k$3$H$r<($9!#(B $B>JN,$7$?>l9g$O!"(B/var/mail/${USER} $B$J$I$r(B $B<+F0E*$K%5!<%A$9$k!#(B file $B$H$7$F07$($k7A<0$O!"0J2<$N(B3$B$D!#(B $B!&(BMH$B$N%U%)%k%@7A<0(B($B%G%#%l%/%H%j$NCf$K!"J#?t$N(B $B%a%C%;!<%8$,%U%!%$%kKh$KJ,N%$5$l!"O"HV$N(B $B%U%!%$%kL>$,$D$$$?$b$N(B) $B$3$N>l9g!"(Bfile $B$K$O%G%#%l%/%H%j$r;XDj$9$k!#(B $B!&(BUNIX$B$N(Bmailbox$B7A<0%U%!%$%k(B $B!&(BMMDF$B7A<0%U%!%$%k(B(^A^A^A^A $B$G;O$^$k(B) $B$3$l$i$O<+F0H=JL$5$l$k!#(B pop POP $B$rMQ$$$F(B get $B$9$k!#(B $B$X$N;XDj$N7A<0$O!"(B pop[/auth][:user][@host[/port]] [] $B$O!"$=$NCf$N5-=R$,>JN,$G$-$k$3$H$r<($9!#(B auth $B$K$O!"(BPOP, APOP, RPOP $B$N$&$A$N$$$:$l$+$r(B $B;XDj$9$k!#%G%U%)%k%H$O(B APOP$B!#(B RPOP $B$r;HMQ$9$k>l9g$O!"(Bimget $B$r(B SetUID root $B$H$7$F%$%s%9%H!<%k$7$F$*$/I,MW$,$"$k!#(B configure $B$G(B --enable-rpop $B$r;XDj$9$k$3$H!#(B imap IMAP $B$rMQ$$$F(B get $B$9$k!#(B $B$X$N;XDj$N7A<0$O!"(B imap[/auth][:user][@host[/port]] [] $B$O!"$=$NCf$N5-=R$,>JN,$G$-$k$3$H$r<($9!#(B auth $B$K$O!"(BAUTH, LOGIN $B$N$&$A$N$$$:$l$+$r(B $B;XDj$9$k!#%G%U%)%k%H$O(B AUTH$B!#(B nntp NNTP $B$rMQ$$$F(B get $B$9$k!#(B $B$X$N;XDj$N7A<0$O!"(B nntp:group[@host] [] $B$O!"$=$NCf$N5-=R$,>JN,$G$-$k$3$H$r<($9!#(B $B$$$:$l$N>l9g$b!"(Buser $B$r>JN,$7$?>l9g$O!"%/%i%$%"%s%H(B $B$G;HMQCf$N(B login $BL>!"(Bhost $B$r>JN,$7$?>l9g$O(B localhost $B$,2>Dj$5$l$k!#$^$?!"(BConfig $B%U%!%$%k$K$F(B PopAccount=/POP:user@server ImapAccount=/LOGIN:user@server NntpServers=server1 $B$N$h$&$K%G%U%)%k%H$r;XDj$7$F$*$/$3$H$b$G$-$k!#(B $B$3$l$i$K$O$5$i$K!V(B%$B%m!<%+%k%]!<%H!W$rIU2C$G$-$k!#(B $B$3$N>l9g(B SSH $B%]!<%HE>Aw5!G=$rMxMQ$9$k!#(B $B$3$l$i$N(B POP, IMAP $B$K4X$9$k%G%U%)%k%H$O!"(B--src $B$K(B pop $B$"$k$$$O(B imap $B$H$N$_5-=R$7$?>l9g$K;2>H$5$l!"(B $B%*%W%7%g%s$r0l$D$G$bB3$1$F;XDj$7$?>l9g$OL5;k$5$l$k!#(B --dst= get $B@h$N%U%)%k%@$r;XDj$9$k!#(B $B>JN,;~$N%G%U%)%k%H$O(B Config $B$N(B InboxFolder $B$K=>$&!#(B --mode= imget $B$NF0:n$r;XDj$9$k!#(B get: $B?7Ce%a%C%;!<%8$r%U%)%k%@$K $B0l2s$N5/F0$GJ#?t$Nl9g$K(B $B;XDj$9$k!#6h@Z$j$K$O(B ; $B$rMQ$$$k!#Nc(B: =mail=nntp:fj.mail.system.sendmail;=mail=nntp:fj.mail --ignorepostpet= PostPet $B%/%i%$%"%s%H$,l9g$K$N$_0UL#$r;}$A$^$9!#(B --SSHServer= $B;XDj$5$l$?%[%9%H$r(B SSH $BCf7Q%5!<%P$H$7$FMxMQ$9$k!#(B im-151/man/immv.jis0000644000000000000000000000107006571360412012721 0ustar rootroot IMMV $B%^%K%e%"%k(B $B5!G=(B: $B%a%C%;!<%8$N0\F0(B $B%*%W%7%g%s(B: --src= $B0\F085%U%)%k%@$r;XDj$9$k!#(B --dst= $B0\F0@h%U%)%k%@$r;XDj$9$k!#(B --link= on: $B85$N%a%C%;!<%8$r;D$9!#%O!<%I%j%s%/$,$"$k%7%9%F%`(B $B$G$O%O!<%I%j%s%/$r!"$J$1$l$P%3%T!<$r9T$J$&!#(B --noharm= on: $BF0:n$NFbMF$rI=<($9$k$@$1$G!" on: $B=hM}$K4X$9$k$5$^$6$^$J>pJs$rI=<($9$k!#(B --debug= on: $B%G%P%C%0%a%C%;!<%8$rI=<($9$k!#(B --help= on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B im-151/man/imput.jis0000644000000000000000000007330006777046764013137 0ustar rootroot imput $B%^%K%e%"%k(B 1. $B35MW(B o $B%a!<%k$d%K%e!<%9$N%a%C%;!<%8$r(B SMTP/NNTP $B7PM3$GH/?.$7$^$9!#(B (To:, Cc: $B$J$I$N%X%C%@$,$"$l$P%a!<%k$H$7$F(B SMTP $B7PM3$GH/?.$7!"(B Newsgroups: $B%X%C%@$,$"$l$P%K%e!<%9$H$7$FH/?.$7$^$9!#(B) o $BJ#?t$N(B SMTP/NNTP $B%5!<%P$,;XDj$G$-!"$"$k%5!<%P$K>c32$,H/@8$7$F$$$k$h$&$J(B $B>l9g$G$b!";XDj$7$?%5!<%P$N%j%9%H$NCf$+$iMxMQ2DG=$J%5!<%P$r8+$D$1$^$9!#(B $B$^$?!"%5!<%P$4$H$K%5!<%S%9%]!<%H$rJQ99$9$k$3$H$b$G$-$^$9!#(B o $B%X%C%@It$NF|K\8l$r(B MIME (RFC2047) $B7A<0$KJQ49$9$k$3$H$,$G$-$^$9!#(B o EUC/SJIS $B$G=q$+$l$?F|K\8l$r(B JIS $B$KJQ49$9$k$3$H$,$G$-$^$9!#(B o 8bit $B%3!<%I$r4^$`%a%C%;!<%8$NK\J8$r(B quoted-printable $B$b$7$/$O(B base64 $B$K(B $BJQ49$7$^$9(B(RFC2045)$B!#(B o $BH/?.%(%i!<$,H/@8$7$?>l9g$O(B Delivery Status Notification $B7A<0(B (RFC1891, RFC1892, RFC1894) $B$N%(%i!<%a!<%k$r@8@.$7$^$9!#(B o MIME Message/rfc822 $B7A<0%+%W%;%k2=(B (RFC2045) $B$K$h$k(B BCC (blind carbon copy) $B$rH/?.$7$^$9!#(B o DCC (distribution carbon copy) (BCC $BE*%+%W%;%k2=$r$;$:!"%X%C%@$K%"%I%l%9$r(B $BI=<($7$J$$08@h;XDjJ}<0(B) $B$r%5%]!<%H$7$^$9!#(B o MH $B7A<0$N(B FCC (folder carbon copy) $B$r%5%]!<%H$7$^$9!#(B o Message-Id:/Date: $B%X%C%@$r@8@.$7$^$9!#(B ($B$7$?$,$C$F!"(BFCC $B$7$?%a%C%;!<%8$K$b!"F10l(B Message-Id:/Date: $B$,;D$j$^$9!#(B) o "list:;" (RFC822) $B7A<0$N%"%I%l%9$,MxMQ$G$-$^$9!#(B o "group:u1, u2;" (RFC822) $B7A<0$N%"%I%l%9$,MxMQ$G$-$^$9!#(B ($B%a!<%k$O(B u1, u2 $B$KAw$i$l!"%X%C%@$O(B group:; $B$K=q$-49$($i$l$^$9!#(B) o "group:/file;" ($BHsI8=`(B) $B7A<0$N%"%I%l%9$,MxMQ$G$-$^$9!#(B (/file $B$K5-=R$5$l$?%a!<%k%"%I%l%9$rFI$_9~$_!"$=$l$i$N%"%I%l%9$K8~$1$F(B $B%a!<%k$rH/?.$7$^$9!#%X%C%@$O(B group:; $B$K=q$-49$($i$l$^$9!#(B) o $B%5%$%:$NBg$-$J%a%C%;!<%8$O(B MIME Message/partial $B7A<0(B (RFC2045) $B$GJ,3d(B $B$5$;$k$3$H$,$G$-$^$9!#(B o $B8D?M%l%Y%k$N%a!<%k%"%I%l%9$N%(%$%j%"%9$r%5%]!<%H$7$^$9!#(B (MH $B$N(B alias $B7A<0(B) o $B8D?M%l%Y%k$N%I%a%$%s%Q!<%H$N%(%$%j%"%9$r%5%]!<%H$7$^$9!#(B (BIND $B$N(B hostalias $B7A<0(B) o $B%a%C%;!<%8$NH/?.MzNr$,5-O?$5$l$^$9!#(B o MH$BE*(B annotation $B$,%5%]!<%H$5$l$F$$$^$9(B(Forwarded: $B$r=|$/(B)$B!#(B o ESMTP $B$N(B SIZE, DSN ($B?7$7$$(B Return-Receipt-To: $B$N;EAH$_(B) $B$r%5%]!<%H$7$F(B $B$$$^$9!#(B o MH $B$N(B send $B%3%^%s%I$d(B UCBMAIL $B$J$I$+$i5/F0$5$l$k(B sendmail $B$NBe$j$H$7$F$b(B $BMxMQ$9$k$3$H$,$G$-$^$9!#(B 2. $BMxMQJ}K!(B o Mew Mew $B$N%I%-%e%a%s%H$rFI$s$G$/$@$5$$!#(B o $B%7%'%k$+$iD>@\5/F0(B imput [$B%*%W%7%g%s(B] [$B08@h$N%j%9%H(B|$B%a%C%;!<%8%U%!%$%k$N%Q%9(B] $B$H$7$F5/F0$7$^$9!#(B [] $B$O>JN,2DG=$G$"$k$3$H$r<($7$^$9!#(B $B%*%W%7%g%s$K$D$$$F$O!"8e=R$7$^$9!#(B $B08@h$N%j%9%H(B|$B%a%C%;!<%8%U%!%$%k$N%Q%9(B $B$O!"$I$A$i$+$r;XDj$9$k(B $B$3$H$r<($7$^$9!#(B $B08@h%j%9%H$O!"%a!<%k%"%I%l%9$r6uGr$G6h@Z$C$?$b$N$r;XDj$7$^$9!#(B $B08@h$N%j%9%H$r;XDj$7$?>l9g$G!"%a%C%;!<%8%U%!%$%k$r%*%W%7%g%s$G(B $B;XDj$7$J$+$C$?>l9g$O!"I8=`F~NO$+$i%a%C%;!<%8$rFI$_9~$_$^$9!#(B $B%a%C%;!<%8%U%!%$%k$N%Q%9$O@dBP%Q%9I=5-$G;XDj$7$^$9!#(B o MH ~/.mh_profile $B$N(B sendproc $B$K(B imput $B$r;XDj$7$F2<$5$$!#(B $BNc(B: sendproc: /home/motonori/cmd/imput o mh-e (ver.4 or later) (setq mh-send-prog "imput") $B$rl9g(B) .mailrc $B$K5-=R$9$k$3$H$b$G$-$^$9!#(B $BNc(B: set sendmail /home/motonori/cmd/imput o sendmail $B$rD>@\5/F0$9$k%a!<%k%/%i%$%"%s%H(B /usr/lib/sendmail ($B$"$k$$$O(B /usr/sbin/sendmail$B!#$3$l$O(B OS $B$K$h$C$F(B $B0[$J$k(B) $B$r$3$N%9%/%j%W%H$KCV$-49$($F2<$5$$!#(B $B%a!<%k$Nl9g$O!"%Q%9$rJQ$($k$J$I3F<+9)IW$7$F2<$5$$!#(B o inews $B$r5/F0$9$k%K%e!<%9%/%i%$%"%s%H(B inews $B$r$3$N%9%/%j%W%H$KCV$-49$($F2<$5$$!#(B $B$?$@$7(B -h $B0J30$N%*%W%7%g%s$O%5%]!<%H$7$F$$$^$;$s!#(B 3. $B%*%W%7%g%s(B $B%3%^%s%I%i%$%s$"$k$$$O4D6-@_Dj%U%!%$%k$K$F;XDj$G$-$k%*%W%7%g%s$r0J2<$K(B $B<($7$^$9!#8=:_$N@_Dj$O!"(Bimput --help $B$GI=<($5$l$^$9!#(B $B$J$*!"%*%W%7%g%sL>$N;XDj$K$*$$$FBgJ8;z>.J8;z$N6hJL$O$"$j$^$;$s!#(B $B%*%W%7%g%s$,0z?t$rH<$&>l9g$N!"0z?t$N7A<0$O0J2<$N5-9f$G<($5$l$^$9!#(B on $B$+(B off $B$r;XDj$9$k(B($B>JN,2DG=(B) $B?t;z$r;XDj$9$k(B $BJ8;zNs$r;XDj$9$k(B $BJ8;zNs$r;XDj$9$k(B($BJ#?t;XDj$9$k>l9g$O!"6uGr$rF~$l$:(B ',' $B$G(B $B6h@Z$k(B) $B0J2<$K<($9%*%W%7%g%s$O!"%3%^%s%I%i%$%s$G;XDj$9$k7A<0$K$J$C$F$$$^$9$,!"(B $B$9$Y$F$N%*%W%7%g%s(B --Option=value $B$O!"4D6-@_Dj%U%!%$%k$K$*$$$F(B Option=value $B$H5-=R$9$k$3$H$,$G$-$^$9!#(B [$B@_Dj$K4X$9$k%*%W%7%g%s(B] --Help= $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B --Config= $B%f!<%6%l%Y%k4D6-@_Dj%U%!%$%kCf$N;2>H$9$Y$-Dj5A%V%m%C%/(B $BL>(B(case WORD $B$H$$$&9T$+$i;O$^$k%V%m%C%/$r;2>H$5$;$?$$(B $B>l9g$O(B $B$K(B WORD)$B$r;XDj$9$k!#(B ',' $B$G6h@Z$C$FJ#?t;XDj$7$?>l9g$O!"J#?t$N%V%m%C%/$,=g$K(B $BI>2A$5$l$k!#(B $B%a%C%;!<%8$N%X%C%@$+$i08@h>pJsEy$rCj=P$9$k$h$&$K(B $B;XDj$7$?>l9g(B(--ObeyHeader $B$r;XDj$7$?>l9g!"$"$k$$$O(B --Message $BEy$G%a%C%;!<%8%U%!%$%k$r;X<($7$?>l9g(B)$B$O!"(B $B%a%C%;!<%8Fb$N(B Config: $B%X%C%@$KDj5A%V%m%C%/L>$r;XDj(B $B$9$k$3$H$b$G$-$k!#$J$*!";XDj$7$?(B Config: $B%X%C%@$O!"(B $B%a%C%;!<%8$NG[?.;~$K:o=|$5$l$k!#(B $B4D6-@_Dj%U%!%$%k$N>\:Y$K$D$$$F$O2~$a$F@bL@$9$k!#(B --Require= $B=i4|2==hM};~$KFI$_9~$^$;$k(B perl $B%9%/%j%W%H%U%!%$%k$r(B $B$r;XDj$9$k!#(B --Debug= $B%G%P%C%0%b!<%I$GF0:n$9$k$3$H$r;XDj$9$k!#(B $BA4$F$N%G%P%C%0>pJs$,=PNO$5$l$k!#(B --DebugFlag= $B%G%P%C%0>pJs$r=PNO$5$;$?$$5!G=$r;XDj$9$k!#(B $B%=!<%9%3!<%ICf$N(B &debug("xxx") $B$r(B true $B$K$7$?$$>l9g$O(B xxx $B$r;XDj$9$k!#(B $BJ#?t;XDj$9$k>l9g$O!"6uGr$rF~$l$:$K(B ',' $B$G6h@Z$C$F(B $BNs5s$9$k!#(B --Verbose verbose $B%b!<%I$G$NF0:n$r;XDj$9$k!#(B [$B%5!<%P$K4X$9$k%*%W%7%g%s(B] --SMTPservers= SMTP $B%5!<%P$*$h$S%]!<%H$r;XDj$9$k!#(B $B7A<0$O!"!V%5!<%PL>(B[/$B%j%b!<%H%]!<%H(B][%$B%m!<%+%k%]!<%H!W$G(B /$B%j%b!<%H%]!<%HHV9f$r>JN,$7$?>l9g$O(BSMTP(25)$B$r;HMQ$9$k!#(B $BJ#?t$N%5!<%P$r;XDj$9$k>l9g$O!"6uGr$rF~$l$:$K(B ',' $B$G(B $B6h@Z$C$FNs5s$9$k!#%m!<%+%k%]!<%H$r;XDj$9$k$H!"(BSSH $B$N%]!<%HE>Aw5!G=$rMxMQ$9$k!#(B --TryNextOnFatal= $B915W%(%i!<$,H/@8$7$?>l9g$G$"$C$F$b!"(B-SMTPservers $B$G(B $B;XDj$5$l$F$$$k%5!<%P$G$^$@;n9T$5$l$F$$$J$$$b$N$,$"$l$P(B $B$9$0$K%(%i!<$K$;$:$K$=$A$i;n9T$9$k!#(B --NNTPservers= NNTP $B%5!<%P$*$h$S%]!<%H$r;XDj$9$k!#(B $B7A<0$O!"!V%5!<%PL>(B[/$B%j%b!<%H%]!<%H(B][%$B%m!<%+%k%]!<%H!W$G(B /$B%j%b!<%H%]!<%HHV9f$r>JN,$7$?>l9g$O(BNNTP(119)$B$r;HMQ$9$k!#(B $BJ#?t$N%5!<%P$r;XDj$9$k>l9g$O!"6uGr$rF~$l$:$K(B ',' $B$G(B $B6h@Z$C$FNs5s$9$k!#%m!<%+%k%]!<%H$r;XDj$9$k$H!"(BSSH $B$N%]!<%HE>Aw5!G=$rMxMQ$9$k!#(B --EmgSMTPsvrs= $BG[Aw%(%i!<$,H/@8$7$?>l9g$G!"$+$D!"(BSMTPservers $B$K;XDj(B $B$7$?A4$F$N%5!<%P$K%a!<%k$rAw$l$J$+$C$?>l9g$K;n9T$9$Y$-(B $B%a!<%k%5!<%P$r;XDj$9$k!#(B --Clientname= SMTP $B$N:]$K(B HELO $B$GL>>h$k%[%9%HL>$r;XDj$9$k!#(B --ESMTP= on: SMTP $B%5!<%P$,(B ESMTP $B$K$h$kDL?.$,2DG=$G$"$k;]$r(B $BDs<($7$J$+$C$?>l9g$G$b!"$^$:(B ESMTP $B$r;n$_$k$3$H(B $B$r;XDj$9$k!#(B off: $BAjl9g$N$_(B ESMTP $B$rMxMQ$9$k!#(B --NewsPost= on: $B%K%e!<%9$N%]%9%H$r5v2D$9$k!#(B ($BI,MW$K1~$8$F%]%9%H$5$l$k!#(B) off: $B%K%e!<%9$N%]%9%H$r6X;_$9$k!#(B --SSHServer= $B;XDj$5$l$?%[%9%H$r(B SSH $BCf7Q%5!<%P$H$7$FMxMQ$9$k!#(B [$B%X%C%@$N@8@.$K4X$9$k%*%W%7%g%s(B] --User= $BH/?.(B)$B$r;XDj$9$k!#(B $B%G%U%)%k%H$G$O%m%0%$%sL>$,MxMQ$5$l$k!#(B --Name= $BH/?. $B$N(B Full Name $B$KMxMQ$5$l$k!#(B $B%G%U%)%k%H$G$O!"%Q%9%o!<%I%U%!%$%k$N(B GCOS $B%U%#!<%k%I$N(B $BFbMF$,MxMQ$5$l$k!#(B --NameInComment= off: From: Full Name $B$,@8@.$5$l$k!#(B on: From: User@FromDomain (Full Name) $B$,@8@.$5$l$k!#(B --Org= Organization: $B%X%C%@$K$D$1$k>pJs$rDj5A$9$k!#(B --FromDomain= $BH/?. $B on: $B%"%I%l%9$N(B '@' $B0J2<$,;XDj$5$l$F$$$J$+$C$?>l9g$K!"(B default domain $B$rJd$&=hM}$r(B imput $B$G9T$o$:(B sendmail $BEy$N(BMTA $B$K$5$;$k$3$H$r;XDj$9$k!#(B --MsgIdDomain= Message-Id: $B$r@8@.$9$k>l9g$K;HMQ$9$k%I%a%$%s%Q!<%H$r(B $B;XDj$9$k!#(B $B;XDj$7$J$+$C$?>l9g$O(B --FromDomain $B$G;XDj$5$l$?$b$N$,(B $B;HMQ$5$l$k!#(B --MsgId= on: Message-Id: $B%X%C%@$r<+F0@8@.$9$k$3$H$r;XDj$9$k!#(B off: Message-Id: $B%X%C%@$r<+F0@8@.$7$J$$$3$H$r;XDj$9$k(B (MTA $B$K$h$jJd$o$l$k$3$H$K$J$k(B)$B!#(B --PidMsgId= on: $B%W%m%;%9HV9f$b%a%C%;!<%8(BID$BJ8;zNs$K4^$a$k$3$H$r(B $B;X<($9$k!#(B 1$BIC4V$KJ#?t$N%a!<%k$rH/?.$9$k$3$H$,$"$k>l9g$K(B $B;XDj$9$k$3$H$,K>$^$7$$!#(B --UidMsgId= on: $B%f!<%6$N%m%0%$%sL>$NJQ$o$j$K(B uid $B$r;HMQ$9$k!#(B --NoMsgIdForNews on: NNTP $B$N:]$@$1(B Message-Id: $B%X%C%@$,%5!<%P$K$h$C$F(B $B@8@.$5$l$k$h$&$K$9$k!#(B --Date= on: Date: $B%X%C%@$r<+F0@8@.$9$k!#(B Date: $B%X%C%@$r<+F0@8@.$7$J$$(B (MTA $B$K$h$jJd$o$l$k$3$H$K$J$k(B)$B!#(B --NewsGMTdate= on: GMT $B$K$h$kF|IU$r@8@.$9$k$3$H$r;XDj$9$k!#(B $B%K%e!<%9$G$O(B GMT $B$,?d>)$5$l$F$$$k$i$7$$(B(RFC1036)$B!#(B --NScmpl= on: $B%M!<%`%5!<%P$rMxMQ$7$F%a!<%k%"%I%l%9$N(B $B%I%a%$%s%Q!<%H$rJd40$9$k$3$H$r;XDj$9$k!#(B /etc/resolv.conf $B$KDj5A$5$l$?(B domain, search $B$N(B $BFbMF$,%j%>%k%P$K$h$C$FMxMQ$5$l$k$3$H$K$J$k!#(B off: $B%M!<%`%5!<%P$rMxMQ$7$F%a!<%k%"%I%l%9$N(B $B%I%a%$%s%Q!<%H$rJd40$7$J$$$3$H$r;XDj$9$k!#(B --AliasesFile= $B%a!<%k%"%I%l%9$rJd40$9$k$?$a$N%(%$%j%"%9%U%!%$%k$N(B $B%Q%9$r;XDj$9$k!#(B ',' $B$G6h@Z$C$FJ#?t$N%U%!%$%k$r;XDj$9$k$3$H$b2DG=!#(B $BNc(B: alias1: u1 alias2: u2@domain alias3: User-Three alias4: 43, u5 alias5: group:u6, u7; alias6: group:/address/list/file; : --HostAliases= $B%I%a%$%s%Q!<%H$rJd40$9$k$?$a$N%(%$%j%"%9%U%!%$%k$N(B $B%Q%9$r;XDj$9$k!#(B ',' $B$G6h@Z$C$FJ#?t$N%U%!%$%k$r;XDj$9$k$3$H$b2DG=!#(B $BNc(B: alias1 realname1.domain alias2 realname2.domain : --ShowRcpts= on: Apparently-To: $B%X%C%@$,(B MTA $B$K$h$jIU2C$5$l$k$3$H(B $B$r5v$7!"(BTo: undisclosed-recipients:; $B%X%C%@$r(B $BIU2C$7$J$$!#(B off: To: undisclosed-recipients:; $B%X%C%@$rIU2C$9$k(B $B$3$H$K$h$j!"(BMTA $B$,(B Apparently-To: $B%X%C%@$rIU$1(B $B$k$3$H$rM^@)$9$k!#(B --Subj= (-s) Subject: $B%X%C%@$K5-:\$9$kJ8;zNs$r;XDj$9$k!#(B $B$9$G$K(B Subject: $B%X%C%@$,B8:_$9$k>l9g$OL5;k$5$l$k!#(B --ObeyHeader= (-t)on: $B%a%C%;!<%8$Nl9g$O!"(B $B<+F0E*$K(B on $B$H$J$k!#(B $B%K%e!<%9$X$NEj9F$b(B Newsgroups: $B$K$h$C$F5/F0$5$l(B $B$k!#(B $B%3%^%s%I%i%$%s$G $BG$0U$N%X%C%@$rDI2C$9$k!#(B $BNc(B: --AddHeader='X-Header: value' [$B%a%C%;!<%8$NG[AwF0:n$K4X$9$k%*%W%7%g%s(B] --MeToo= (-om) on: $BH/?. $B;XDj$7$?%"%I%l%9$KBP$7$F(B Dcc $BE*$K%a!<%k$rAw$k(B --Receipt= on: $BG[Aw40N;DLCN$NJVAw$r;XDj$9$k(B(RFC1891 $B$K$h$k(B)$B!#(B --MIMEbcc= on: MIME Message/rfc822 $B7A<0%+%W%;%k2=(B (RFC2045) $B$K$h$k(B BCC $B$rH/?.$9$k$3$H$r;XDj$9$k!#(B off: $B%+%W%;%k2=$;$:$K(B BCC $B$rH/?.$9$k$3$H$r;XDj$9$k!#(B --NewsCheck= on: To:, Cc: $B%X%C%@$,B8:_$7$?>l9g$O%K%e!<%9$K$O(B $B%]%9%H$7$J$$$3$H$r;XDj$9$k!#(B off: Newsgroups: $B%X%C%@$,$"$l$P%K%e!<%9$K%]%9%H$9$k(B $B$3$H$r;XDj$9$k!#(B --Group= $B%]%9%H$9$Y$-%K%e!<%9%0%k!<%W$r;XDj$9$k!#(B $B%X%C%@$+$i>pJs$rCj=P$5$;$J$$>l9g$K;HMQ$9$k!#(B --Dist= on: redistribution $B%b!<%I$K$9$k!#(B Resent-*: $B$H$$$&7A<0$N%X%C%@$,MxMQ$5$l$k!#(B --DistMsg= redistribute $B$9$k%a%C%;!<%8$N%Q%9$r;XDj$9$k!#(B $B08@h$O%3%^%s%I%i%$%s$G;XDj$9$k$+!"$"$k$$$O(B -Message $B$G;XDj$5$l$?%a%C%;!<%8$N%X%C%@$G;XDj$9$k!#(B --SMTP= (-bs) on: SMTP $B7A<0$K$h$k%a%C%;!<%8$r $B%a!<%k%U%)%k%@$NCV$+$l$F$$$k%G%#%l%/%H%j$r;XDj$9$k!#(B $B%G%#%l%/%H%j$N<+F0:n@.$O9T$o$l$J$$!#(B --MsgMode= FCC $BEy$K$h$C$F@8@.$5$l$k%U%!%$%k$N%b!<%I$r(B8$B?J?t$G(B $B;XDj$9$k!#(B $B%-%e!<$K%U%!%$%k$r@8@.$9$k>l9g$K$bMxMQ$5$l$k!#(B --FolderMode= FCC $B%U%)%k%@(B($B%G%#%l%/%H%j(B)$B$r:n@.$9$kI,MW$,$"$k>l9g$N(B $B%b!<%I$r(B8$B?J?t$G;XDj$9$k!#(B $B%-%e!l9g$K$bMxMQ$5$l$k!#(B --Folder= $B%a%C%;!<%8$NH/?.;~$K;2>H$5$l$k%I%i%U%H%U%)%k%@$r(B $B;XDj$9$k!#(B --TrashMark= $BH/?.$5$l$?%I%i%U%H%a%C%;!<%8$r%j%M!<%`$9$k$H$-$K(B $B%U%!%$%kL>$NA0$KIU2C$9$Y$-J8;z$r;XDj$9$k!#(B --Message= $BAw?.$9$k%a%C%;!<%8$N%Q%9$r;XDj$9$k!#(B $BAjBP%Q%9;XDj$N>l9g$O!"(B-Folder $B$G;XDj$5$l$?%I%i%U%H(B $B%U%)%k%@$+$i$N;XDj$H$J$k!#(B $B@dBP%Q%9;XDj$N>l9g$O!"(B-Folder $B$G;XDj$5$l$?%I%i%U%H(B $B%U%)%k%@$OL5;k$5$l$k!#(B --Fcc= $BH/?.%a!<%k$rJ]B8$9$Y$-%U%)%k%@L>$r;XDj$9$k!#(B --FccPartial= on: FCC $B$GJ]B8$9$k:]$K(B multipart/partial $B$GJ,3d(B $B$5$l$?7A<0$N$^$^J]B8$9$k$3$H$r;XDj$9$k!#(B # --FccDir= FCC $B$NJ]B87A<0$r(B MH ($B%G%#%l%/%H%j(B)$B7A<0$K$9$k!#(B # $BJ]B8$7$h$&$H$9$k%G%#%l%/%H%j$,B8:_$7$J$+$C$?>l9g$O!"(B # $B<+F0E*$K:n@.$5$l$k!#(B # -FccFile FCC $B$NJ]B87A<0$r(B mbox ($BC10l%U%!%$%k(B)$B7A<0$K$9$k!#(B [$BF|K\8l$K4X$9$k%*%W%7%g%s(B] --JPheader= on: $B%X%C%@$N(B JIS $B$r(B MIME (RFC2047) $B7A<0$GId9f2=$9$k!#(B off: $B%X%C%@$N(B JIS $B$r(B MIME (RFC2047) $B7A<0$GId9f2=(B $B$7$J$$!#(B --HdrQEncoding= on: $B%X%C%@$NId9f2=$r(BQ$BId9f2=J}<0$G9T$&!#(B off: $B%X%C%@$NId9f2=$r(BB$BId9f2=J}<0$G9T$&!#(B --NoHdrFolding= on: 72$BJ8;z(B/$B9TDxEY$N2~9TA^F~$r9T$o$J$$$3$H$r;X<($9$k!#(B --JPconv= on: EUC/SJIS -> JIS $BJQ49$r9T$J$&!#(B off: EUC/SJIS -> JIS $BJQ49$r9T$J$o$J$$!#(B --DefCode= EUC/SJIS $B$N<+F0H=JL$,$G$-$J$$$H$-$N%G%U%)%k%H%3!<%I$r(B $B;XDj$9$k(B(EUC/SJIS/8BIT)$B!#(B --8to7= on: 8bit $B%3!<%I$N4^$^$l$k%a%C%;!<%8%\%G%#$r(B 7bit $B$K(B $BId9f2=$9$k!#(B 8bit $B%3!<%I$N3d9g$K$h$j(B base64 $B$H(B quoted-printable $B$N$I$A$i$+$,<+F0E*$KA*Br$5$l$k!#(B off: 8bit $B%3!<%I$N4^$^$l$k%a%C%;!<%8%\%G%#$r(B 7bit $B$K(B $BId9f2=$7$J$$!#(B --8BitLabel= $B$^$@(B Mime-Version: $B%X%C%@$NB8:_$7$J$$(B 8bit $B%3!<%I$r(B $B4^$`%a%C%;!<%8$rH/?.$9$k>l9g$K!"IU2C$9$k(B MIME $B%X%C%@(B $B$N(B CT $B$KIU$1$k%i%Y%k$r;XDj$9$k!#(B [$BK\J8$N=hM}$K4X$9$k%*%W%7%g%s(B] --IgnoreDot= (-oi)on: '.' $B$N$_$N9T$r%a%C%;!<%8$N=*C<$H2r $B%^%k%A%Q!<%H$N%a%C%;!<%8$KDI2C$9$kJ8=q$r;XDj$9$k(B $B$3$N%*%W%7%g%s$rJ#?t2s;XDj$9$l$P!";XDj$7$?=g=x$G(B $BJL!9$N%Q!<%H$H$7$FDI2C$5$l$F$$$/!#(B $B85$N%a%C%;!<%8$,%^%k%A%Q!<%H$G$J$1$l$P<+F0E*$K(B $B%^%k%A%Q!<%H$H$J$k!#(B $B85$N%a%C%;!<%8$,%^%k%A%Q!<%H$G$"$l$P!"?7$?$J%Q!<%H$,(B $BDI2C$5$l$k!#(B [$B%a%C%;!<%8J,3d$K4X$9$k%*%W%7%g%s(B] --Lines= $B%5%$%:$NBg$-$J%a!<%k$rJ,3d$9$k9T?t$r;XDj$9$k!#(B $BJ,3d$O(B MIME Message/partial $B7A<0(B (RFC2045) $B$K$h$C$F(B $B9T$o$l$k!#(B 0 $B$r;XDj$9$k$H!"J,3d$O9T$o$l$J$$!#(B --Sleep= $B%a%C%;!<%8$rJ,3d$9$k>l9g$K!"J#?t$KJ,3d$5$l$?8D!9$N(B $B%a%C%;!<%8$NAw?.$N4V3V(B($BIC(B)$B$r;XDj$9$k!#(B [$B%-%e!<=hM}$K4X$9$k%*%W%7%g%s(B] --QueueDir= $B%-%e!<$H$7$FMxMQ$9$k%G%#%l%/%H%j$N%Q%9$r;XDj$9$k!#(B $B%G%#%l%/%H%j$,B8:_$7$F$$$J$+$C$?>l9g$O!"<+F0E*$K(B $B:n@.$5$l$k!#(B --JustQueuing= (-odq) on: $B%a%C%;!<%8$rD>$A$K%-%e!<$KJ]B8$9$k!#(B --Queuing= on: $B%5!<%P$K%a%C%;!<%8$rEO$;$J$+$C$?>l9g$K(B $B%-%e!<$KJ]B8$9$k!#(B --ProcessQueue= (-q) on: $B%-%e!<$KN/$^$C$F$$$k%a%C%;!<%8$rH/?.$9$k!#(B --QueueStatus= (-bp) on: $B%-%e!<$KN/$^$C$F$$$k%a%C%;!<%8$N>u67$rI=<($9$k!#(B [$B%(%i!<=hM}$K4X$9$k%*%W%7%g%s(B] --Report= on: $BAw?.%(%i!<$,H/@8$7$?>l9g$K%a!<%k$G%(%i!<$rDLCN(B $B$9$k$3$H$r;XDj$9$k!#(B off: $BAw?.%(%i!<$rC $B%(%i!<%a!<%k$5$(H/?.$G$-$J$+$C$?>l9g$K(B $B%a%C%;!<%8$rJ]B8$9$k%U%!%$%k$N%Q%9$r;XDj$9$k(B (mbox $B7A<0(B)$B!#(B [$B%a%C%;!<%8H/?.MzNr$K4X$9$k%*%W%7%g%s(B] --Annotate= on: References: $B$"$k$$$O(B In-Reply-To: $B%X%C%@$G;2>H(B $B$5$l$F$$$k%a%C%;!<%8$K(B Replied: $B$"$k$$$O(B Resnet: $B%X%C%@$K$h$k1~EzMzNr$rIU2C$9$k(B(Forwarded: $B$OL$BP1~(B)$B!#(B --Log= $BH/?.MzNr$rJ]B8$9$k%U%!%$%k$N%Q%9$r;XDj$9$k!#(B $B%Q%9$r>JN,$7$?>l9g$OMzNr$OJ]B8$5$l$J$$!#(B $B%G%U%)%k%H$O(B putlog $B$G!"(B~/.im/ $B$KJ]B8$5$l$k!#(B --Syslog= on: $BH/?.MzNr$r(B syslog $B$K(B MAIL/INFO $B$GAw$k!#(B $B$3$NB>!"(BMH $B$N(B send $B%3%^%s%I$d(B inews $B$H%3%s%Q%A%V%k$J$$$/$D$+$N%*%W%7%g%s$,(B $BB8:_$7$^$9!#(B 4. $B2re=q$-$9$k(B) 5. $B%X%C%@$NpJs$rCj=P$9$k$3$H$r;XDj$7$?>l9g!"(B To:, Cc:, Dcc:, Bcc: $B$+$i08@h>pJs$,Cj=P$5$l$^$9!#(BBcc: $B$K;XDj$7$?%"%I%l%908$N%a%C%;!<%8$K$D$$$F$O(B MIME message/rfc822 $B$G%+%W%;%k2=$5$l$^$9!#$3$l$i$N%X%C%@$K$O!"CM$H$7$F(B @MYSELF@ $B$^$?$O(B @ME@ $B$r;XDj$9$k$3$H$,$G$-$^$9!#$3$l$i$NCM$r;XDj$7$?>l9g!"(B $B%a%C%;!<%8$NH/?.l9g$O(B --ToDomain $B$K;XDj$7$?%I%a%$%sIt$,Jd$o$l$^$9(B(-ObeyMTAdomain $B%*%W%7%g%s(B $B$r;XDj$7$F$$$J$$>l9g(B)$B!#(B To:, Cc:, Bcc:, Dcc:, Resent-To:, Resent-Cc:, Resent-Bcc:, Resent-Dcc: $B0J2<$N%X%C%@$N%"%I%l%9$O!"(B--HostAliases, --AliasesFile $B$G;XDj$5$l$?%U%!%$%kCf(B $B$NDj5A$K$h$j=q$-49$($,9T$J$o$l$^$9!#$^$?!"%I%a%$%sIt(B(@$B0J2<(B)$B$,B8:_$7$J$$(B $B>l9g$O(B --FromDomain $B$K;XDj$7$?%I%a%$%sIt$,Jd$o$l$^$9(B(-ObeyMTAdomain $B%*%W%7%g(B $B%s$r;XDj$7$F$$$J$$>l9g(B)$B!#(B From:, Resent-From:, Reply-To, Resent-Reply-To, Errors-To, Return-Receipt-To: 5.3: Fcc: $B%a%C%;!<%8$NH/?.;~$K(B Fcc: ($B$"$k$$$O(B --Fcc $B%*%W%7%g%s(B) $B$r;XDj$9$k$H!"%a%C%;!<(B $B%8H/?.$,40N;$7$?8e!";XDj$5$l$?%U%)%k%@$K%3%T!<$,J]B8$5$l$^$9!#%U%)%k%@$N(B $B7A<0$H$7$F$O!"%G%#%l%/%H%j$NCf$KO"HV$N%a%C%;!<%8C10L$N%U%!%$%k$r:n@.$9$k(B MH $B7A<0$H!"0l$D$N%U%!%$%k$KJ#?t$N%a%C%;!<%8$rDI2CJ]B8$9$k(B mbox $B7A<0$,A*Br(B $BMxMQ$G$-$^$9!#(B 5.4 Date: $B$H(B Message-Id: $B$$$/$D$+$N(B UA (User Agent; $B%a!<%kAwl9g(B Fcc: $BEy$Fl9g$,$"$j$^$9!#(Bimput $B$G$O!"%G%U%)%k%H(B $B$GH/?.;~$K@8@.$9$k$h$&$K$J$C$F$$$^$9!#(B 5.5 Sender: $B$H(B Originator: $BAw$m$&$H$9$k%a%C%;!<%8$K$9$G$K(B From: $B%X%C%@$,B8:_$7!"CM$,<+F0E*$KIU2C$5$l$k(B $B$b$N$H0[$J$C$F$$$k>l9g$O!"(BSender: $B%X%C%@$,@8@.$5$l!"@_Dj$5$l$F$$$kH/?.l9g$O!"(B Sender: $B$G$J$/(B Originator: $B%X%C%@$,MQ$$$i$l$^$9!#(B 5.6 redistribute $B$H(B Resent-*: $B%X%C%@(B redistribute $B%b!<%I$GH/?.$5$l$k%a%C%;!<%8$K$D$$$F!"$=$NG[Aw$K4X$9$k%"%I%l%9(B $BEy$O!"(BTo:, Cc:, Dcc:, Bcc:, From:, Reply-To:, Sender:, Date:, Message-Id: $B$N(B $BBe$o$j$K!"(BResent-To:, Resent-Cc:, Resent-Dcc:, Resent-Bcc:, Resent-From:, Resent-Reply-To:, Resent-Sender:, Resent-Date:, Resent-Message-Id: $B$,MxMQ(B $B$5$l$^$9!#$9$G$K!"(BResent-*: $B%X%C%@$,B8:_$7$F$$$k>l9g$O!"$=$l$i$N%X%C%@$O(B Prev-Resent-*: $B$KCV$-49$($i$l$F$+$i!":#2s$NG[Aw$K4X$9$k%"%I%l%9Ey$,(B Resent-*: $B$rMQ$$$FIUM?$5$l$^$9!#(B 5.7 Return-Receipt-To: $B%X%C%@(B $B=>Mh!"Ce?.DLCN$rMW5a$9$k$K$O(B Retur-Receipt-To: $B%X%C%@$rIU2C$9$k$3$H$K$J$C$F(B $B$$$^$7$?!#$3$N>l9g!"%X%C%@>pJs$KG[Aw>pJs$,:.$6$j9~$`$?$a%(%s%Y%m!<%W$H%X%C%@(B $B$NLr3d$,40A4$KJ,N%$G$-$F$$$J$$$3$H$K$J$j$^$9!#(BRFC1891 $B$G$O!"Ce?.DLCN$b%(%s%Y(B $B%m!<%W$NCf$G07$&$3$H$rDj5A$7$F$$$^$9!#(Bimput $B$G$O!"%a%C%;!<%8$K(B Return-Receipt-To: $B%X%C%@$,B8:_$7$?>l9g!"%(%s%Y%m!<%W$GCe?.DLCN$rMW5a$7!"(B $B%X%C%@It$+$i(B Return-Receipt-To: $B$r:o=|$7$^$9!#$?$@$7!"e$N(B MTA $B$,A4$F(B RFC1891 $B$r%5%]!<%H$7$F$$$J$1$l$P5!G=$7$J$$$+$b(B $B$7$l$^$;$s!#(B 5.8 $B%K%e!<%9$X$NEj9F;~$N%X%C%@=hM}(B Newsgroups: $B%X%C%@$,B8:_$7$?>l9g!"$"$k$$$O(B -Group $B%*%W%7%g%s$GEj9F@h%K%e!<%9(B $B%0%k!<%W$,;XDj$5$l$?>l9g$O!"%a%C%;!<%8$N%K%e!<%9$X$NEj9F$,9T$J$o$l$^$9!#(B $B%K%e!<%9$NEj9F$N:]$K$O0J2<$N%X%C%@$,I,?\$H$5$l$F$$$^$9$+$i!"$3$l$i$N%X%C%@$N(B $B$&$A$N0l$D$G$bB8:_$7$J$1$l$P!"Ej9F=hM}$O<:GT$7$^$9!#(B From:, Subject:, Newsgroups: $B$^$?!"K\J8$,6u$G$"$C$F$O$J$j$^$;$s!#(B $B%K%e!<%9$KEj9F$9$k>l9g$K!"0J2<$N%X%C%@$,$9$G$KB8:_$7$F$$$k$H%a%C%;!<%8$N(B $Bl9g$J$I(B)$B!#=>$C$F!"(Bimput $B$G$O!"(B $B%K%e!<%9$X$NEj9F$N:]$K$O$3$l$i$N%X%C%@$O<+F0E*$K:o=|$7$^$9!#(B Path:, Received:, Return-Path:, NNTP-Posting-Host:, Xref:, $B$^$?!"%K%e!<%9$H%a!<%k$NF1;~H/?.$r@)8B$9$k(B -NewsCheck $B%*%W%7%g%s$,;XDj(B $B$5$l$F$$$k>l9g!"(BTo:, Cc:, Apparently-To: $B%X%C%@$,B8:_$7$?>l9g$O!"(B Newsgroups: $B%X%C%@$,B8:_$7$F$b%K%e!<%9$X$NEj9F$O9T$J$o$l$^$;$s!#(B $B%K%e!<%9$NEj9F$HF1;~$K%a!<%k$H$7$F$bAw=P$9$k>l9g$O!"%a!<%k$H$7$FAw=P(B $B$5$l$k%a%C%;!<%8$N(B Newsgroups: $B%X%C%@$O(B X-Newsgroups: $B%X%C%@$KCV$-49$((B $B$i$l$^$9!#$^$?!"(BX-Newsgroups: $B$,IU$+$J$$$h$&$K$7$F!"%a!<%k$Nl9g$K$O!"(BBNewsgroups: $B%X%C%@$K!"%K%e!<%9%0%k!<%WL>$r;XDj$7$^$9!#(B 5.9 Config: $B%X%C%@$+$i%"%I%l%9Ey$rCj=P$9$k>l9g!"(BConfig: $B%X%C%@$K$h$C$F;XDj$5$l$?(B $B@_Dj%V%m%C%/$,;2>H$5$l$^$9!#(B 5.10 $B$=$NB>(B $BK\J8$N9T?t$r%+%&%s%H$7$=$NCM$r<($9(B Lines: $B%X%C%@$,@8@.$5$l$^$9!#(B imput $B$N%P!<%8%g%s>pJs$,!"(BX-Dispatcher: $B%X%C%@$G<($5$l$^$9!#(B 6. $B%(%i!<=hM}(B $B%a%C%;!<%8$r(B SMTP $B%5!<%P$d(B NNTP $B%5!<%P$KEO$=$&$H$7$?:]$K%(%i!<$,JV$5$l$?(B $B>l9g$O!"%(%i!<=hM}$,9T$J$o$l$^$9!#0l;~%(%i!<$N>l9g$G(B --Queuing $B%*%W%7%g%s$,(B $B;XDj$5$l$F$$$k>l9g$O!"%a%C%;!<%8$O%-%e!<$KJ]B8$5$l$^$9!#(B $B915WE*%(%i!<$N>l9g!"$"$k$$$O0l;~%(%i!<$G$"$C$F$b(B --Queuing $B%*%W%7%g%s$,(B $B;XDj$5$l$F$$$J$+$C$?>l9g$O!"%(%i!<$,H/@8$7$?$3$H$,%l%]!<%H$5$l$^$9!#(B --Report=yes $B%*%W%7%g%s$,;XDj$5$l$F$$$k>l9g$O!"H/?.l9g$O!"%H%i%C%7%e=hM}(B ($B%a%C%;!<%8$N%U%!%$%k(B $BL>$NA0$K(B --TrashMark $B$G;XDj$7$?J8;z$rDI2C$9$k(B) $B$,9T$J$o$l$^$9!#(B --Report=no $B%*%W%7%g%s$,;XDj$5$l$F$$$?>l9g$O!"%a!<%k$K$h$k%l%]!<%H$O9T$J$o$l(B $B$:!"%(%i!<%a%C%;!<%8$r%(%i!<=PNO$K=q$-=P$9$H$H$b$K!"%a%C%;!<%8$O(B dead.letter $B%U%!%$%k$KJ]B8$5$l$^$9!#$?$@$7!"%I%i%U%H%a%C%;!<%8$,(B --Message ($BF1Ey$N%*%W(B $B%7%g%s$r4^$`(B) $B$K$h$C$F;XDj$5$l$F$$$?>l9g$O!"%H%i%C%7%e=hM}$O9T$J$o$l$:!"(B $B%U%!%$%k$,$=$N$^$^;D$5$l$^$9!#$^$?!"(Bdead.letter $B$K$bJ]B8$5$l$^$;$s!#(B $B$I$N>l9g$G$b!"%(%i!<$OH/?.MzNr%U%!%$%k$K5-O?$5$l$^$9(B($BH/?.MzNr%U%!%$%k$X$N(B $B5-O?$rM^@)$7$?>l9g$r=|$/(B)$B!#(B 7. $B4D6-@_Dj%U%!%$%k(B $B8D?M$N4D6-@_Dj%U%!%$%k$O!"(B~/.im/Config $B$G$9!#(B $B@_DjJ}K!$O!"(Bim $B%3%^%s%I72A4$F$G6&DL$G$9!#(B $B$?$@$7!"(Bimput $B$J$I(B config $BA*Br@_Dj$,$G$-$k%3%^%s%I$G$O!"(Bcase $B9T$G@_Dj(B $B%V%m%C%/$r6h@Z$j$^$9!#(Bcase $B9T$O$=$3$+$i@_Dj%V%m%C%/$,;O$^$k$3$H$r<($7!"(B $B%V%m%C%/$NL>A0$O(B case $B$KB3$1$F5-=R$7$^$9!#%U%!%$%k$N@hF,$+$i:G=i$N(B case $B9T$^$G$N4V$O(B default $B$N@_Dj$H$7$F07$o$l$^$9!#(B $B%U%!%$%k$N8e$m$K(B default $B$N@_Dj$r=q$-$?$$>l9g$O(B case default $B$H$7$^$9!#(B $BJ#?t$N%V%m%C%/L>$G6&M-$G$-$kDj5A$O!"(Bconfig: bn1,bn2 $B$N$h$&$K%V%m%C%/L>$r(B $BJ#?t5-=R$9$k$3$H$G$D$/$k$3$H$,$G$-$^$9!#(B $B@_Dj%U%!%$%k$N%5%s%W%k$r0J2<$K<($7$^$9!#(B Lines=3000 #Name=$BCfB<(B $BAGE5(B SMTPservers=mail.econ.kyoto-u.ac.jp NNTPservers=news.kuis.kyoto-u.ac.jp EmgSMTPsvrs=localhost FromDomain=econ.kyoto-u.ac.jp ToDomain=econ.kyoto-u.ac.jp Org=Faculty of Economics, Kyoto University, Japan case mew FromDomain=mew.org ToDomain=mew.org Org=Internet Message Group 8. $B%-%e!<$N7A<0(B --Queuing $B%*%W%7%g%s$,;XDj$5$l$F$$$F%a%C%;!<%8$NH/?.$,<:GT(B($B0l;~E*%(%i!<(B) $B$7$?>l9g!"$^$?$O!"(B--JustQueuing $B$,;XDj$5$l$F$$$k>l9g$O!"%a%C%;!<%8$,%-%e!<(B $B$KC_@Q$5$l$^$9!#(B $B%a%C%;!<%8$O!"(B--QueueDir $B$K;XDj$5$l$?%G%#%l%/%H%j$K!"O"HV$G(B 1 $B$+$i=g$K(B $B%a%C%;!<%8C10L$G%U%!%$%k$KJ]B8$5$l$^$9!#%U%!%$%k$NFbMF$O!"(B $BFbIt>uBVJ]B8MQ%G!<%?(B <$B6u9T(B> RFC822$B%X%C%@(B <$B6u9T(B> RFC822$BK\J8(B $B$H$$$&7A<0$K$J$C$F$$$^$9!#(Bimput $B$r(B --QueueStatus $B%*%W%7%g%s$r;XDj$7$F(B $B5/F0$9$k$H!"%-%e!<$KC_@Q$5$l$F$$$k%a%C%;!<%8$K4X$9$k>pJs$,I=<($5$l$^$9!#(B imput $B$r(B --ProcessQueue $B%*%W%7%g%s$r;XDj$7$F5/F0$9$k$H!">.$5$$HV9f$N(B $B%U%!%$%k$+$i=g$KG[Aw$r;n$_$F$$$-$^$9!#G[Aw$,<:GT$7$?%a%C%;!<%8$O!"(B $B915WE*%(%i!<$G$J$$8B$j!"$=$N$^$^%-%e!<$K;D$5$l$^$9!#(B 9. $BH/?.MzNr(B($B%m%0(B)$B%U%!%$%k$N7A<0(B $BH/?.MzNr%U%!%$%k$K$O!"(B1$B%"%/%7%g%s(B1$B9T$GH/?.MzNr$,5-O?$5$l$^$9!#(B $B7A<0$O!"(B $BF|IU(B $B;~4V(B proto=[p] server=[s] id=[m] from=[f] to=[t] stat=[r] $B$G!"(B[p], [s], [m], [t], [r] $B$O0J2<$NDL$j$G$9!#(B [p]: smtp SMTP $B$G@\B3(B esmtp ESMTP $B$G@\B3(B nntp NNTP $B$G@\B3(B fcc FCC$BMW5a$K$h$k%U%!%$%k$X$N=q$-9~$_(B queue $B%-%e!<$K4X$9$k=hM}(B dead-letter $BG[Aw$N<:GT$K$h$j(B dead.letter $B$X$N=q$-9~$_(B draft $B%I%i%U%H%a%C%;!<%8$K4X$9$k=hM}(B [s]: $B@\B3$7$?%5!<%P(B/$B%]!<%H(B $B%G%U%)%k%H$N%]!<%H$,MxMQ$5$l$?>l9g$O!"(B/$B%]!<%H(B $B>pJs$O>JN,$5$l$k(B $B%(%i!<$N>l9g$O!":G8e$K@\B3$7$?%5!<%P$K4X$9$k>pJs$,5-O?$5$l$k(B [m]: Message-Id: $B%X%C%@$NCM(B [f]: $BH/?.l9g$O!"(B () $B$G@_DjL>$,IU5-$5$l$k(B [t]: $Bl9g$O(B ',' $B$G6h@Z$i$l$k(B Bcc: $B$K5-=R$5$l$?%"%I%l%90J30$O!"(B<> $B$G0O$^$l$k(B [r]: sent $BG[Aw$N@.8y$r<($9(B $B%5!<%P$NJV$7$?pJs$,(B () $B$GIU5-$5$l$k(B skipped $B%5!<%P$X$NG[Aw$,@.8y$;$:!"l9g$N$?$a$K!"(B imput $B%9%/%j%W%HCf$G$O%U%C%/$H$7$F0J2<$N$b$N$,MQ0U$5$l$F$$$^$9!#(B $Hook_PreHeaderconv ISO-2022-JP $B%X%C%@JQ49=hM}$ND>A0(B $Hook_PreFinalHeaderProc $B%X%C%@$N:G=*D4@0=hM}$ND>A0(B $Hook_PreDispatching $BG[Aw=hM}$ND>A0(B $B$=$l$>$l$NJQ?t$K$O8F$S=P$9$Y$-4X?tL>$rDj5A$7$F$*$-$^$9!#(B $BDj5A$O!"(B--Require $B$GFI$_9~$^$;$k(B perl $B%9%/%j%W%H$NCf$G9T$$$^$9!#(B 11. Known Bugs SGI $B$N(B IRIX $B$N0lIt$G$O!"%a%C%;!<%8$NH/?.$,$&$^$/$G$-$J$$$H$$$&LdBj$,(B $B$"$k$+$b$7$l$^$;$s!#$=$N>l9g$O(B TcpTransaction.pm $B$NCf$N0J2<$NItJ,$rC5$7$F!"(B $BCf1{$N9T$N%3%a%s%H9T$r<($9(B # $B$r:o=|$7!"(Bprint $CHAN " "; $B$r3h$+$9$h$&$K(B $B$7$F$_$F$/$@$5$$!#(B ## if you have mysterious TCP/IP bug on IRIX/SGI # print $CHAN " "; ## endif [end of document] im-151/man/imhist.jis0000644000000000000000000000143006571360412013246 0ustar rootroot IMHIST $B%^%K%e%"%k(B $B5!G=(B: $BMzNr%G!<%?%Y!<%9$N4IM}(B $B%*%W%7%g%s(B: --lookup= $B;XDj$7$?(B message-id $B$N%G!<%?%Y!<%9$r8!:w$9$k!#(B --remove= $B;XDj$7$?(B message-id $B$r%G!<%?%Y!<%9$+$i:o=|$9$k!#(B --msg= on: --remove $B$r;XDj$7$?$H$-$K!";XDj$7$?%U%)(B $B%k%@$K$"$k%(%s%H%j$N$_$r:o=|$9$k!#(B --dump= on: $B%G!<%?%Y!<%9$NCf?H$r$9$Y$FI=<($9$k!#(B --add= $B$3$N%U%)%k%@$K$"$k$9$Y$F$N%a%C%;!<%8$r%G!<%?(B $B%Y!<%9$KDI2C$9$k!#(B --subfolders= on: -add $B$r;XDj$7$?$H$-$K!"%5%V%U%)%k%@$b8!(B $B:w$9$k!#(B --verbose= on: $B=hM}$K4X$9$k$5$^$6$^$J>pJs$rI=<($9$k!#(B --debug= on: $B%G%P%C%0%a%C%;!<%8$rI=<($9$k!#(B --help= on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B im-151/man/imali.jis0000644000000000000000000000072306571360407013054 0ustar rootroot IMALI $B%^%K%e%"%k(B $B5!G=(B: alias $B$NI=<((B $B%*%W%7%g%s(B: --host= on: mail $B$N(B alias $B$G$O$J$/$F(B host $B$N(B alias $B$r(B $BI=<($9$k!#(B --file= $B%G%U%)%k%H$N(B alias $B%U%!%$%k$NBe$o$j$K;HMQ$9$k(B alias $B%U%!%$%k$r;XDj$9$k!#(B --verbose= on: $B=hM}$K4X$9$k$5$^$6$^$J>pJs$rI=<($9$k!#(B --debug= on: $B%G%P%C%0%a%C%;!<%8$rI=<($9$k!#(B --help= on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B im-151/man/imstore.jis0000644000000000000000000000046606571360413013444 0ustar rootroot IMSTORE $B%^%K%e%"%k(B $B5!G=(B: $B%a%C%;!<%8$N3JG<(B $B%*%W%7%g%s(B: --dst= $B3JG<@h$N%U%)%k%@$r;XDj$9$k!#(B --verbose= on: $B=hM}$K4X$9$k$5$^$6$^$J>pJs$rI=<($9$k!#(B --debug= on: $B%G%P%C%0%a%C%;!<%8$rI=<($9$k!#(B --help= on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B im-151/man/imrm.jis0000644000000000000000000000072306571360412012721 0ustar rootroot IMRM $B%^%K%e%"%k(B $B5!G=(B: $B%a%C%;!<%8$N(B trash $B%U%)%k%@$X$N0\F0(B $B%*%W%7%g%s(B: --src= $B0\F085%U%)%k%@$r;XDj$9$k!#(B --dst= $B0\F0@h%U%)%k%@$r;XDj$9$k!#(B --noharm= on: $BF0:n$NFbMF$rI=<($9$k$@$1$G!" on: $B=hM}$K4X$9$k$5$^$6$^$J>pJs$rI=<($9$k!#(B --debug= on: $B%G%P%C%0%a%C%;!<%8$rI=<($9$k!#(B --help= on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B im-151/man/impack.jis0000644000000000000000000000062706571360412013224 0ustar rootroot IMPACK $B%^%K%e%"%k(B $B5!G=(B: $B%a%C%;!<%8$N%Q%C%/(B $B%*%W%7%g%s(B: --src= $B%Q%C%/$r9T$J$&%U%)%k%@$r;XDj$9$k!#(B --noharm= on: $BF0:n$NFbMF$rI=<($9$k$@$1$G!" on: $B=hM}$K4X$9$k$5$^$6$^$J>pJs$rI=<($9$k!#(B --debug= on: $B%G%P%C%0%a%C%;!<%8$rI=<($9$k!#(B --help= on: $B%X%k%W%a%C%;!<%8$rI=<($9$k!#(B im-151/immv.in0000644000000000000000000002063111566752617012007 0ustar rootroot#! @im_path_perl@ ################################################################ ### ### immv ### ### Author: Internet Message Group ### Created: Apr 23, 1997 ### Revised: Apr 23, 2007 ### BEGIN { @im_my_siteperl@ @im_src_siteperl@ }; $Prog = 'immv'; my $VERSION_DATE = "20110525"; my $VERSION_NUMBER = "151"; my $VERSION = "${Prog} version ${VERSION_DATE}(IM${VERSION_NUMBER})"; my $VERSION_INFORMATION = "${Prog} (IM ${VERSION_NUMBER}) ${VERSION_DATE} Copyright (C) 1999 IM developing team This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. "; ## ## Require packages ## use IM::Config; use IM::Folder; use IM::File; use IM::MsgStore; use IM::Util; use integer; use strict; use vars qw($Prog $EXPLANATION @OptConfig @msgs $opt_link $opt_noharm $opt_src @opt_dst $opt_verbose $opt_debug $opt_help $opt_version); ## ## Environments ## my %NewMsgCache = (); $EXPLANATION = "$VERSION file mail/news message in other folders Usage: $Prog [OPTIONS] FOLDER... MSGS... "; @OptConfig = ( 'src;f;;' => "Set source folder", 'dst;F@;;' => "Set destination folders", 'link;b;;' => "Remain original msg in src folder", 'SSHServer,S;s;localhost;SSH_server' => 'SSH port relay server', 'noharm;b;;' => "Display the commands but do not actually execute them", 'verbose;b;;' => 'With verbose messages', 'debug;d;;' => "With debug message", 'help;b;;' => "Display this help and exit", 'version,V;b;;' => "Output version information and exit", ); ## ## Profile and option processing ## init_opt(\@OptConfig); read_cfg(); read_opt(\@ARGV); # help? print("${VERSION_INFORMATION}") && exit $EXIT_SUCCESS if $opt_version; help($EXPLANATION) && exit $EXIT_SUCCESS if $opt_help; debug_option($opt_debug) if $opt_debug; ## ## Main ## @opt_dst = uniq(@opt_dst); @opt_dst || im_die "no folder specified.\n"; @ARGV || im_die "no message specified.\n"; @msgs = @ARGV; immv($opt_src, \@opt_dst, \@msgs); exit $EXIT_SUCCESS; ################################################## ## ## Work horse ## sub immv($$$) { my($src, $dsts, $msgs) = @_; my(@imap_dsts, @local_dsts); my($imap_src, $imap_dst, $news_src, $news_dst) = (0, 0, 0, 0); if ($src =~ /^-/) { $news_src = 1; } elsif ($src =~ /^%/) { $imap_src = 1; } foreach (@$dsts) { if (/^-/) { $news_dst = 1; } elsif (/^%/) { $imap_dst = 1; push(@imap_dsts, $_); } else { push(@local_dsts, $_); } } if ($news_dst) { im_die "refile to News folder is not permitted.\n"; } if ($news_src) { require IM::Nntp && import IM::Nntp qw(nntp_get_message); } if ($imap_src || $imap_dst) { require IM::Imap && import IM::Imap; require IM::GetPass && import IM::GetPass; } chk_folder_existance($src, @{$dsts}); $opt_link = 1 if (grep($src eq $_, @{$dsts})); @{$dsts} = grep($src ne $_, @{$dsts}); if (($imap_src && imap_open_folders(0, $src) < 0) || ($imap_dst && imap_open_folders(1, @imap_dsts) < 0)) { exit($EXIT_ERROR); } if ($src =~ /^%/) { imap2local($src, \@local_dsts, $msgs) if (scalar(@local_dsts) > 0); imap2imap($src, \@imap_dsts, $msgs) if (scalar(@imap_dsts) > 0); } elsif ($src =~ /^-/) { news2local($src, \@local_dsts, $msgs) if (scalar(@local_dsts) > 0); news2imap($src, \@imap_dsts, $msgs) if (scalar(@imap_dsts) > 0); } else { local2local($src, \@local_dsts, $msgs) if (scalar(@local_dsts) > 0); local2imap($src, \@imap_dsts, $msgs) if (scalar(@imap_dsts) > 0); } if ($imap_src || $imap_dst) { imap_close_folders(); } return 0; } sub local2local($$$) { my($src, $dsts, $msgs) = @_; my @msg_paths = get_impath($src, @$msgs); foreach (@msg_paths) { refile_one($src, $dsts, $_) if (-f $_); } } sub imap2local($$$) { my($src, $dsts, $msgs) = @_; my($msg, $Message); foreach $msg (@$msgs) { $Message = imap_get_message($src, $msg); refile_one("", $dsts, $Message); } imap_delete_message($src, @$msgs) unless ($opt_link); } sub news2local($$$) { my($src, $dsts, $msgs) = @_; my($msg, $rc, $Message); foreach $msg (@$msgs) { ($rc, $Message) = nntp_get_message($src, $msg); im_die($Message) if ($rc < 0); refile_one("", $dsts, $Message); } } sub refile_one($$$) { my($src, $dsts, $msg) = @_; my($dst, $dst_path, $link_it); foreach $dst (@{$dsts}) { if ($NewMsgCache{$dst}) { $NewMsgCache{$dst} =~ s|([^/]+)$|$1+1|e; # increment cache $dst_path = $NewMsgCache{$dst}; } else { $dst_path = $NewMsgCache{$dst} = get_impath($dst, 'new'); } if ($opt_link && $src ne "") { im_link($msg, $dst_path) || die $@; } elsif ($link_it) { im_link($link_it, $dst_path) || die $@; } else { if ($src eq "") { if (store_message($msg, $dst, 1) < 0) { im_warn("can't store msg to $dst folder.\n"); } } else { im_rename($msg, $dst_path) || die $@; } $link_it = $dst_path; } touch_folder($dst_path) unless ($opt_noharm); } } sub local2imap($$$) { my($src, $dsts, $msgs) = @_; my $msg; foreach $msg (@$msgs) { my $src_path = get_impath($src, ($msg)); if (-f $src_path) { imap_put_file($src, $dsts, $src_path); im_unlink($src_path); } } } sub news2imap($$$) { my($src, $dsts, $msgs) = @_; my($msg, $rc, $Message); foreach $msg (@$msgs) { ($rc, $Message) = nntp_get_message($src, $msg); im_die($Message) if ($rc < 0); imap_put_message($Message, $dsts); } } sub imap2imap($$$) { imap_refile(@_); } sub uniq(@) { my @array = @_; my %hash; foreach (@array) { $hash{$_} = $_; } return keys(%hash); } __END__ =head1 NAME immv - file mail/news message in other folders =head1 SYNOPSIS B [OPTIONS] FOLDER... MSGS... =head1 DESCRIPTION The I command moves messages from the source folder to the destination folders. This command is provided by IM (Internet Message). =head1 OPTIONS =over 5 =item I<-s, --src=FOLDER> Set source folder. Default value is "+inbox". =item I<-d, --dst=FOLDER,FOLDER...> Set destination folders. "--dst=+xxx" is equivalent to "+xxx". =item I<-l, --link={on,off}> Remain original msg in src folder. =item I<-S, --sshserver=SERVER> SSH port relay server. =item I<-n, --noharm={on,off}> Display the commands but do not actually execute them. =item I<-v, --verbose={on,off}> Print verbose messages when running. =item I<--debug=DEBUG_OPTION> Print debug messages when running. =item I<-h, --help> Display help message and exit. =item I<--version> Output version information and exit. =back =head1 COPYRIGHT IM (Internet Message) is copyrighted by IM developing team. You can redistribute it and/or modify it under the modified BSD license. See the copyright file for more details. =cut ### Copyright (C) 1997, 1998, 1999 IM developing team ### All rights reserved. ### ### Redistribution and use in source and binary forms, with or without ### modification, are permitted provided that the following conditions ### are met: ### ### 1. Redistributions of source code must retain the above copyright ### notice, this list of conditions and the following disclaimer. ### 2. Redistributions in binary form must reproduce the above copyright ### notice, this list of conditions and the following disclaimer in the ### documentation and/or other materials provided with the distribution. ### 3. Neither the name of the team nor the names of its contributors ### may be used to endorse or promote products derived from this software ### without specific prior written permission. ### ### THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS ``AS IS'' AND ### ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ### IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ### PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TEAM OR CONTRIBUTORS BE ### LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ### CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ### SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR ### BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ### WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE ### OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN ### IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ### Local Variables: ### mode: perl ### End: im-151/00usage0000644000000000000000000001354406570315631011671 0ustar rootroot IM Usage <<>> IM treats local mail folders, local/remote newsgroup spools, and local news folders. For historical reasons, mail folders start with "+" (e.g. "+inbox). Newsgroup spools are identified by the "-" keyword (e.g. "-gnu.emacs.sources"). Directories to store locally saved news messages are indicated by the "=" keyword (e.g. "=comp.lang.perl"). <<