diff --git a/composer.json b/composer.json
index 7be12f16..c063f72f 100644
--- a/composer.json
+++ b/composer.json
@@ -37,6 +37,7 @@
     "drupal/jsonapi": "~2.0",
     "drupal/mailsystem": "~4.0",
     "drupal/select2": "~1.1",
+    "drupal/smtp": "~1.0",
     "drupal/telephone_validation": "^2.2",
     "drupal/token": "~1.3"
   }
diff --git a/src/Plugin/WebformHandler/EmailWebformHandler.php b/src/Plugin/WebformHandler/EmailWebformHandler.php
index 03c5ab13..cd0626b5 100644
--- a/src/Plugin/WebformHandler/EmailWebformHandler.php
+++ b/src/Plugin/WebformHandler/EmailWebformHandler.php
@@ -1306,7 +1306,10 @@ class EmailWebformHandler extends WebformHandlerBase implements WebformHandlerMe
 
     // The Mail System module, which supports a variety of mail handlers,
     // and the SMTP module support attachments.
-    return $this->moduleHandler->moduleExists('mailsystem') || $this->moduleHandler->moduleExists('smtp');
+    $mailsystem_installed = $this->moduleHandler->moduleExists('mailsystem');
+    $smtp_enabled = $this->moduleHandler->moduleExists('smtp')
+      && $this->configFactory->get('smtp.settings')->get('smtp_on');
+    return $mailsystem_installed || $smtp_enabled;
   }
 
   /**
diff --git a/src/Tests/WebformEmailProviderTest.php b/src/Tests/WebformEmailProviderTest.php
index 40ace012..084f177a 100644
--- a/src/Tests/WebformEmailProviderTest.php
+++ b/src/Tests/WebformEmailProviderTest.php
@@ -37,8 +37,14 @@ class WebformEmailProviderTest extends WebformTestBase {
     $this->assertRaw('Provided by the Webform module.');
     $this->assertRaw("Webform PHP mailer: Sends the message as plain text or HTML, using PHP's native mail() function.");
 
-    // Check Mail System: Default PHP mailer after mailsystem module installed.
+    /**************************************************************************/
+    // Mail System.
+    /**************************************************************************/
+
+    // Install mailsystem.module.
     \Drupal::service('module_installer')->install(['mailsystem']);
+
+    // Check Mail System: Default PHP mailer after mailsystem.module installed.
     $this->drupalGet('/admin/reports/status');
     $this->assertRaw('Provided by the Mail System module.');
     $this->assertNoRaw("Webform PHP mailer: Sends the message as plain text or HTML, using PHP's native mail() function.");
@@ -48,6 +54,29 @@ class WebformEmailProviderTest extends WebformTestBase {
     \Drupal::service('module_installer')->uninstall(['mailsystem']);
     $this->drupalGet('/admin/reports/status');
     $this->assertRaw("Webform PHP mailer: Sends the message as plain text or HTML, using PHP's native mail() function.");
+
+    // Uninstall mailsystem.module.
+    \Drupal::service('module_installer')->uninstall(['mailsystem']);
+
+    /**************************************************************************/
+    // SMTP.
+    /**************************************************************************/
+
+    // Install smtp.module.
+    \Drupal::service('module_installer')->install(['smtp']);
+
+    // Check Webform: Default PHP mailer after smtp.module installed
+    // but still turned off.
+    $this->drupalGet('/admin/reports/status');
+    $this->assertRaw('Provided by the Webform module.');
+
+    // Turn on the smtp.module via the UI.
+    // @see webform_form_smtp_admin_settings_alter()
+    $this->drupalPostForm('/admin/config/system/smtp', ['smtp_on' => TRUE], t('Save configuration'));
+
+    // Check SMTP: Default PHP mailer after smtp.module turned on.
+    $this->drupalGet('/admin/reports/status');
+    $this->assertNoRaw('Provided by the SMTP module.');
   }
 
 }
