Subject: | Exchange commands use dashes |
When parsing the hello response:
if ($ok) {
my $h = ${*$me}{'net_smtp_esmtp'} = {};
my $ln;
foreach $ln (@msg) {
$h->{uc $1} = $2
if $ln =~ /(\w+)\b[= \t]*([^\n]*)/;
}
}
elsif ($me->status == CMD_ERROR) {
@msg = $me->message
if $ok = $me->_HELO($domain);
}
The match should not just be on \w, but include dashes as well. A
working fix could be to match on:
if $ln =~ /([\w-]+)\b[= \t]*([^\n]*)/;
instead.
This will allow it to pick up oddities such as Exchange's X-EXPS commands.
Thank you,
PaulW