mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-01-08 20:43:50 +00:00
Bug 277437 : Use Mail::Mailer (Perl module) for mail delivery
Patch by Andrei Benea <abenea@gmail.com> r=vladd a=justdave
This commit is contained in:
parent
2560574e5b
commit
284ddc69a6
@ -35,6 +35,9 @@ use Bugzilla::RelationSet;
|
||||
use Bugzilla::Config qw(:DEFAULT $datadir);
|
||||
use Bugzilla::Util;
|
||||
|
||||
use Mail::Mailer;
|
||||
use Mail::Header;
|
||||
|
||||
# This code is really ugly. It was a commandline interface, then it was moved
|
||||
# There are package-global variables which we rely on ProcessOneBug to clean
|
||||
# up each time, and other sorts of fun.
|
||||
@ -877,23 +880,27 @@ sub NewProcessOnePerson ($$$$$$$$$$$$$) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
# XXX: Should eventually add $mail_from and $mail_to options to
|
||||
# control the SMTP Envelope. -mkanat
|
||||
sub MessageToMTA ($) {
|
||||
my ($msg) = (@_);
|
||||
my ($msg) = (@_);
|
||||
return unless $enableSendMail;
|
||||
|
||||
my $sendmailparam = "";
|
||||
unless (Param("sendmailnow")) {
|
||||
$sendmailparam = "-ODeliveryMode=deferred";
|
||||
my @args;
|
||||
if (Param("maildeliverymethod") eq "sendmail" && Param("sendmailnow")) {
|
||||
push @args, "-ODeliveryMode=deferred";
|
||||
}
|
||||
|
||||
if ($enableSendMail == 1) {
|
||||
open(SENDMAIL, "|/usr/lib/sendmail $sendmailparam -t -i") ||
|
||||
die "Can't open sendmail";
|
||||
|
||||
print SENDMAIL trim($msg) . "\n";
|
||||
close SENDMAIL;
|
||||
if (Param("maildeliverymethod") eq "smtp") {
|
||||
push @args, Server => Param("smtpserver");
|
||||
}
|
||||
my $mailer = new Mail::Mailer Param("maildeliverymethod"), @args;
|
||||
|
||||
$msg =~ /(.*?)\n\n(.*)/ms;
|
||||
my @header_lines = split(/\n/, $1);
|
||||
my $body = $2;
|
||||
|
||||
my $headers = new Mail::Header \@header_lines, Modify => 0;
|
||||
$mailer->open($headers->header_hashref);
|
||||
print $mailer $msg;
|
||||
$mailer->close;
|
||||
}
|
||||
|
||||
1;
|
||||
|
@ -302,7 +302,11 @@ my $modules = [
|
||||
{
|
||||
name => 'Text::Wrap',
|
||||
version => '2001.0131'
|
||||
}
|
||||
},
|
||||
{
|
||||
name => 'Mail::Mailer',
|
||||
version => '1.65'
|
||||
},
|
||||
];
|
||||
|
||||
my %ppm_modules = (
|
||||
@ -318,6 +322,7 @@ my %ppm_modules = (
|
||||
'GD' => 'GD',
|
||||
'GD::Graph' => 'GDGraph',
|
||||
'GD::Text::Align' => 'GDTextUtil',
|
||||
'Mail::Mailer' => 'MailTools',
|
||||
);
|
||||
|
||||
sub install_command {
|
||||
|
@ -670,6 +670,17 @@ sub find_languages {
|
||||
default => ''
|
||||
},
|
||||
|
||||
{
|
||||
name => 'maildeliverymethod',
|
||||
desc => 'The method used for mail delivery. The testfile method ' .
|
||||
'is useful for debugging (for more information see the ' .
|
||||
'Mail::Mailer manual)',
|
||||
type => 's',
|
||||
choices => ['sendmail', 'smtp', 'qmail', 'testfile'],
|
||||
default => 'sendmail',
|
||||
checker => \&check_multi
|
||||
},
|
||||
|
||||
{
|
||||
name => 'sendmailnow',
|
||||
desc => 'Sites using anything older than version 8.12 of \'sendmail\' ' .
|
||||
@ -683,6 +694,13 @@ sub find_languages {
|
||||
default => 1
|
||||
},
|
||||
|
||||
{
|
||||
name => 'smtpserver',
|
||||
desc => 'The SMTP server address (if using SMTP for mail delivery).',
|
||||
type => 't',
|
||||
default => 'localhost'
|
||||
},
|
||||
|
||||
{
|
||||
name => 'passwordmail',
|
||||
desc => 'The email that gets sent to people to tell them their password.' .
|
||||
|
Loading…
Reference in New Issue
Block a user