Skip to content

Commit 5396f7a

Browse files
committed
BlacklistEmailAndDeleteBounceHandler
1 parent 8a50af0 commit 5396f7a

File tree

2 files changed

+30
-5
lines changed

2 files changed

+30
-5
lines changed

resources/translations/messages.en.xlf

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,21 @@
115115
</target>
116116
</trans-unit>
117117

118+
<trans-unit id="messaging.email_blacklist.by_rule">
119+
<source>Email address auto blacklisted by bounce rule %rule_id%</source>
120+
<target>Email address auto blacklisted by bounce rule %rule_id%</target>
121+
</trans-unit>
122+
123+
<trans-unit id="messaging.email_blacklist.message">
124+
<source>Auto Unsubscribed</source>
125+
<target>Auto Unsubscribed</target>
126+
</trans-unit>
127+
128+
<trans-unit id="messaging.email_blacklist.details">
129+
<source>User auto unsubscribed for bounce rule %rule_id%</source>
130+
<target>User auto unsubscribed for bounce rule %rule_id%</target>
131+
</trans-unit>
132+
118133
<!-- Messaging -->
119134
<trans-unit id="messaging.imap_not_available">
120135
<source>PHP IMAP extension not available. Falling back to Webklex IMAP.</source>

src/Domain/Messaging/Service/Handler/BlacklistEmailAndDeleteBounceHandler.php

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,25 @@
77
use PhpList\Core\Domain\Messaging\Service\Manager\BounceManager;
88
use PhpList\Core\Domain\Subscription\Service\Manager\SubscriberHistoryManager;
99
use PhpList\Core\Domain\Subscription\Service\SubscriberBlacklistService;
10+
use Symfony\Contracts\Translation\TranslatorInterface;
1011

1112
class 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

Comments
 (0)