From 5234a65472f0ace446c9e9e221f56cf27d807bd7 Mon Sep 17 00:00:00 2001
From: Torsten Oppermann <torsten@sgalinski.de>
Date: Fri, 4 Aug 2017 15:26:45 +0200
Subject: [PATCH] [TASK] Only send test mail when input valid mail

---
 Classes/Controller/MailController.php       | 11 ++++++++---
 Resources/Private/Templates/Mail/Index.html |  2 +-
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/Classes/Controller/MailController.php b/Classes/Controller/MailController.php
index 74d53b18..b914c8a4 100644
--- a/Classes/Controller/MailController.php
+++ b/Classes/Controller/MailController.php
@@ -210,6 +210,14 @@ class MailController extends ActionController {
 			);
 		}
 
+		$message = LocalizationUtility::translate('backend.success', 'sg_mail');
+		$this->addFlashMessage($message, '', FlashMessage::OK);
+
+		if (!filter_var($parameters['emailAddress'], FILTER_VALIDATE_EMAIL)) {
+			$arguments = $this->request->getArguments();
+			$this->redirect('index', NULL, NULL, $arguments);
+		}
+
 		$objectManager = GeneralUtility::makeInstance(ObjectManager::class);
 		/** @var \SGalinski\SgMail\Service\MailTemplateService $mailTemplateService */
 		$mailTemplateService = $objectManager->get(MailTemplateService::class);
@@ -231,9 +239,6 @@ class MailController extends ActionController {
 			$this->addFlashMessage($message, '', FlashMessage::ERROR);
 		}
 
-		$message = LocalizationUtility::translate('backend.success', 'sg_mail');
-		$this->addFlashMessage($message, '', FlashMessage::OK);
-
 		$arguments = $this->request->getArguments();
 		$this->redirect('index', NULL, NULL, $arguments);
 	}
diff --git a/Resources/Private/Templates/Mail/Index.html b/Resources/Private/Templates/Mail/Index.html
index 2cc69dcc..717be9e3 100644
--- a/Resources/Private/Templates/Mail/Index.html
+++ b/Resources/Private/Templates/Mail/Index.html
@@ -79,7 +79,7 @@
 				<f:form method="post" controller="Mail" action="sendTestMail">
 					<div class="col-md-12 form-group">
 						<f:form.submit class="btn-primary btn form-group" value="{f:translate(key:'backend.send_test')}" />
-						<f:form.textfield name="parameters[emailAddress]" type="email" required="TRUE" class="email-input form-group" value="{beUserMail}" />
+						<f:form.textfield name="parameters[emailAddress]" class="email-input form-group" value="{beUserMail}" />
 						<f:form.hidden name="parameters[selectedTemplate]" value="{selectedTemplateKey}" />
 						<f:form.hidden name="parameters[selectedExtensionKey]" value="{selectedTemplate.extension}" />
 						<f:form.hidden name="parameters[selectedExtension]" value="{selectedTemplate.extension}" />
-- 
GitLab