From 31f348523db25df2d1312ebe5c8e9e8825cc041c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Lahmann?= <lahmann@ub.uni-leipzig.de> Date: Thu, 17 Dec 2015 16:36:56 +0100 Subject: [PATCH] * allow securing connection to mailserver either via explicit setting in config.ini or by configured mailserver port --- config/vufind/config.ini | 4 ++++ module/VuFind/src/VuFind/Mailer/Factory.php | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/config/vufind/config.ini b/config/vufind/config.ini index d28382d9143..dc6a0de2f05 100644 --- a/config/vufind/config.ini +++ b/config/vufind/config.ini @@ -388,6 +388,10 @@ host = localhost port = 25 ;username = user ;password = pass +; If a login is required you can define which protocol to use for securing the +; connection. If no explicit protocol ('tls' or 'ssl') is configured, a protocol +; based on the configured port is chosen (587 -> tls, 487 -> ssl). +;secure = tls ; If set to false, users can send anonymous emails; otherwise, they must log in first require_login = true ; Should we put the logged-in user's address in the "from" field by default? diff --git a/module/VuFind/src/VuFind/Mailer/Factory.php b/module/VuFind/src/VuFind/Mailer/Factory.php index f47a9a7c92f..46ca1d9c396 100644 --- a/module/VuFind/src/VuFind/Mailer/Factory.php +++ b/module/VuFind/src/VuFind/Mailer/Factory.php @@ -64,6 +64,17 @@ class Factory implements \Zend\ServiceManager\FactoryInterface 'username' => $config->Mail->username, 'password' => $config->Mail->password ]; + if (isset($config->Mail->secure)) { + // always set user defined secure connection + $settings['connection_config']['ssl'] = $config->Mail->secure; + } else { + // set default secure connection based on configured port + if ($settings['port'] == '587') { + $settings['connection_config']['ssl'] = 'tls'; + } elseif ($settings['port'] == '487') { + $settings['connection_config']['ssl'] = 'ssl'; + } + } } $transport = new Smtp(); $transport->setOptions(new SmtpOptions($settings)); -- GitLab