diff --git a/app/Utilities/EmailHelper.php b/app/Utilities/EmailHelper.php index 62f4a3b..2e57a5f 100644 --- a/app/Utilities/EmailHelper.php +++ b/app/Utilities/EmailHelper.php @@ -11,6 +11,8 @@ namespace WizdomNetworks\WizeWeb\Utilities; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; +use WizdomNetworks\WizeWeb\Services\TokenService; +use WizdomNetworks\WizeWeb\Services\UnsubscribeTokenService; class EmailHelper { @@ -154,4 +156,20 @@ class EmailHelper return ''; } } + /** + * Generate a secure unsubscribe link for a subscriber email. + * + * @param string $email + * @return string + */ + public static function buildUnsubscribeLink(string $email): string + { + $ts = time(); + $tokenService = new TokenService(); + $unsubscribeTokenService = new UnsubscribeTokenService($tokenService); + + $sig = $unsubscribeTokenService->generate($email, $ts); + + return $_ENV['APP_URL'] . "/unsubscribe?email=" . urlencode($email) . "&ts=$ts&sig=$sig"; + } }