Loading src/Entity/MailerTransport.php +2 −0 Original line number Diff line number Diff line Loading @@ -118,6 +118,7 @@ class MailerTransport extends ConfigEntityBase implements MailerTransportInterfa */ public function setPluginId($plugin) { $this->plugin = $plugin; return $this; } /** Loading @@ -132,6 +133,7 @@ class MailerTransport extends ConfigEntityBase implements MailerTransportInterfa */ public function setAsDefault() { \Drupal::service('config.factory')->getEditable('symfony_mailer.settings')->set('default_transport', $this->id())->save(); return $this; } /** Loading src/MailerTransportInterface.php +4 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,8 @@ interface MailerTransportInterface extends ConfigEntityInterface { * * @param string $plugin_id * The transport plugin ID. * * @return $this */ public function setPluginId($plugin_id); Loading @@ -72,6 +74,8 @@ interface MailerTransportInterface extends ConfigEntityInterface { /** * Sets this as the default transport. * * @return $this */ public function setAsDefault(); Loading src/Plugin/EmailBuilder/SwiftmailerEmailBuilder.php 0 → 100644 +47 −0 Original line number Diff line number Diff line <?php namespace Drupal\symfony_mailer\Plugin\EmailBuilder; use Drupal\symfony_mailer\Entity\MailerTransport; use Drupal\symfony_mailer\MailerHelperTrait; use Drupal\symfony_mailer\Processor\EmailProcessorBase; use Drupal\symfony_mailer\Processor\MailerPolicyImportInterface; /** * Defines the Email Builder plug-in for swiftmailer module. * * Dummy class for config import only. * * @EmailBuilder( * id = "swiftmailer", * migrate = @Translation("Swiftmailer transport settings"), * ) */ class SwiftmailerEmailBuilder extends EmailProcessorBase implements MailerPolicyImportInterface { use MailerHelperTrait; /** * {@inheritdoc} */ public function import() { $settings = $this->helper()->config()->get('swiftmailer.transport')->get(); if ($settings['transport'] == SWIFTMAILER_TRANSPORT_SMTP) { $config = [ 'user' => $settings['smtp_credentials']['swiftmailer']['username'], 'pass' => $settings['smtp_credentials']['swiftmailer']['password'], 'host' => $settings['smtp_host'], 'port' => $settings['smtp_port'], ]; $transport = MailerTransport::load('swiftmailer') ?? MailerTransport::create(['id' => 'swiftmailer']); $transport->setPluginId('smtp') ->set('label', 'Imported from swiftmailer') ->set('configuration', $config) ->setAsDefault() ->save(); } } } Loading
src/Entity/MailerTransport.php +2 −0 Original line number Diff line number Diff line Loading @@ -118,6 +118,7 @@ class MailerTransport extends ConfigEntityBase implements MailerTransportInterfa */ public function setPluginId($plugin) { $this->plugin = $plugin; return $this; } /** Loading @@ -132,6 +133,7 @@ class MailerTransport extends ConfigEntityBase implements MailerTransportInterfa */ public function setAsDefault() { \Drupal::service('config.factory')->getEditable('symfony_mailer.settings')->set('default_transport', $this->id())->save(); return $this; } /** Loading
src/MailerTransportInterface.php +4 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,8 @@ interface MailerTransportInterface extends ConfigEntityInterface { * * @param string $plugin_id * The transport plugin ID. * * @return $this */ public function setPluginId($plugin_id); Loading @@ -72,6 +74,8 @@ interface MailerTransportInterface extends ConfigEntityInterface { /** * Sets this as the default transport. * * @return $this */ public function setAsDefault(); Loading
src/Plugin/EmailBuilder/SwiftmailerEmailBuilder.php 0 → 100644 +47 −0 Original line number Diff line number Diff line <?php namespace Drupal\symfony_mailer\Plugin\EmailBuilder; use Drupal\symfony_mailer\Entity\MailerTransport; use Drupal\symfony_mailer\MailerHelperTrait; use Drupal\symfony_mailer\Processor\EmailProcessorBase; use Drupal\symfony_mailer\Processor\MailerPolicyImportInterface; /** * Defines the Email Builder plug-in for swiftmailer module. * * Dummy class for config import only. * * @EmailBuilder( * id = "swiftmailer", * migrate = @Translation("Swiftmailer transport settings"), * ) */ class SwiftmailerEmailBuilder extends EmailProcessorBase implements MailerPolicyImportInterface { use MailerHelperTrait; /** * {@inheritdoc} */ public function import() { $settings = $this->helper()->config()->get('swiftmailer.transport')->get(); if ($settings['transport'] == SWIFTMAILER_TRANSPORT_SMTP) { $config = [ 'user' => $settings['smtp_credentials']['swiftmailer']['username'], 'pass' => $settings['smtp_credentials']['swiftmailer']['password'], 'host' => $settings['smtp_host'], 'port' => $settings['smtp_port'], ]; $transport = MailerTransport::load('swiftmailer') ?? MailerTransport::create(['id' => 'swiftmailer']); $transport->setPluginId('smtp') ->set('label', 'Imported from swiftmailer') ->set('configuration', $config) ->setAsDefault() ->save(); } } }