diff --git a/includes/webform.admin.inc b/includes/webform.admin.inc
index 479b9fa..f181793 100644
--- a/includes/webform.admin.inc
+++ b/includes/webform.admin.inc
@@ -78,7 +78,7 @@ function webform_admin_settings() {
     ),
     '#default_value' => variable_get('webform_default_format', 0),
     '#description' => t('The default format for new e-mail settings. Webform e-mail options take precedence over the settings for system-wide e-mails configured in MIME mail.'),
-    '#access' => module_exists('mimemail'),
+    '#access' => webform_email_html_capable(),
   );
 
   $form['email']['webform_format_override']  = array(
@@ -90,7 +90,7 @@ function webform_admin_settings() {
     ),
     '#default_value' => variable_get('webform_format_override', 0),
     '#description' => t('Force all webform e-mails to be sent in the default format.'),
-    '#access' => module_exists('mimemail'),
+    '#access' => webform_email_html_capable(),
   );
 
   $form['advanced'] = array(
diff --git a/includes/webform.emails.inc b/includes/webform.emails.inc
index fb5ea09..41c6abd 100644
--- a/includes/webform.emails.inc
+++ b/includes/webform.emails.inc
@@ -272,16 +272,14 @@ function webform_email_edit_form($form, $form_state, $node, $email = array()) {
     '#type' => 'checkbox',
     '#title' => t('Send e-mail as HTML'),
     '#default_value' => $email['html'],
-    '#access' => module_exists('mimemail') && !variable_get('webform_format_override', 0),
-    '#description' => t('This feature not yet working in Drupal 7. See <a href="https://drupal.org/node/1043086">Webform-MIME Mail integration issue</a>.'),
+    '#access' => webform_email_html_capable() && !variable_get('webform_format_override', 0),
   );
 
   $form['template']['attachments'] = array(
     '#type' => 'checkbox',
     '#title' => t('Include files as attachments'),
     '#default_value' => $email['attachments'],
-    '#access' => module_exists('mimemail'),
-    '#description' => t('This feature not yet working in Drupal 7. See <a href="https://drupal.org/node/1043086">Webform-MIME Mail integration issue</a>.'),
+    '#access' => webform_email_html_capable(),
   );
 
   $form['template']['tokens'] = array(
diff --git a/includes/webform.submissions.inc b/includes/webform.submissions.inc
index a9d7613..55270a5 100644
--- a/includes/webform.submissions.inc
+++ b/includes/webform.submissions.inc
@@ -199,7 +199,7 @@ function webform_submission_send_mail($node, $submission, $emails = NULL) {
   $send_count = 0;
   foreach ($emails as $eid => $email) {
     // Set the HTML property based on availablity of MIME Mail.
-    $email['html'] = ($email['html'] && module_exists('mimemail'));
+    $email['html'] = ($email['html'] && webform_email_html_capable());
 
     // Pass through the theme layer if using the default template.
     if ($email['template'] == 'default') {
@@ -281,7 +281,7 @@ function webform_submission_send_mail($node, $submission, $emails = NULL) {
         'submission' => $submission,
       );
 
-      if (module_exists('mimemail')) {
+      if (webform_email_html_capable()) {
         // Load attachments for the e-mail.
         $attachments = array();
         if ($email['attachments']) {
@@ -289,8 +289,7 @@ function webform_submission_send_mail($node, $submission, $emails = NULL) {
           foreach ($node->webform['components'] as $component) {
             if (webform_component_feature($component['type'], 'attachment') && !empty($submission->data[$component['cid']]['value'][0])) {
               $file = webform_get_file($submission->data[$component['cid']]['value'][0]);
-              if ($file) {
-                $file->list = 1; // Needed to include in attachments.
+              if ($file && ($file->filepath = drupal_realpath($file->uri))) {
                 $attachments[] = $file;
               }
             }
@@ -300,8 +299,14 @@ function webform_submission_send_mail($node, $submission, $emails = NULL) {
         // Add the attachments to the mail parameters.
         $mail_params['attachments'] = $attachments;
 
-        // TODO: Perform any other modifications necessary to get MIME Mail
-        // sending e-mail properly as HTML and attachments.
+        // Set all other properties for HTML e-mail handling.
+        $mail_params['plain'] = !$email['html'];
+        $mail_params['plaintext'] = $email['html'] ? NULL : $email['message'];
+        $mail_params['headers'] = $email['headers'];
+        if ($email['html']) {
+          // MIME Mail requires this header or it will filter all text.
+          $mail_params['headers']['Content-Type'] = 'text/html; charset=UTF-8';
+        }
       }
 
       // Mail the submission.
diff --git a/webform.module b/webform.module
index 7a59f4f..66ac206 100644
--- a/webform.module
+++ b/webform.module
@@ -3423,6 +3423,29 @@ function webform_tt($name, $string, $langcode = NULL, $update = FALSE) {
 }
 
 /**
+ * Check if any available HTML mail handlers are available for Webform to use.
+ */
+function webform_email_html_capable() {
+  // TODO: Right now we only support MIME Mail. Support others if available
+  // through a hook?
+  if (module_exists('mimemail')) {
+    $mail_systems = variable_get('mail_system', array('default-system' => 'DefaultMailSystem'));
+    $enable = !isset($mail_systems['webform']) || $mail_systems['webform'] == 'MimeMailSystem';
+
+    // We assume that if a solution exists even if it's not specified we should
+    // use it. Webform will specify if e-mails sent with the system are plain-
+    // text or not when sending each e-mail.
+    if ($enable) {
+      $GLOBALS['conf']['mail_system']['webform'] = 'MimeMailSystem';
+      return TRUE;
+    }
+  }
+  else {
+    return FALSE;
+  }
+}
+
+/**
  * Implementation of hook_views_api().
  */
 function webform_views_api() {
