[TASK] Add preset for mail SMTP settings in install tool
[Packages/TYPO3.CMS.git] / typo3 / sysext / install / Classes / Configuration / Mail / SmtpPreset.php
1 <?php
2 namespace TYPO3\CMS\Install\Configuration\Mail;
3
4 /*
5 * This file is part of the TYPO3 CMS project.
6 *
7 * It is free software; you can redistribute it and/or modify it under
8 * the terms of the GNU General Public License, either version 2
9 * of the License, or any later version.
10 *
11 * For the full copyright and license information, please read the
12 * LICENSE.txt file that was distributed with this source code.
13 *
14 * The TYPO3 project - inspiring people to share!
15 */
16
17 use TYPO3\CMS\Install\Configuration;
18
19 /**
20 * SMTP settings handling preset
21 */
22 class SmtpPreset extends Configuration\AbstractPreset
23 {
24 /**
25 * @var string Name of preset
26 */
27 protected $name = 'Smtp';
28
29 /**
30 * @var int Priority of preset
31 */
32 protected $priority = 40;
33
34 /**
35 * @var array Configuration values handled by this preset
36 */
37 protected $configurationValues = [
38 'MAIL/transport' => 'smtp',
39 'MAIL/transport_sendmail_command' => '',
40 'MAIL/transport_smtp_server' => 'localhost:25',
41 'MAIL/transport_smtp_encrypt' => '',
42 'MAIL/transport_smtp_username' => '',
43 'MAIL/transport_smtp_password' => '',
44 ];
45
46 /**
47 * Get configuration values to activate prefix
48 *
49 * @return array Configuration values needed to activate prefix
50 */
51 public function getConfigurationValues()
52 {
53 $configurationValues = $this->configurationValues;
54 $keys = array_keys($configurationValues);
55 foreach ($keys as $key) {
56 if (!empty($this->postValues['Smtp'][$key])) {
57 $configurationValues[$key] = $this->postValues['Smtp'][$key];
58 }
59 }
60 if ($this->postValues['Mail']['enable'] === 'Smtp') {
61 $configurationValues['MAIL/transport'] = 'smtp';
62 }
63 return $configurationValues;
64 }
65
66 /**
67 * Check if sendmail path if set
68 *
69 * @return bool TRUE if sendmail path if set
70 */
71 public function isAvailable()
72 {
73 return true;
74 }
75 }