TestMailCollector.php 808 B

12345678910111213141516171819202122232425262728293031
  1. <?php
  2. namespace Drupal\Core\Mail\Plugin\Mail;
  3. use Drupal\Core\Mail\MailInterface;
  4. /**
  5. * Defines a mail backend that captures sent messages in the state system.
  6. *
  7. * This class is for running tests or for development.
  8. *
  9. * @Mail(
  10. * id = "test_mail_collector",
  11. * label = @Translation("Mail collector"),
  12. * description = @Translation("Does not send the message, but stores it in Drupal within the state system. Used for testing.")
  13. * )
  14. */
  15. class TestMailCollector extends PhpMail implements MailInterface {
  16. /**
  17. * {@inheritdoc}
  18. */
  19. public function mail(array $message) {
  20. $captured_emails = \Drupal::state()->get('system.test_mail_collector') ?: [];
  21. $captured_emails[] = $message;
  22. \Drupal::state()->set('system.test_mail_collector', $captured_emails);
  23. return TRUE;
  24. }
  25. }