summaryrefslogtreecommitdiff
path: root/cpan/lib/Mail/Mailer
diff options
context:
space:
mode:
Diffstat (limited to 'cpan/lib/Mail/Mailer')
-rw-r--r--cpan/lib/Mail/Mailer/qmail.pm9
-rw-r--r--cpan/lib/Mail/Mailer/rfc822.pm7
-rw-r--r--cpan/lib/Mail/Mailer/smtp.pm17
3 files changed, 28 insertions, 5 deletions
diff --git a/cpan/lib/Mail/Mailer/qmail.pm b/cpan/lib/Mail/Mailer/qmail.pm
new file mode 100644
index 00000000..ea312606
--- /dev/null
+++ b/cpan/lib/Mail/Mailer/qmail.pm
@@ -0,0 +1,9 @@
+package Mail::Mailer::qmail;
+use vars qw(@ISA);
+require Mail::Mailer::rfc822;
+@ISA = qw(Mail::Mailer::rfc822);
+
+sub exec {
+ my($self, $exe, $args, $to) = @_;
+ exec(( $exe ));
+}
diff --git a/cpan/lib/Mail/Mailer/rfc822.pm b/cpan/lib/Mail/Mailer/rfc822.pm
index dcb0dbca..fa59d0fe 100644
--- a/cpan/lib/Mail/Mailer/rfc822.pm
+++ b/cpan/lib/Mail/Mailer/rfc822.pm
@@ -8,7 +8,12 @@ sub set_headers {
local($\)="";
foreach(keys %$hdrs) {
next unless m/^[A-Z]/;
- print $self "$_: ", join(",", $self->to_array($hdrs->{$_})), "\n";
+
+ my ($h);
+ foreach $h ($self->to_array($hdrs->{$_}))
+ { $h =~ s/\n+\Z//;
+ print $self "$_: ", $h, "\n";
+ }
}
print $self "\n"; # terminate headers
}
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;