diff --git a/config/install/smtp.settings.yml b/config/install/smtp.settings.yml
index fc05ca3..3c60912 100644
--- a/config/install/smtp.settings.yml
+++ b/config/install/smtp.settings.yml
@@ -8,6 +8,7 @@ smtp_password: ''
 smtp_from: ''
 smtp_fromname: ''
 smtp_allowhtml: ''
+smtp_queue: false
 smtp_test_address: ''
 smtp_debugging: false
 prev_mail_system: 'php_mail'
diff --git a/config/schema/smtp.schema.yml b/config/schema/smtp.schema.yml
index d94e0cd..a3b1278 100644
--- a/config/schema/smtp.schema.yml
+++ b/config/schema/smtp.schema.yml
@@ -32,6 +32,9 @@ smtp.settings:
     smtp_allowhtml:
       type: text
       label: 'Allow to send e-mails formated as HTML'
+    smtp_queue:
+      type: boolean
+      label: 'Enable SMTP Drupal Queue system'
     smtp_test_address:
       type: email
       label: 'E-mail address to send a test e-mail to'
diff --git a/src/Form/SMTPConfigForm.php b/src/Form/SMTPConfigForm.php
index 7d7b61d..01ad7d2 100644
--- a/src/Form/SMTPConfigForm.php
+++ b/src/Form/SMTPConfigForm.php
@@ -146,6 +146,13 @@ class SMTPConfigForm extends ConfigFormBase {
       '#disabled' => $this->isOverridden('smtp_allowhtml'),
     );
 
+    $form['email_options']['smtp_queue'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Enable SMTP Drupal Queue system'),
+      '#default_value' => $config->get('smtp_queue'),
+      '#description' => t('Checking this box will allow Drupal Queue system handle send e-mails using Cron execution.'),
+    );
+
     $form['email_test'] = array(
       '#type' => 'details',
       '#title' => t('Send test e-mail'),
@@ -242,6 +249,7 @@ class SMTPConfigForm extends ConfigFormBase {
       'smtp_fromname',
       'smtp_allowhtml',
       'smtp_debugging',
+      'smtp_queue'
     ];
     foreach ($config_keys as $name) {
       if (!$this->isOverridden($name)) {
diff --git a/src/Tests/modules/smtp_cron_queue_test/src/Plugin/QueueWorker/SmtpSendQueuedMail.php b/src/Tests/modules/smtp_cron_queue_test/src/Plugin/QueueWorker/SmtpSendQueuedMail.php
new file mode 100644
index 0000000..8aab3ad
--- /dev/null
+++ b/src/Tests/modules/smtp_cron_queue_test/src/Plugin/QueueWorker/SmtpSendQueuedMail.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace Drupal\smtp\Plugin\QueueWorker;
+
+use Drupal\Core\Queue\QueueWorkerBase;
+
+/**
+ * @QueueWorker(
+ *   id = "smtp_send_queue",
+ *   title = @Translation("Smtp Send Queued Email"),
+ *   cron = {"time" = 60}
+ * )
+ */
+class SmtpSendQueuedMail extends QueueWorkerBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function processItem($variables) {
+    $mailer = $variables['mailer'];
+    $to = $variables['to'];
+    $from = $variables['from'];
+
+    $logger = \Drupal::logger('smtp');
+
+    // Let the people know what is going on.
+    $logger->info('Sending mail to: @to', array('@to' => $to));
+
+    // Try to send e-mail. If it fails, set watchdog entry.
+    if (!$mailer->Send()) {
+      $logger->error('Error sending e-mail from @from to @to: @error_message', array('@from' => $from, '@to' => $to, '@error_message' => $mailer->ErrorInfo));
+      return FALSE;
+    }
+
+    $mailer->SmtpClose();
+  }
+
+}
diff --git a/src/Tests/modules/smtp_cron_queue_test/src/smtp_cron_queue_test.info.yml b/src/Tests/modules/smtp_cron_queue_test/src/smtp_cron_queue_test.info.yml
new file mode 100644
index 0000000..8b404fd
--- /dev/null
+++ b/src/Tests/modules/smtp_cron_queue_test/src/smtp_cron_queue_test.info.yml
@@ -0,0 +1,6 @@
+name: 'Smtp cron Queue test'
+type: module
+description: 'Support module for the smtp cron queue runner.'
+package: Testing
+version: VERSION
+core: 8.x
