mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-30 00:01:50 +00:00
Bug 302418: re-enable sendmail support for Windows - Patch by byron jones (glob) <bugzilla@glob.com.au> r=wurblzap a=justdave
This commit is contained in:
parent
277fb684e7
commit
14e840bb9c
@ -615,6 +615,14 @@ sub MessageToMTA {
|
||||
my ($msg) = (@_);
|
||||
return if (Param('mail_delivery_method') eq "none");
|
||||
|
||||
if (Param("mail_delivery_method") eq "sendmail" && $^O =~ /MSWin32/i) {
|
||||
open(SENDMAIL, '|' . SENDMAIL_EXE . ' -t -i') ||
|
||||
die "Failed to execute " . SENDMAIL_EXE . ": $!\n";
|
||||
print SENDMAIL $msg;
|
||||
close SENDMAIL;
|
||||
return;
|
||||
}
|
||||
|
||||
my @args;
|
||||
if (Param("mail_delivery_method") eq "sendmail" && !Param("sendmailnow")) {
|
||||
push @args, "-ODeliveryMode=deferred";
|
||||
|
@ -89,6 +89,8 @@ use base qw(Exporter);
|
||||
FULLTEXT_BUGLIST_LIMIT
|
||||
|
||||
ADMIN_GROUP_NAME
|
||||
|
||||
SENDMAIL_EXE
|
||||
);
|
||||
|
||||
@Bugzilla::Constants::EXPORT_OK = qw(contenttypes);
|
||||
@ -238,4 +240,7 @@ use constant FULLTEXT_BUGLIST_LIMIT => 200;
|
||||
# Default administration group name.
|
||||
use constant ADMIN_GROUP_NAME => 'admin';
|
||||
|
||||
# Path to sendmail.exe (Windows only)
|
||||
use constant SENDMAIL_EXE => '/usr/lib/sendmail.exe';
|
||||
|
||||
1;
|
||||
|
@ -1182,9 +1182,12 @@ if (@oldparams) {
|
||||
}
|
||||
|
||||
# Set mail_delivery_method to SMTP and prompt for SMTP server
|
||||
# if running on Windows and set to sendmail (Mail::Mailer doesn't
|
||||
# support sendmail on Windows)
|
||||
if ($^O =~ /MSWin32/i && Param('mail_delivery_method') eq 'sendmail') {
|
||||
# if running on Windows and no third party sendmail wrapper
|
||||
# is available
|
||||
if ($^O =~ /MSWin32/i
|
||||
&& Param('mail_delivery_method') eq 'sendmail'
|
||||
&& !-e SENDMAIL_EXE)
|
||||
{
|
||||
print "\nBugzilla requires an SMTP server to function on Windows.\n" .
|
||||
"Please enter your SMTP server's hostname: ";
|
||||
my $smtp = $answer{'SMTP_SERVER'}
|
||||
|
@ -54,6 +54,7 @@ use Socket;
|
||||
|
||||
use Bugzilla::Config qw(:DEFAULT $templatedir $webdotdir);
|
||||
use Bugzilla::Util;
|
||||
use Bugzilla::Constants;
|
||||
|
||||
# Checking functions for the various values
|
||||
# Some generic checking functions are included in Bugzilla::Config
|
||||
@ -247,6 +248,18 @@ sub find_languages {
|
||||
return join(', ', @languages);
|
||||
}
|
||||
|
||||
sub check_mail_delivery_method {
|
||||
my $check = check_multi(@_);
|
||||
return $check if $check;
|
||||
my $mailer = shift;
|
||||
if ($mailer eq 'sendmail' && $^O =~ /MSWin32/i) {
|
||||
# look for sendmail.exe
|
||||
return "Failed to locate " . SENDMAIL_EXE
|
||||
unless -e SENDMAIL_EXE;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
# OK, here are the parameter definitions themselves.
|
||||
#
|
||||
# Each definition is a hash with keys:
|
||||
@ -694,7 +707,8 @@ sub find_languages {
|
||||
name => 'mail_delivery_method',
|
||||
desc => 'Defines how email is sent, or if it is sent at all.<br><ul>' .
|
||||
'<li>\'sendmail\', \'smtp\' and \'qmail\' are all MTAs. ' .
|
||||
'(only SMTP is available in Windows.)</li>' .
|
||||
'You need to install a third-party sendmail replacement if ' .
|
||||
'you want to use sendmail on Windows.' .
|
||||
'<li>\'testfile\' is useful for debugging: all email is stored ' .
|
||||
'in data/mailer.testfile instead of being sent. For more ' .
|
||||
'information, see the Mail::Mailer manual.</li>' .
|
||||
@ -703,10 +717,10 @@ sub find_languages {
|
||||
'stored.</li></ul>' ,
|
||||
type => 's',
|
||||
choices => $^O =~ /MSWin32/i
|
||||
? ['smtp', 'testfile', 'none']
|
||||
? ['smtp', 'testfile', 'sendmail', 'none']
|
||||
: ['sendmail', 'smtp', 'qmail', 'testfile', 'none'],
|
||||
default => 'sendmail',
|
||||
checker => \&check_multi
|
||||
checker => \&check_mail_delivery_method
|
||||
},
|
||||
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user