xiaoqiang zhao <[email protected]> writes:
> @@ -1664,6 +1674,14 @@ foreach my $t (@files) {
> }
> }
> $message_id = undef;
> + $num_sent++;
> + if ($num_sent == $batch_size) {
> + $num_sent = 0;
> + $smtp->quit;
> + $smtp = undef;
> + $auth = 0;
Two suggestions.
(1) I do not think $smtp is always valid when we come here; it is
unsafe to unconditionally say $smtp->quit like this patch does.
$smtp->quit if defined $smtp;
may help codepaths like $dry_run and also the case where
$smtp_server is the absolute path to a local program.
(2) You are setting $auth to zero to force re-authentication to
happen. It would be more consistent to the state of $auth that
is not-yet-used to "undef $auth;" here instead. After all, the
variable starts its life in an undefined state.
So all in all
$smtp->quit if defined $smtp;
undef $smtp;
undef $auth;
perhaps?
This change of course forces re-authentication every N messages,
which may not hurt those who use some form of credential helper, but
that may be something we want to mention in the log message.
> + sleep($relogin_delay);
> + }
> }
Thanks.