Skip to content

Commit

Permalink
[RELEASE] Version 3.1.0
Browse files Browse the repository at this point in the history
[FEATURE] Add support for lux_letter mail sending redirection
  • Loading branch information
Luc MULLER committed Mar 19, 2024
1 parent 3c53488 commit 451aaab
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?php

declare(strict_types=1);

namespace Ameos\AmeosMailredirect\EventListener;

use Ameos\AmeosMailredirect\Service\RedirectService;
use In2code\Luxletter\Events\SendMailSendNewsletterBeforeMailMessageEvent;
use In2code\Luxletter\Mail\MailMessage;

class LuxSendMailSendNewsletterBeforeMailMessageEvent
{
/**
* @param RedirectService $redirectService
*/
public function __construct(private readonly RedirectService $redirectService)
{
}

/**
* event before mailer sent message
* redirect mail if redirection is enable
*
* @param SendMailSendNewsletterBeforeEvent $event
* @return void
*/
public function __invoke(SendMailSendNewsletterBeforeMailMessageEvent $event): void
{
/** @var MailMessage */
$message = $event->getMailMessage();
if (is_a($message, MailMessage::class)) {
$prefixSubject = $this->redirectService->getSubjectPrefix();

if ($prefixSubject !== '') {
$message->setSubject($prefixSubject . ' ' . $message->getSubject());
}

if ($this->redirectService->isEnabled()) {
$originalRecipients = array_keys($event->getReceiver());
$originalRecipientsCopy = $this->redirectService->symfonyToAdress($message->getCc());

$receiver = $this->redirectService->getRecipientsRaw();
$message->setTo($receiver);

$message->html(
sprintf(
'%s<br />To : %s',
$message->getHtmlBody(),
implode(';', $originalRecipients)
)
);
$message->text(
sprintf(
'%s%sTo : %s',
$message->getTextBody(),
chr(10),
implode(';', $originalRecipients)
)
);
}

if ($this->redirectService->isCopyEnabled()) {
$message->html(
sprintf(
'%s<br />Cc : %s',
$message->getHtmlBody(),
implode(';', $originalRecipientsCopy)
)
);
$message->text(
sprintf(
'%s%sCc : %s',
$message->getTextBody(),
chr(10),
implode(';', $originalRecipientsCopy)
)
);
$message->cc(...$this->redirectService->getRecipientsForCopy());
}
}
}
}
6 changes: 6 additions & 0 deletions Configuration/Services.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,9 @@ services:
- name: event.listener
identifier: "ameos/mailredirect/beforemailersentmessage"
event: TYPO3\CMS\Core\Mail\Event\BeforeMailerSentMessageEvent

Ameos\AmeosMailredirect\EventListener\LuxSendMailSendNewsletterBeforeMailMessageEvent:
tags:
- name: event.listener
identifier: "ameos/mailredirect/luxsendmailsendnewsletterbeforeMailmessageevent"
event: In2code\Luxletter\Events\SendMailSendNewsletterBeforeMailMessageEvent
2 changes: 1 addition & 1 deletion ext_emconf.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
'clearCacheOnLoad' => 0,
'lockType' => '',
'author_company' => 'Ameos',
'version' => '3.0.0',
'version' => '3.1.0',
'constraints' => [
'depends' => [
'typo3' => '12.4.0-12.4.99',
Expand Down

0 comments on commit 451aaab

Please sign in to comment.