77use PhpList \Core \Domain \Messaging \Service \Manager \BounceManager ;
88use PhpList \Core \Domain \Subscription \Service \Manager \SubscriberHistoryManager ;
99use PhpList \Core \Domain \Subscription \Service \SubscriberBlacklistService ;
10+ use Symfony \Contracts \Translation \TranslatorInterface ;
1011
1112class BlacklistEmailAndDeleteBounceHandler implements BounceActionHandlerInterface
1213{
1314 private SubscriberHistoryManager $ subscriberHistoryManager ;
1415 private BounceManager $ bounceManager ;
1516 private SubscriberBlacklistService $ blacklistService ;
17+ private TranslatorInterface $ translator ;
1618
1719 public function __construct (
1820 SubscriberHistoryManager $ subscriberHistoryManager ,
1921 BounceManager $ bounceManager ,
20- SubscriberBlacklistService $ blacklistService
22+ SubscriberBlacklistService $ blacklistService ,
23+ TranslatorInterface $ translator ,
2124 ) {
2225 $ this ->subscriberHistoryManager = $ subscriberHistoryManager ;
2326 $ this ->bounceManager = $ bounceManager ;
2427 $ this ->blacklistService = $ blacklistService ;
28+ $ this ->translator = $ translator ;
2529 }
2630
2731 public function supports (string $ action ): bool
@@ -32,14 +36,20 @@ public function supports(string $action): bool
3236 public function handle (array $ closureData ): void
3337 {
3438 if (!empty ($ closureData ['subscriber ' ])) {
39+ $ reason = $ this ->translator ->trans ('Email address auto blacklisted by bounce rule %rule_id% ' , [
40+ 'rule_id ' => $ closureData ['ruleId ' ]
41+ ]);
3542 $ this ->blacklistService ->blacklist (
3643 subscriber: $ closureData ['subscriber ' ],
37- reason: ' Email address auto blacklisted by bounce rule ' . $ closureData [ ' ruleId ' ]
44+ reason: $ reason
3845 );
46+ $ details = $ this ->translator ->trans ('User auto unsubscribed for bounce rule %rule_id% ' , [
47+ 'rule_id ' => $ closureData ['ruleId ' ]
48+ ]);
3949 $ this ->subscriberHistoryManager ->addHistory (
40- $ closureData ['subscriber ' ],
41- 'Auto Unsubscribed ' ,
42- ' User auto unsubscribed for bounce rule ' . $ closureData [ ' ruleId ' ]
50+ subscriber: $ closureData ['subscriber ' ],
51+ message: $ this -> translator -> trans ( 'Auto Unsubscribed ' ) ,
52+ details: $ details
4353 );
4454 }
4555 $ this ->bounceManager ->delete ($ closureData ['bounce ' ]);
0 commit comments