. */ namespace OC\Settings\Admin; class Controller { public static function setMailSettings($args) { \OC_Util::checkAdminUser(); \OCP\JSON::callCheck(); $l = \OC_L10N::get('settings'); $smtp_settings = array( 'mail_domain' => null, 'mail_from_address' => null, 'mail_smtpmode' => array('sendmail', 'smtp', 'qmail', 'php'), 'mail_smtpsecure' => array('', 'ssl', 'tls'), 'mail_smtphost' => null, 'mail_smtpport' => null, 'mail_smtpauthtype' => array('LOGIN', 'PLAIN', 'NTLM'), 'mail_smtpauth' => true, 'mail_smtpname' => null, 'mail_smtppassword' => null, ); foreach ($smtp_settings as $setting => $validate) { if (!$validate) { if (!isset($_POST[$setting]) || $_POST[$setting] === '') { \OC_Config::deleteKey( $setting ); } else { \OC_Config::setValue( $setting, $_POST[$setting] ); } } else if (is_bool($validate)) { if (!empty($_POST[$setting])) { \OC_Config::setValue( $setting, (bool) $_POST[$setting] ); } else { \OC_Config::deleteKey( $setting ); } } else if (is_array($validate)) { if (!isset($_POST[$setting]) || $_POST[$setting] === '') { \OC_Config::deleteKey( $setting ); } else if (in_array($_POST[$setting], $validate)) { \OC_Config::setValue( $setting, $_POST[$setting] ); } else { $message = $l->t('Invalid value supplied for %s', array(self::getFieldname($setting, $l))); \OC_JSON::error( array( "data" => array( "message" => $message)) ); exit; } } } \OC_JSON::success(array("data" => array( "message" => $l->t("Saved") ))); } public static function getFieldname($setting, $l) { switch ($setting) { case 'mail_smtpmode': return $l->t( 'SMTP mode' ); case 'mail_smtpsecure': return $l->t( 'Secure SMTP' ); case 'mail_smtpauthtype': return $l->t( 'Authentification method for SMTP' ); } } }