| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | <?phpnamespace Grav\Plugin\Console;use Grav\Common\Grav;use Grav\Console\ConsoleCommand;use Grav\Plugin\Email\Email;use Grav\Plugin\Email\Utils as EmailUtils;use Symfony\Component\Console\Input\InputOption;/** * Class TestEmailCommand * @package Grav\Console\Cli\ */class TestEmailCommand extends ConsoleCommand{    /**     * @var array     */    protected $options = [];    /**     *     */    protected function configure()    {        $this            ->setName('test-email')            ->setAliases(['testemail'])            ->addOption(                'to',                't',                InputOption::VALUE_REQUIRED,                'An email address to send the email to'            )            ->addOption(                'env',                'e',                InputOption::VALUE_OPTIONAL,                'The environment to trigger a specific configuration. For example: localhost, mysite.dev, www.mysite.com'            )            ->addOption(                'subject',                's',                InputOption::VALUE_OPTIONAL,                'A subject for the email'            )            ->addOption(                'body',                'b',                InputOption::VALUE_OPTIONAL,                'The body of the email'            )            ->setDescription('Sends a test email using the plugin\'s configuration')            ->setHelp('The <info>test-email</info> command sends a test email using the plugin\'s configuration');    }    /**     * @return int|null|void     */    protected function serve()    {        // TODO: remove when requiring Grav 1.7+        if (method_exists($this, 'initializeGrav')) {            $this->initializeThemes();        }        $grav = Grav::instance();        $this->output->writeln('');        $this->output->writeln('<yellow>Current Configuration:</yellow>');        $this->output->writeln('');        dump($grav['config']->get('plugins.email'));        $this->output->writeln('');        $grav['Email'] = new Email();        $to = $this->input->getOption('to') ?: $grav['config']->get('plugins.email.to');        $subject = $this->input->getOption('subject');        $body = $this->input->getOption('body');        if (!$subject) {            $subject = 'Testing Grav Email Plugin';        }        if (!$body) {            $configuration = print_r($grav['config']->get('plugins.email'), true);            $body = $grav['language']->translate(['PLUGIN_EMAIL.TEST_EMAIL_BODY', $configuration]);        }        $sent = EmailUtils::sendEmail(['subject'=>$subject, 'body'=>$body, 'to'=>$to]);        if ($sent) {            $this->output->writeln("<green>Message sent successfully!</green>");        } else {            $this->output->writeln("<red>Problem sending email...</red>");        }    }}
 |