From 05a0cfc3eeb0b738c7e00840df7b49e162692044 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Fri, 14 Mar 2008 05:05:34 +0000 Subject: Bug 304005: Implement SMTP authentication support for email notifications - Patch by Frédéric Buclin r=mkanat a=LpSolit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bugzilla/Config/Common.pm | 12 +++++++++++- Bugzilla/Config/MTA.pm | 11 +++++++++++ Bugzilla/Install/Requirements.pm | 6 ++++++ Bugzilla/Mailer.pm | 2 ++ 4 files changed, 30 insertions(+), 1 deletion(-) (limited to 'Bugzilla') 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 @@ -68,6 +68,17 @@ sub get_param_list { type => 't', default => 'localhost' }, + { + name => 'smtp_username', + type => 't', + default => '', + checker => \&check_smtp_auth + }, + { + name => 'smtp_password', + type => 'p', + default => '' + }, { name => 'smtp_debug', type => 'b', 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 @@ -169,6 +169,12 @@ sub OPTIONAL_MODULES { version => 0, feature => 'LDAP Authentication' }, + { + package => 'SASL-Authen', + module => 'Authen::SASL', + version => 0, + feature => 'SMTP Authentication' + }, { package => 'RadiusPerl', module => 'Authen::Radius', 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'}; } -- cgit v1.2.3-24-g4f1b