summaryrefslogtreecommitdiff
path: root/cpan/lib/Mail/Mailer/smtp.pm
diff options
context:
space:
mode:
Diffstat (limited to 'cpan/lib/Mail/Mailer/smtp.pm')
-rw-r--r--cpan/lib/Mail/Mailer/smtp.pm17
1 files changed, 13 insertions, 4 deletions
diff --git a/cpan/lib/Mail/Mailer/smtp.pm b/cpan/lib/Mail/Mailer/smtp.pm
index 6db78fa4..42eac5e4 100644
--- a/cpan/lib/Mail/Mailer/smtp.pm
+++ b/cpan/lib/Mail/Mailer/smtp.pm
@@ -2,6 +2,7 @@ package Mail::Mailer::smtp;
use vars qw(@ISA);
use Net::SMTP;
use Mail::Util qw(mailaddress);
+use Carp;
require Mail::Mailer::rfc822;
@ISA = qw(Mail::Mailer::rfc822);
@@ -10,10 +11,12 @@ sub can_cc { 0 }
sub exec {
my($self, $exe, $args, $to) = @_;
- my %opt = @$args;
- my $host = $opt{'Server'} || undef;
+ my %opt = @$args;
+ my $host = $opt{Server} || undef;
+ $opt{Debug} ||= 0;
+
# for Net::SMTP we do not really exec
- my $smtp = Net::SMTP->new($host, Debug => 0)
+ my $smtp = Net::SMTP->new($host, %opt)
or return undef;
${*$self}{'sock'} = $smtp;
@@ -52,8 +55,14 @@ sub close {
my $sock = ${*$self}{'sock'};
if ($sock && fileno($sock)) {
$self->epilogue;
- close($sock);
+ # Epilogue should destroy the SMTP filehandle,
+ # but just to be on the safe side.
+ if ($sock && fileno($sock)) {
+ close $sock
+ or croak 'Cannot destroy socket filehandle';
+ }
}
+ 1;
}
package Mail::Mailer::smtp::pipe;