diff --git a/src/WebformEmailProvider.php b/src/WebformEmailProvider.php
index 097e8ef0..37b9dd43 100644
--- a/src/WebformEmailProvider.php
+++ b/src/WebformEmailProvider.php
@@ -73,7 +73,7 @@ class WebformEmailProvider implements WebformEmailProviderInterface {
     // Check if a contrib module is handling sending email.
     $mail_modules = $this->getModules();
     foreach ($mail_modules as $module) {
-      if ($this->moduleHandler->moduleExists($module)) {
+      if ($this->moduleEnabled($module)) {
         return $this->uninstall();
       }
     }
@@ -130,7 +130,7 @@ class WebformEmailProvider implements WebformEmailProviderInterface {
     else {
       $modules = $this->getModules();
       foreach ($modules as $module) {
-        if ($this->moduleHandler->moduleExists($module)) {
+        if ($this->moduleEnabled($module)) {
           return $module;
         }
       }
@@ -145,6 +145,23 @@ class WebformEmailProvider implements WebformEmailProviderInterface {
     return ($module = $this->getModule()) ? $this->moduleHandler->getName($module) : FALSE;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function moduleEnabled($module) {
+    // Make sure module exists and is installed.
+    if (!$this->moduleHandler->moduleExists($module)) {
+      return FALSE;
+    }
+
+    // Make sure SMTP module is enabled.
+    if ($module === 'smtp' && !$this->configFactory->get('smtp.settings')->get('smtp_on')) {
+      return FALSE;
+    }
+
+    return TRUE;
+  }
+
   /**
    * {@inheritdoc}
    */
diff --git a/src/WebformEmailProviderInterface.php b/src/WebformEmailProviderInterface.php
index c4e8a58c..6f38ae4b 100644
--- a/src/WebformEmailProviderInterface.php
+++ b/src/WebformEmailProviderInterface.php
@@ -51,6 +51,17 @@ interface WebformEmailProviderInterface {
    */
   public function getModuleName();
 
+  /**
+   * Determine if mail module is installed and enabled.
+   *
+   * @param string $module
+   *   Mail module name
+   *
+   * @return bool
+   *   TRUE if mail module is installed and enabled.
+   */
+  public function moduleEnabled($module);
+
   /**
    * Get the mail back-end plugin id.
    *
diff --git a/webform.info.yml b/webform.info.yml
index 44ff6630..67d618a3 100644
--- a/webform.info.yml
+++ b/webform.info.yml
@@ -15,5 +15,6 @@ test_dependencies:
   - 'jsonapi:jsonapi'
   - 'mailsystem:mailsystem'
   - 'select2:select2'
+  - 'smtp:smtp'
   - 'telephone_validation/telephone_validation'
   - 'token:token'
diff --git a/webform.module b/webform.module
index 9bbb5cc5..e3974a3a 100644
--- a/webform.module
+++ b/webform.module
@@ -120,7 +120,7 @@ function webform_modules_uninstalled($modules) {
     $config->save();
   }
 
-  // Check HTML email provider support as modules are ininstalled.
+  // Check HTML email provider support as modules are uninstalled.
   /** @var \Drupal\webform\WebformEmailProviderInterface $email_provider */
   $email_provider = \Drupal::service('webform.email_provider');
   $email_provider->check();
@@ -293,6 +293,24 @@ function _webform_form_webform_submission_form_after_build($form, FormStateInter
   return $form;
 }
 
+
+/**
+ * Implements hook_form_FORM_ID_alter().
+ */
+function webform_form_smtp_admin_settings_alter(&$form, FormStateInterface $form_state) {
+  $form['#submit'][] = '_webform_form_smtp_admin_settings_submit';
+}
+
+/**
+ * Submit callback for SMTP admin settings.
+ */
+function _webform_form_smtp_admin_settings_submit(&$form, FormStateInterface $form_state) {
+  // Since the SMTP module can enabled or disabled, check HTML email provider.
+  /** @var \Drupal\webform\WebformEmailProviderInterface $email_provider */
+  $email_provider = \Drupal::service('webform.email_provider');
+  $email_provider->check();
+}
+
 /**
  * Implements hook_form_FORM_ID_alter().
  *
