1414use PhpList \Core \Domain \Messaging \Service \RateLimitedCampaignMailer ;
1515use PhpList \Core \Domain \Messaging \Service \MaxProcessTimeLimiter ;
1616use PhpList \Core \Domain \Messaging \Service \MessageProcessingPreparator ;
17+ use PhpList \Core \Domain \Subscription \Service \Manager \SubscriberHistoryManager ;
1718use PhpList \Core \Domain \Subscription \Service \Provider \SubscriberProvider ;
1819use PhpList \Core \Domain \Subscription \Model \Subscriber ;
1920use Psr \Log \LoggerInterface ;
@@ -35,6 +36,7 @@ class CampaignProcessor
3536 private MaxProcessTimeLimiter $ timeLimiter ;
3637 private RequeueHandler $ requeueHandler ;
3738 private TranslatorInterface $ translator ;
39+ private SubscriberHistoryManager $ subscriberHistoryManager ;
3840
3941 public function __construct (
4042 RateLimitedCampaignMailer $ mailer ,
@@ -46,6 +48,7 @@ public function __construct(
4648 MaxProcessTimeLimiter $ timeLimiter ,
4749 RequeueHandler $ requeueHandler ,
4850 TranslatorInterface $ translator ,
51+ SubscriberHistoryManager $ subscriberHistoryManager ,
4952 ) {
5053 $ this ->mailer = $ mailer ;
5154 $ this ->entityManager = $ entityManager ;
@@ -56,6 +59,7 @@ public function __construct(
5659 $ this ->timeLimiter = $ timeLimiter ;
5760 $ this ->requeueHandler = $ requeueHandler ;
5861 $ this ->translator = $ translator ;
62+ $ this ->subscriberHistoryManager = $ subscriberHistoryManager ;
5963 }
6064
6165 public function process (Message $ campaign , ?OutputInterface $ output = null ): void
@@ -89,6 +93,14 @@ public function process(Message $campaign, ?OutputInterface $output = null): voi
8993 $ output ?->writeln($ this ->translator ->trans ('Invalid email, marking unconfirmed: %email% ' , [
9094 '%email% ' => $ subscriber ->getEmail (),
9195 ]));
96+ $ this ->subscriberHistoryManager ->addHistory (
97+ subscriber: $ subscriber ,
98+ message: $ this ->translator ->trans ('Subscriber marked unconfirmed for invalid email address ' ),
99+ details: $ this ->translator ->trans (
100+ 'Marked unconfirmed while sending campaign %message_id% ' ,
101+ ['%message_id% ' => $ campaign ->getId ()]
102+ )
103+ );
92104 continue ;
93105 }
94106
0 commit comments