diff options
author | lpsolit%gmail.com <> | 2008-03-14 06:05:34 +0100 |
---|---|---|
committer | lpsolit%gmail.com <> | 2008-03-14 06:05:34 +0100 |
commit | 05a0cfc3eeb0b738c7e00840df7b49e162692044 (patch) | |
tree | 277eb6b7d9583963dcb0ecee1150efc4bb1f77cf /Bugzilla | |
parent | 7c6954f9189af00752c59112b79c79d8bef49390 (diff) | |
download | bugzilla-05a0cfc3eeb0b738c7e00840df7b49e162692044.tar.gz bugzilla-05a0cfc3eeb0b738c7e00840df7b49e162692044.tar.xz |
Bug 304005: Implement SMTP authentication support for email notifications - Patch by Frédéric Buclin <LpSolit@gmail.com> r=mkanat a=LpSolit
Diffstat (limited to 'Bugzilla')
-rw-r--r-- | Bugzilla/Config/Common.pm | 12 | ||||
-rw-r--r-- | Bugzilla/Config/MTA.pm | 11 | ||||
-rw-r--r-- | Bugzilla/Install/Requirements.pm | 6 | ||||
-rw-r--r-- | Bugzilla/Mailer.pm | 2 |
4 files changed, 30 insertions, 1 deletions
diff --git a/Bugzilla/Config/Common.pm b/Bugzilla/Config/Common.pm index 03e97d6a1..f5f5a3fb2 100644 --- a/Bugzilla/Config/Common.pm +++ b/Bugzilla/Config/Common.pm @@ -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) diff --git a/Bugzilla/Config/MTA.pm b/Bugzilla/Config/MTA.pm index 686d5b3e4..37d99d967 100644 --- a/Bugzilla/Config/MTA.pm +++ b/Bugzilla/Config/MTA.pm @@ -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 diff --git a/Bugzilla/Install/Requirements.pm b/Bugzilla/Install/Requirements.pm index 293740e3f..65df716bc 100644 --- a/Bugzilla/Install/Requirements.pm +++ b/Bugzilla/Install/Requirements.pm @@ -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, diff --git a/Bugzilla/Mailer.pm b/Bugzilla/Mailer.pm index 2702b8ff1..c002fb3db 100644 --- a/Bugzilla/Mailer.pm +++ b/Bugzilla/Mailer.pm @@ -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'}; } |