1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- namespace 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()
- {
- $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('');
- require_once __DIR__ . '/../vendor/autoload.php';
- $grav['Email'] = new Email();
- $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, $body, $email_to);
- if ($sent) {
- $this->output->writeln("<green>Message sent successfully!</green>");
- } else {
- $this->output->writeln("<red>Problem sending email...</red>");
- }
- }
- }
|