Skip to content
Snippets Groups Projects
Commit 884c68a7 authored by Stefan Galinski's avatar Stefan Galinski :video_game:
Browse files

[BUGFIX] Fix formhandler integration, save mails

parent 13b46a6e
No related branches found
No related tags found
No related merge requests found
...@@ -28,7 +28,6 @@ namespace SGalinski\SgMail\Service; ...@@ -28,7 +28,6 @@ namespace SGalinski\SgMail\Service;
use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Object\ObjectManager; use TYPO3\CMS\Extbase\Object\ObjectManager;
use TYPO3\CMS\Lang\LanguageService;
use Typoheads\Formhandler\Finisher\AbstractFinisher; use Typoheads\Formhandler\Finisher\AbstractFinisher;
/** /**
...@@ -62,9 +61,6 @@ class FormhandlerFinisherService extends AbstractFinisher { ...@@ -62,9 +61,6 @@ class FormhandlerFinisherService extends AbstractFinisher {
* @return array $gp * @return array $gp
*/ */
public function process() { public function process() {
/** @var $translator LanguageService */
$translator = (TYPO3_MODE === 'FE' ? $GLOBALS['TSFE'] : $GLOBALS['LANG']);
if (!isset($this->settings['to_address'])) { if (!isset($this->settings['to_address'])) {
$toAddressField = $this->settings['to_address_field']; $toAddressField = $this->settings['to_address_field'];
$toAddress = $this->gp[$toAddressField]; $toAddress = $this->gp[$toAddressField];
...@@ -72,16 +68,15 @@ class FormhandlerFinisherService extends AbstractFinisher { ...@@ -72,16 +68,15 @@ class FormhandlerFinisherService extends AbstractFinisher {
$toAddress = $this->settings['to_address']; $toAddress = $this->settings['to_address'];
} }
$fromAddress = [$this->settings['from_address'] => $this->settings['from_name']];
$objectManager = GeneralUtility::makeInstance(ObjectManager::class); $objectManager = GeneralUtility::makeInstance(ObjectManager::class);
/** @var \SGalinski\SgMail\Service\MailTemplateService $mailTemplateService */ /** @var \SGalinski\SgMail\Service\MailTemplateService $mailTemplateService */
$mailTemplateService = $objectManager->get(MailTemplateService::class); $mailTemplateService = $objectManager->get(MailTemplateService::class);
$mailTemplateService->setToAddresses($toAddress); $mailTemplateService->setToAddresses($toAddress);
$mailTemplateService->setFromAddress($fromAddress); $mailTemplateService->setFromAddress($this->settings['from_address']);
$mailTemplateService->setTemplateName($this->settings['template_key']); $mailTemplateService->setTemplateName($this->settings['template_key']);
$mailTemplateService->setExtensionKey($this->settings['extension_key']); $mailTemplateService->setExtensionKey($this->settings['extension_key']);
$mailTemplateService->setMarkers($this->gp); $mailTemplateService->setMarkers($this->gp);
$mailTemplateService->setIgnoreMailQueue($this->settings['ignore_mail_queue'] == TRUE);
$mailTemplateService->sendEmail(); $mailTemplateService->sendEmail();
return $this->gp; return $this->gp;
......
...@@ -115,7 +115,13 @@ class MailTemplateService { ...@@ -115,7 +115,13 @@ class MailTemplateService {
* @var \SGalinski\SgMail\Domain\Repository\TemplateRepository * @var \SGalinski\SgMail\Domain\Repository\TemplateRepository
* @inject * @inject
*/ */
protected $templateRepository = NULL; protected $templateRepository;
/**
* @var \TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager
* @inject
*/
protected $persistenceManager;
/** /**
* MailTemplateService constructor. * MailTemplateService constructor.
...@@ -244,6 +250,7 @@ class MailTemplateService { ...@@ -244,6 +250,7 @@ class MailTemplateService {
$emailBody = preg_replace('/(<br[\s]?[\/]?>[\s]*){3,}/', '<br /><br />', $emailBody); $emailBody = preg_replace('/(<br[\s]?[\/]?>[\s]*){3,}/', '<br /><br />', $emailBody);
if ($this->ignoreMailQueue) { if ($this->ignoreMailQueue) {
$this->addMailToMailQueue($subject, $emailBody, $this->priority, TRUE);
$this->mailMessage->setBody($emailBody, 'text/html'); $this->mailMessage->setBody($emailBody, 'text/html');
$this->mailMessage->send(); $this->mailMessage->send();
} else { } else {
...@@ -259,8 +266,9 @@ class MailTemplateService { ...@@ -259,8 +266,9 @@ class MailTemplateService {
* @param string $subject * @param string $subject
* @param string $emailBody * @param string $emailBody
* @param int $priority * @param int $priority
* @param bool $sent
*/ */
private function addMailToMailQueue($subject, $emailBody, $priority) { private function addMailToMailQueue($subject, $emailBody, $priority, $sent = FALSE) {
/** @var ObjectManager $objectManager */ /** @var ObjectManager $objectManager */
$objectManager = GeneralUtility::makeInstance(ObjectManager::class); $objectManager = GeneralUtility::makeInstance(ObjectManager::class);
...@@ -272,9 +280,11 @@ class MailTemplateService { ...@@ -272,9 +280,11 @@ class MailTemplateService {
$mail->setPriority($priority); $mail->setPriority($priority);
$mail->setBccAddresses(implode(',', $this->bccAddresses)); $mail->setBccAddresses(implode(',', $this->bccAddresses));
$mail->setCcAddresses(implode(',', $this->ccAddresses)); $mail->setCcAddresses(implode(',', $this->ccAddresses));
$mail->setSent($sent);
$mailRepository = $objectManager->get(MailRepository::class); $mailRepository = $objectManager->get(MailRepository::class);
$mailRepository->add($mail); $mailRepository->add($mail);
$this->persistenceManager->persistAll();
} }
/** /**
...@@ -286,7 +296,7 @@ class MailTemplateService { ...@@ -286,7 +296,7 @@ class MailTemplateService {
} }
/** /**
* @param array|string $toAddresses * @param string $toAddresses
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setToAddresses($toAddresses) { public function setToAddresses($toAddresses) {
...@@ -296,7 +306,7 @@ class MailTemplateService { ...@@ -296,7 +306,7 @@ class MailTemplateService {
} }
/** /**
* @param array|string $fromAddress * @param string $fromAddress
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setFromAddress($fromAddress) { public function setFromAddress($fromAddress) {
...@@ -316,7 +326,7 @@ class MailTemplateService { ...@@ -316,7 +326,7 @@ class MailTemplateService {
} }
/** /**
* @param array|string $replyToAddress * @param string $replyToAddress
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setReplyToAddress($replyToAddress) { public function setReplyToAddress($replyToAddress) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment