Spaces:
No application file
No application file
namespace Mautic\EmailBundle\Command; | |
use Mautic\CoreBundle\Helper\CoreParametersHelper; | |
use Mautic\EmailBundle\MonitoredEmail\Fetcher; | |
use Symfony\Component\Console\Command\Command; | |
use Symfony\Component\Console\Input\InputInterface; | |
use Symfony\Component\Console\Input\InputOption; | |
use Symfony\Component\Console\Output\OutputInterface; | |
/** | |
* CLI command to check for messages. | |
*/ | |
class ProcessFetchEmailCommand extends Command | |
{ | |
public function __construct( | |
private CoreParametersHelper $parametersHelper, | |
private Fetcher $fetcher | |
) { | |
parent::__construct(); | |
} | |
protected function configure() | |
{ | |
$this | |
->setName('mautic:email:fetch') | |
->setAliases( | |
[ | |
'mautic:emails:fetch', | |
] | |
) | |
->addOption('--message-limit', '-m', InputOption::VALUE_OPTIONAL, 'Limit number of messages to process at a time.') | |
->setHelp( | |
<<<'EOT' | |
The <info>%command.name%</info> command is used to fetch and process messages such as bounces and unsubscribe requests. Configure the Monitored Email settings in Mautic's Configuration. | |
<info>php %command.full_name%</info> | |
EOT | |
); | |
} | |
protected function execute(InputInterface $input, OutputInterface $output): int | |
{ | |
$limit = $input->getOption('message-limit'); | |
$mailboxes = $this->parametersHelper->get('monitored_email'); | |
unset($mailboxes['general']); | |
$mailboxes = array_keys($mailboxes); | |
$this->fetcher->setMailboxes($mailboxes) | |
->fetch($limit); | |
foreach ($this->fetcher->getLog() as $log) { | |
$output->writeln($log); | |
} | |
return Command::SUCCESS; | |
} | |
protected static $defaultDescription = 'Fetch and process monitored email.'; | |
} | |