From 35da7102d01d43ec99e41a30c50ebc0f67cbc6a3 Mon Sep 17 00:00:00 2001
From: Bob Vincent <bobvin@pillars.net>
Date: Fri, 11 Mar 2011 18:43:53 -0500
Subject: [PATCH] Provide support for Mail System module.  See http://drupal.org/project/mailsystem

---
 README.txt                  |   10 ++++------
 includes/mimemail.admin.inc |   10 ++++------
 mimemail.info               |    1 +
 mimemail.install            |   17 +++++------------
 4 files changed, 14 insertions(+), 24 deletions(-)

diff --git a/README.txt b/README.txt
index 2725413..b089ef3 100644
--- a/README.txt
+++ b/README.txt
@@ -19,15 +19,13 @@ USAGE
   MimeMailSystem as the responsible mail system for a particular message
   or all mail sent by one module.
 
-  This is done by modifying the $mail_system variable like this: 
+  This can be done through the web by visiting admin/config/system/mailsystem
+  or in a program as follows:
 
-  array(
-    'default-system' => 'DefaultMailSystem',
+  mailsystem_set(array(
     '{$module}_{$key}' => 'MimeMailSystem', // Just messages with $key sent by $module.
     '{$module}' => 'MimeMailSystem', // All messages sent by $module.
-  );
-  
-  WARNING! Make sure to not overwrite the variable just append your mail to it!
+  ));
 
   You can use the following optional parameters to build the e-mail:
     'plain':
diff --git a/includes/mimemail.admin.inc b/includes/mimemail.admin.inc
index 5180b28..faa1e3f 100644
--- a/includes/mimemail.admin.inc
+++ b/includes/mimemail.admin.inc
@@ -146,16 +146,14 @@ function mimemail_admin_settings() {
  * Handle submission of the configuration form.
  */
 function mimemail_admin_settings_form_submit($form, &$form_state) {
-  $mail_system = variable_get('mail_system', array('default-system' => 'DefaultMailSystem'));
-  $default_system = $mail_system['default-system'];
+  $mail_system = mailsystem_get();
+  $default_system = $mail_system[mailsystem_default_id()];
   $mimemail_alter = $form_state['values']['mimemail_alter'];
   // Set as default mail system if Mime Mail is chosen to handle all mail.
   if ($mimemail_alter && $default_system != 'MimeMailSystem') {
-    $default_system = 'MimeMailSystem';
+    mailsystem_set(array(mailsystem_default_id() => 'MimeMailSystem'));
   }
   elseif (!$mimemail_alter && $default_system == 'MimeMailSystem') {
-    $default_system = 'DefaultMailSystem';
+    mailsystem_set(mailsystem_defaults());
   }
-  $mail_system['default-system'] = $default_system;
-  variable_set('mail_system', $mail_system);
 }
diff --git a/mimemail.info b/mimemail.info
index 6a2a8ef..ba0924d 100644
--- a/mimemail.info
+++ b/mimemail.info
@@ -1,5 +1,6 @@
 name = Mime Mail
 description = Send MIME-encoded emails with embedded images and attachments.
+dependencies[] = mailsystem
 package = Mail
 core = 7.x
 
diff --git a/mimemail.install b/mimemail.install
index 4e50aca..ae69ce8 100644
--- a/mimemail.install
+++ b/mimemail.install
@@ -6,25 +6,18 @@
  */
 
 /**
- * Implements hook_install().
+ * Implements hook_enable().
  */
-function mimemail_install() {
-  $mail_system = variable_get('mail_system', array('default-system' => 'DefaultMailSystem'));
-  $mail_system['mimemail'] = 'MimeMailSystem';
-  variable_set('mail_system', $mail_system);
+function mimemail_enable().
+  mailsystem_set(array('mimemail' => 'MimeMailSystem'));
 }
 
 /**
  * Implements hook_disable().
  */
 function mimemail_disable() {
-  $mail_system = variable_get('mail_system', array('default-system' => 'DefaultMailSystem'));
-  $default_system = $mail_system['default-system'];
-  if ($default_system == 'MimeMailSystem') {
-    $mail_system['default-system'] = 'DefaultMailSystem';
-    variable_set('mail_system', $mail_system);
-    variable_set('mimemail_alter', FALSE);
-  }
+  mailsystem_clear(array('mimemail' => 'MimeMailSystem'));
+  variable_set('mimemail_alter', FALSE);
 }
 
 /**
-- 
1.7.1

