diff --git a/admin/smtp_servers.pl b/admin/smtp_servers.pl index c01290f227..13feb0ecbc 100755 --- a/admin/smtp_servers.pl +++ b/admin/smtp_servers.pl @@ -107,6 +107,51 @@ if ( $op eq 'cud-add' ) { reason => 'invalid_id' }; } +} elsif ( $op eq 'cud-test_email' ) { + my $smtp_server_id = $input->param('smtp_server_id'); + my $smtp_server; + + $smtp_server = Koha::SMTP::Servers->find($smtp_server_id) + unless !$smtp_server_id; + + if ($smtp_server) { + my $test_email_address = C4::Context->preference('KohaAdminEmailAddress'); + my $smtp_transport = $smtp_server->transport; + + my $params = { + to => $test_email_address, + from => $test_email_address, + sender => $test_email_address, + subject => "Koha SMTP Test", + text_body => "Email is working." + }; + + my $email = Koha::Email->create($params); + + try { + $email->send_or_die( { transport => $smtp_transport } ); + push @messages, + { + type => 'message', + code => 'success_on_test' + }; + } catch { + push @messages, + { + type => 'alert', + code => 'error_on_test' + }; + }; + + } else { + push @messages, + { + type => 'alert', + code => 'error_on_test', + reason => 'invalid_id' + }; + } + $op = 'list'; } elsif ( $op eq 'cud-edit_save' ) { my $smtp_server_id = $input->param('smtp_server_id'); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smtp_servers.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smtp_servers.tt index aff2c2774b..424669e242 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smtp_servers.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smtp_servers.tt @@ -60,10 +60,14 @@ [% SWITCH m.code %] [% CASE 'error_on_update' %] An error occurred trying to open the server for editing. The passed ID is invalid. + [% CASE 'error_on_test' %] + Failed to send test email. [% CASE 'error_on_insert' %] An error occurred when adding the server. The library already has an SMTP server set. [% CASE 'success_on_update' %] Server updated successfully. + [% CASE 'success_on_test' %] + Test email sent successfully to KohaAdminEmailAddress. [% CASE 'success_on_insert' %] Server added successfully. [% CASE %] @@ -435,6 +439,13 @@ encodeURIComponent(row.name.escapeHtml()) + '"> ' + _("Delete") + + "" + + "\n"; + result += + ' ' + + _("Send test email") + ""; return result; },