Commit 05a0cfc3 authored by lpsolit%gmail.com's avatar lpsolit%gmail.com

Bug 304005: Implement SMTP authentication support for email notifications -…

Bug 304005: Implement SMTP authentication support for email notifications - Patch by Fré©ric Buclin <LpSolit@gmail.com> r=mkanat a=LpSolit
parent 7c6954f9
......@@ -50,7 +50,7 @@ use base qw(Exporter);
check_opsys check_shadowdb check_urlbase check_webdotbase
check_netmask check_user_verify_class check_image_converter
check_mail_delivery_method check_notification check_timezone check_utf8
check_bug_status
check_bug_status check_smtp_auth
);
# Checking functions for the various values
......@@ -337,6 +337,14 @@ sub check_timezone {
return "";
}
sub check_smtp_auth {
my $username = shift;
if ($username) {
eval "require Authen::SASL";
return "Error requiring Authen::SASL: '$@'" if $@;
}
return "";
}
# OK, here are the parameter definitions themselves.
#
......@@ -354,6 +362,8 @@ sub check_timezone {
# The type value can be one of the following:
#
# t -- A short text entry field (suitable for a single line)
# p -- A short text entry field (as with type = 't'), but the string is
# replaced by asterisks (appropriate for passwords)
# l -- A long text field (suitable for many lines)
# b -- A boolean value (either 1 or 0)
# m -- A list of values, with many selectable (shows up as a select box)
......
......@@ -69,6 +69,17 @@ sub get_param_list {
default => 'localhost'
},
{
name => 'smtp_username',
type => 't',
default => '',
checker => \&check_smtp_auth
},
{
name => 'smtp_password',
type => 'p',
default => ''
},
{
name => 'smtp_debug',
type => 'b',
default => 0
......
......@@ -170,6 +170,12 @@ sub OPTIONAL_MODULES {
feature => 'LDAP Authentication'
},
{
package => 'SASL-Authen',
module => 'Authen::SASL',
version => 0,
feature => 'SMTP Authentication'
},
{
package => 'RadiusPerl',
module => 'Authen::Radius',
version => 0,
......
......@@ -124,6 +124,8 @@ sub MessageToMTA {
if ($method eq "SMTP") {
push @args, Host => Bugzilla->params->{"smtpserver"},
username => Bugzilla->params->{"smtp_username"},
password => Bugzilla->params->{"smtp_password"},
Hello => $hostname,
Debug => Bugzilla->params->{'smtp_debug'};
}
......
......@@ -30,8 +30,11 @@
<dd>[% panel.param_descs.${param.name} FILTER none %]
<p>
[% IF param.type == "t" %]
<input size="80" name="[% param.name FILTER html %]"
<input type="text" size="80" name="[% param.name FILTER html %]"
value="[% Param(param.name) FILTER html %]">
[% ELSIF param.type == "p" %]
<input type="password" size="80" name="[% param.name FILTER html %]"
value="[% Param(param.name) FILTER html %]" autocomplete="off">
[% ELSIF param.type == "l" %]
<textarea name="[% param.name FILTER html %]" rows="10" cols="80">
[% Param(param.name) FILTER html %]</textarea>
......
......@@ -55,6 +55,12 @@
smtpserver => "The SMTP server address (if using SMTP for mail delivery).",
smtp_username => "The username to pass to the SMTP server for SMTP authentication. " _
"Leave this field empty if your SMTP server doesn't require authentication.",
smtp_password => "The password to pass to the SMTP server for SMTP authentication. " _
"This field has no effect if the smtp_username parameter is left empty.",
smtp_debug => "If enabled, this will print detailed information to your" _
" web server's error log about the communication between" _
" $terms.Bugzilla and your SMTP server. You can use this to" _
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment