@Ozzy47 @Painbaker
I set this up on our dev server, where we have email enabled in the config but all accounts (aside from a couple) set to
Account state: Email invalid (bounced)
.
After adding an automatic badge for 10 posts (which applies to nearly all accounts), the new badge email was sent to 500+ emails (despite the accounts being set to
Account state: Email invalid (bounced)
. Most of the emails bounced, and now our Amazon SES account is under review.
It even tried to send emails to accounts without email addresses (something I've never seen an addon do before), which generated these errors in the error log:
Code:
Server error log
Exception: Email to [unknown] failed setup: Trying to send email to user without email (ID: 557) src/XF/Mail/Mail.php:97
Generated by: Unknown account Feb 28, 2024 at 4:48 PM
Stack trace
#0 src/addons/OzzModz/Badges/Service/Award.php(200): XF\Mail\Mail->setToUser(Object(SV\DailyStatistics\XF\Entity\User))
#1 src/addons/OzzModz/Badges/Service/Award.php(170): OzzModz\Badges\Service\Award->sendEmail()
#2 src/XF/Service/ValidateAndSavableTrait.php(42): OzzModz\Badges\Service\Award->_save()
#3 src/addons/OzzModz/Badges/Repository/UserBadge.php(343): OzzModz\Badges\Service\Award->save()
#4 src/addons/OzzModz/Badges/Job/UserBadgeUpdate.php(65): OzzModz\Badges\Repository\UserBadge->updateBadgeForUser(Object(SV\DailyStatistics\XF\Entity\User), Object(OzzModz\Badges\Entity\Badge), Object(XF\Mvc\Entity\ArrayCollection))
#5 src/XF/Job/Atomic.php(40): OzzModz\Badges\Job\UserBadgeUpdate->run(2.25265)
#6 src/XF/Job/Manager.php(260): XF\Job\Atomic->run(8)
#7 src/addons/SV/SlowQueryLogger/XF/Job/Manager.php(34): XF\Job\Manager->runJobInternal(Array, 8)
#8 src/XF/Job/Manager.php(202): SV\SlowQueryLogger\XF\Job\Manager->runJobInternal(Array, 8)
#9 src/XF/Job/Manager.php(86): XF\Job\Manager->runJobEntry(Array, 8)
#10 src/XF/Cli/Command/RunJobs.php(59): XF\Job\Manager->runQueue(false, 8)
#11 src/vendor/symfony/console/Command/Command.php(255): XF\Cli\Command\RunJobs->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 src/vendor/symfony/console/Application.php(992): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 src/vendor/symfony/console/Application.php(255): Symfony\Component\Console\Application->doRunCommand(Object(XF\Cli\Command\RunJobs), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 src/vendor/symfony/console/Application.php(148): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#15 src/XF/Cli/Runner.php(111): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#16 cmd.php(15): XF\Cli\Runner->run()
#17 {main}
Request state
array(1) {
["cli"] => string(80) "/home/dev/public/cmd.php --quiet xf:run-jobs"
}
Any chance we can get this fixed ASAP so it doesn't happen again?