Add overrides for configuration (MAIL FROM/EHLO).

New commandline options: -s <sender> and -e <EHLO>.
Change documentation accordingly.

Signed-off-by: Thomas Hochstein <thh@inter.net>
This commit is contained in:
Thomas Hochstein 2010-06-17 22:56:14 +02:00
parent fd1fe450c1
commit 2121a934c3

View file

@ -35,7 +35,7 @@ my $myself = basename($0);
# read commandline options # read commandline options
my %options; my %options;
getopts('Vhqlrf:m:', \%options); getopts('Vhqlrf:m:s:e:', \%options);
# -V: display version # -V: display version
if ($options{'V'}) { if ($options{'V'}) {
@ -52,18 +52,24 @@ if ($options{'h'}) {
# display usage information if neither -f nor an address are present # display usage information if neither -f nor an address are present
if (!$options{'f'} and !$ARGV[0]) { if (!$options{'f'} and !$ARGV[0]) {
print "Usage: $myself [-hqlr] [-m <host>] <address>|-f <file>\n"; print "Usage: $myself [-hqlr] [-m <host>] [-s <from>] [-e <EHLO>] <address>|-f <file>\n";
print "Options: -V display copyright and version\n"; print "Options: -V display copyright and version\n";
print " -h show documentation\n"; print " -h show documentation\n";
print " -q quiet (no output, just exit with 0/1/2/3)\n"; print " -q quiet (no output, just exit with 0/1/2/3)\n";
print " -l extended logging\n"; print " -l extended logging\n";
print " -r test random address to verify verification\n"; print " -r test random address to verify verification\n";
print " -m <host> no DNS lookup, just test this host\n"; print " -m <host> no DNS lookup, just test this host\n";
print " -s <from> override configured value for MAIL FROM\n";
print " -e <EHLO> override configured value for EHLO\n";
print " <address> mail address to check\n\n"; print " <address> mail address to check\n\n";
print " -f <file> parse file (one address per line)\n"; print " -f <file> parse file (one address per line)\n";
exit(100); exit(100);
}; };
# -s / -e: override configuration
$config{'from'} = $options{'s'} if $options{'s'};
$config{'helo'} = $options{'e'} if $options{'e'};
# -f: open file and read addresses to @adresses # -f: open file and read addresses to @adresses
my @addresses; my @addresses;
if ($options{'f'}) { if ($options{'f'}) {
@ -369,7 +375,7 @@ checkmail - check deliverability of a mail address
=head1 SYNOPSIS =head1 SYNOPSIS
B<checkmail> [B<-Vhqlr>] [B<-m> I<host>] I<address>|B<-f> I<file> B<checkmail> [B<-Vhqlr>] [B<-m> I<host>] [-s I<sender>] [-e I<EHLO>] I<address>|B<-f> I<file>
=head1 REQUIREMENTS =head1 REQUIREMENTS
@ -426,6 +432,9 @@ The sender address to be used for I<MAIL FROM> while testing.
=back =back
You may override that configuration by using the B<-e> and B<-s>
command line options.
=head2 Usage =head2 Usage
After configuring the script you may run your first test with After configuring the script you may run your first test with
@ -537,6 +546,14 @@ particular host irrespective of DNS entries. For example:
checkmail -m test.host.example user@domain.example checkmail -m test.host.example user@domain.example
=item B<-s> I<sender> (value for MAIL FROM)
Override configuration and use I<sender> for MAIL FROM.
=item B<-e> I<EHLO> (value for EHLO)
Override configuration and use I<EHLO> for EHLO.
=item B<-f> I<file> (file) =item B<-f> I<file> (file)
Process all addresses from I<file> (one on each line). Process all addresses from I<file> (one on each line).