Вход Регистрация
Файл: vendor/symfony/mailer/Command/MailerTestCommand.php
Строк: 163
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentMailerCommand;

use 
SymfonyComponentConsoleAttributeAsCommand;
use 
SymfonyComponentConsoleCommandCommand;
use 
SymfonyComponentConsoleInputInputArgument;
use 
SymfonyComponentConsoleInputInputInterface;
use 
SymfonyComponentConsoleInputInputOption;
use 
SymfonyComponentConsoleOutputOutputInterface;
use 
SymfonyComponentMailerTransportTransportInterface;
use 
SymfonyComponentMimeEmail;

/**
 * A console command to test Mailer transports.
 */
#[AsCommand(name: 'mailer:test', description: 'Test Mailer transports by sending an email')]
final class MailerTestCommand extends Command
{
    public function 
__construct(private TransportInterface $transport)
    {
        
$this->transport $transport;

        
parent::__construct();
    }

    protected function 
configure(): void
    
{
        
$this
            
->addArgument('to'InputArgument::REQUIRED'The recipient of the message')
            ->
addOption('from'nullInputOption::VALUE_OPTIONAL'The sender of the message''from@example.org')
            ->
addOption('subject'nullInputOption::VALUE_OPTIONAL'The subject of the message''Testing transport')
            ->
addOption('body'nullInputOption::VALUE_OPTIONAL'The body of the message''Testing body')
            ->
addOption('transport'nullInputOption::VALUE_OPTIONAL'The transport to be used')
            ->
setHelp(<<<'EOF'
The <info>%command.name%</info> command tests a Mailer transport by sending a simple email message:

<info>php %command.full_name% to@example.com</info>

You can also specify a specific transport:

    <info>php %command.full_name% to@example.com --transport=transport_name</info>

Note that this command bypasses the Messenger bus if configured.

EOF
            );
    }

    protected function 
execute(InputInterface $inputOutputInterface $output): int
    
{
        
$message = (new Email())
            ->
to($input->getArgument('to'))
            ->
from($input->getOption('from'))
            ->
subject($input->getOption('subject'))
            ->
text($input->getOption('body'))
        ;
        if (
$transport $input->getOption('transport')) {
            
$message->getHeaders()->addTextHeader('X-Transport'$transport);
        }

        
$this->transport->send($message);

        return 
0;
    }
}
Онлайн: 1
Реклама