From 961a348562c9d3959197bbdd48347206445c6dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bjo=CC=88rn=20Fromme?= Date: Fri, 20 Apr 2018 15:49:31 +0200 Subject: [PATCH] Implement contact form autoreply for epreisen --- .../ep_theme/Classes/Service/EmailService.php | 28 +++++++++++++++++-- .../Configuration/TypoScript/constants.txt | 4 +++ .../Configuration/TypoScript/setup.txt | 2 ++ .../Private/Templates/Email/Autoreply.html | 15 ++++++++++ 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 web/typo3conf/ext/ep_theme/Resources/Private/Templates/Email/Autoreply.html diff --git a/web/typo3conf/ext/ep_theme/Classes/Service/EmailService.php b/web/typo3conf/ext/ep_theme/Classes/Service/EmailService.php index afb1faff..267ddc0e 100644 --- a/web/typo3conf/ext/ep_theme/Classes/Service/EmailService.php +++ b/web/typo3conf/ext/ep_theme/Classes/Service/EmailService.php @@ -69,6 +69,8 @@ class EmailService implements SingletonInterface { $fromEmail = $this->settings['settings']['contactFormToEmail']; $fromName = $this->settings['settings']['contactFormToName']; + $enableAutoreply = $this->settings['settings']['enableContactFormAutoreply']; + $autoreplySubject = $this->settings['settings']['contactFormAutoreplySubject']; /** @var MailMessage $message */ $message = GeneralUtility::makeInstance(MailMessage::class); @@ -82,9 +84,31 @@ class EmailService implements SingletonInterface $view->assignMultiple($variables); $message->setBody($view->render(), 'text/html'); - $message->send(); + $messageSent = $message->send(); + $autoreplySent = false; - return $message->isSent(); + if ($enableAutoreply) { + $contactForm = $variables['contactForm']; + $toEmail = $contactForm->getEmail(); + $toName = $contactForm->getName(); + $templateName = 'Email/Autoreply'; + + /** @var MailMessage $message */ + $message = GeneralUtility::makeInstance(MailMessage::class); + $message + ->setTo([$toEmail => $toName]) + ->setFrom([$fromEmail => $fromName]) + ->setSubject($autoreplySubject) + ; + + $view = $this->getView($templateName); + $view->assignMultiple($variables); + $message->setBody($view->render(), 'text/html'); + + $autoreplySent = $message->send(); + } + + return $messageSent && $autoreplySent; } /** diff --git a/web/typo3conf/ext/ep_theme/Configuration/TypoScript/constants.txt b/web/typo3conf/ext/ep_theme/Configuration/TypoScript/constants.txt index c537c6b6..91b3d8d0 100644 --- a/web/typo3conf/ext/ep_theme/Configuration/TypoScript/constants.txt +++ b/web/typo3conf/ext/ep_theme/Configuration/TypoScript/constants.txt @@ -58,6 +58,10 @@ plugin.tx_eptheme { contactFormToEmail = # cat=eptheme/400/150; type=string; label=Contact form name to contactFormToName = + # cat=eptheme/400/160; type=boolean; label=Enable contact form autoreply + enableContactFormAutoreply = 0 + # cat=eptheme/400/170 type=string; label=Contact form autoreply subject + contactFormAutoreplySubject = Ihre Anfrage bei E&P Reisen # cat=eptheme/100/100; type=string; label=Facebook URL facebookUrl = diff --git a/web/typo3conf/ext/ep_theme/Configuration/TypoScript/setup.txt b/web/typo3conf/ext/ep_theme/Configuration/TypoScript/setup.txt index da56fa50..52800c36 100644 --- a/web/typo3conf/ext/ep_theme/Configuration/TypoScript/setup.txt +++ b/web/typo3conf/ext/ep_theme/Configuration/TypoScript/setup.txt @@ -75,6 +75,8 @@ plugin.tx_eptheme { forcePartnerIdSelect = {$plugin.tx_eptheme.settings.forcePartnerIdSelect} contactFormToEmail = {$plugin.tx_eptheme.settings.contactFormToEmail} contactFormToName = {$plugin.tx_eptheme.settings.contactFormToName} + enableContactFormAutoreply = {$plugin.tx_eptheme.settings.enableContactFormAutoreply} + contactFormAutoreplySubject = {$plugin.tx_eptheme.settings.contactFormAutoreplySubject} groupsContactFormPageUid = {$plugin.tx_eptheme.settings.groupsContactFormPageUid} blogDetailPageUid = {$plugin.tx_eptheme.settings.blogDetailPageUid} } diff --git a/web/typo3conf/ext/ep_theme/Resources/Private/Templates/Email/Autoreply.html b/web/typo3conf/ext/ep_theme/Resources/Private/Templates/Email/Autoreply.html new file mode 100644 index 00000000..9a4cd583 --- /dev/null +++ b/web/typo3conf/ext/ep_theme/Resources/Private/Templates/Email/Autoreply.html @@ -0,0 +1,15 @@ +
+ + + + +

Sehr geehrte Damen und Herren,

+

auf Grund einer internen Schulung ist unser Büro bis Dienstag, 24.04.2018 nicht besetzt.

+

In dringenden Fällen schreiben Sie eine Mail an nils.klems@ep-reisen.de, die E-Mails werden nur in + unregelmäßigen Abständen gelesen.

+

Vielen Dank.

+
+ +