From 92675a606e90a57745ee1059e56d264a3213c954 Mon Sep 17 00:00:00 2001
From: Daniel Kesselberg <mail@danielkesselberg.de>
Date: Mon, 12 Nov 2018 23:27:18 +0100
Subject: [PATCH] Add sendmailmode to gui

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
---
 lib/private/Settings/Admin/Mail.php                |  1 +
 settings/Controller/MailSettingsController.php     |  3 ++-
 settings/js/admin.js                               |  2 ++
 .../templates/settings/admin/additional-mail.php   | 14 ++++++++++++++
 4 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/lib/private/Settings/Admin/Mail.php b/lib/private/Settings/Admin/Mail.php
index fc20b7eeb3f..40dcc3dba0d 100644
--- a/lib/private/Settings/Admin/Mail.php
+++ b/lib/private/Settings/Admin/Mail.php
@@ -57,6 +57,7 @@ class Mail implements ISettings {
 			'mail_smtpauth'         => $this->config->getSystemValue('mail_smtpauth', false),
 			'mail_smtpname'         => $this->config->getSystemValue('mail_smtpname', ''),
 			'mail_smtppassword'     => $this->config->getSystemValue('mail_smtppassword', ''),
+			'mail_sendmailmode'     => $this->config->getSystemValue('mail_sendmailmode', 'smtp'),
 		];
 
 		if ($parameters['mail_smtppassword'] !== '') {
diff --git a/settings/Controller/MailSettingsController.php b/settings/Controller/MailSettingsController.php
index d1ceb14a63c..5d2e67ce6e3 100644
--- a/settings/Controller/MailSettingsController.php
+++ b/settings/Controller/MailSettingsController.php
@@ -91,7 +91,8 @@ class MailSettingsController extends Controller {
 									$mail_smtphost,
 									$mail_smtpauthtype,
 									$mail_smtpauth,
-									$mail_smtpport) {
+									$mail_smtpport,
+									$mail_sendmailmode) {
 
 		$params = get_defined_vars();
 		$configs = [];
diff --git a/settings/js/admin.js b/settings/js/admin.js
index 56bbaead520..1c766ef51a5 100644
--- a/settings/js/admin.js
+++ b/settings/js/admin.js
@@ -158,6 +158,7 @@ $(document).ready(function(){
 			$('#mail_smtpsecure_label').addClass('hidden');
 			$('#mail_smtpsecure').addClass('hidden');
 			$('#mail_credentials').addClass('hidden');
+			$('#mail_sendmailmode_label, #mail_sendmailmode').removeClass('hidden');
 		} else {
 			$('#setting_smtpauth').removeClass('hidden');
 			$('#setting_smtphost').removeClass('hidden');
@@ -166,6 +167,7 @@ $(document).ready(function(){
 			if ($('#mail_smtpauth').is(':checked')) {
 				$('#mail_credentials').removeClass('hidden');
 			}
+			$('#mail_sendmailmode_label, #mail_sendmailmode').addClass('hidden');
 		}
 	});
 
diff --git a/settings/templates/settings/admin/additional-mail.php b/settings/templates/settings/admin/additional-mail.php
index 0a708015968..362c301281d 100644
--- a/settings/templates/settings/admin/additional-mail.php
+++ b/settings/templates/settings/admin/additional-mail.php
@@ -47,6 +47,11 @@ if ($_['mail_smtpmode'] === 'qmail') {
 	$mail_smtpmode[] = ['qmail', 'qmail'];
 }
 
+$mail_sendmailmode = [
+	'smtp' => 'smtp (-bs)',
+	'pipe' => 'pipe (-t)'
+];
+
 ?>
 
 <div class="section" id="mail_general_settings">
@@ -84,6 +89,15 @@ if ($_['mail_smtpmode'] === 'qmail') {
 					<option value="<?php p($secure)?>" <?php p($selected) ?>><?php p($name) ?></option>
 				<?php endforeach;?>
 			</select>
+
+			<label id="mail_sendmailmode_label" for="mail_sendmailmode" class="<?= $_['mail_smtpmode'] !== 'sendmail' ? 'hidden' : '' ?>">
+				<?php p($l->t('Sendmail mode')); ?>
+			</label>
+			<select name="mail_sendmailmode" id="mail_sendmailmode" class="<?= $_['mail_smtpmode'] !== 'sendmail' ? 'hidden' : '' ?>">
+				<?php foreach ($mail_sendmailmode as $sendmailmodeValue => $sendmailmodeLabel): ?>
+					<option value="<?php p($sendmailmodeValue)?>" <?= $sendmailmodeValue === $_['mail_sendmailmode'] ? 'selected="selected"' : '' ?>><?php p($sendmailmodeLabel) ?></option>
+				<?php endforeach;?>
+			</select>
 		</p>
 
 		<p>
-- 
GitLab