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/Plugin/Mail/SMTPMailSystem.php b/src/Plugin/Mail/SMTPMailSystem.php
index 2a251d6..43c7622 100644
--- a/src/Plugin/Mail/SMTPMailSystem.php
+++ b/src/Plugin/Mail/SMTPMailSystem.php
@@ -451,7 +451,7 @@ class SMTPMailSystem implements MailInterface {
       'from' => $from,
     );
     if ($this->smtpConfig->get('smtp_queue')) {
-      watchdog('smtp', 'Queue sending mail to: @to', array('@to' => $to));
+      \Drupal::logger('smtp')->notice('Queue sending mail to: @to', array('@to' => $to));
       smtp_send_queue($mailerArr);
     }
     else {
diff --git a/src/Plugin/QueueWorker/SmtpSendQueuedMail.php b/src/Plugin/QueueWorker/SmtpSendQueuedMail.php
index e69de29..8aab3ad 100644
--- a/src/Plugin/QueueWorker/SmtpSendQueuedMail.php
+++ b/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();
+  }
+
+}
