X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=delay_mail;h=68e4d92f0e28fec10746eb3dd6072262f54345b1;hb=32dd5b77200d893951c21395995ffa942eca1d5f;hp=9b5ef44c74af5815812f9a283ef8fe915bc91eb8;hpb=b18a745610b9b67deba0d6c4cd6a01dd620c1b73;p=bin.git diff --git a/delay_mail b/delay_mail index 9b5ef44..68e4d92 100755 --- a/delay_mail +++ b/delay_mail @@ -41,7 +41,8 @@ Enqueue a message which should be sent out later =item B<--delay> -Length of delay (man at for details of specification) +Length of delay (man at for details of specification; Debian systems +see /usr/share/doc/at/timespec) =item B<--email> @@ -93,6 +94,25 @@ Display this manual. =head1 EXAMPLES +The following entry in your procmailrc (or similar) will do the dirty +work: + + :0 Hhbw + * !Message-Id: .*delay[0-9]+@ + * ^TO \/you\+de[^@]+ + |delay_mail --mailto you@foo.com --enqueue --email --delay $MATCH + + delay_mail --list; + +and + + atq; + +will tell you that things are queued up and ready to go. + +You can then bounce messages that you want to deal with later to +you+delay+10=30am_tomorrow@foo.com or similar, and you'll receive the +message again at 10:30 AM tomorrow to deal with. =cut @@ -107,6 +127,7 @@ my %options = (debug => 0, GetOptions(\%options,'debug|d+','help|h|?','man|m', 'list|l','dequeue=s','process|p=s','enqueue|e', + 'queue=s', 'delay|D=s','email|E', 'mailto|mail-to|M=s', ); @@ -235,12 +256,9 @@ elsif ($options{process}) { open($sendmail_fh,'|-','/usr/sbin/sendmail',$q_e->{mailto}) or die "Unable to open sendmail to send message"; print {$sendmail_fh} $q_e->{email}; - close($sendmail_fh); - waitpid(-1,0); - if ($?) { - print STDERR "Sendmail failed with $?\n"; - exit $?; - } + close($sendmail_fh) or + print STDERR "Sendmail failed with $?\n" and + exit $?; unlink("$options{queue}/$options{process}"); } else {