diff --git a/backup_migrate.module b/backup_migrate.module
index 39b180f..957f47f 100644
--- a/backup_migrate.module
+++ b/backup_migrate.module
@@ -1662,3 +1662,31 @@ function backup_migrate_exec($command, $args = array()) {
   return $result == 0;
 }
 
+/**
+ * Implements hook_mail().
+ */
+function backup_migrate_mail($key, &$message, $params) {
+
+  switch($key) {
+    case 'backup_succeed':
+      $message['subject'] = t('!site backup succeeded', array('!site' => variable_get('site_name', 'Drupal')));
+      if ($params['messages']) {
+        $message['body'][] = t("The site backup has completed successfully with the following messages:");
+        $message['body'][] = t("!messages", array('!messages' => $params['messages']));
+      }
+      else {
+        $message['body'][] = t("The site backup has completed successfully.");
+      }
+      break;
+    case 'backup_fail':
+      $message['subject'] = t('!site backup failed', array('!site' => variable_get('site_name', 'Drupal')));
+      if ($params['messages']) {
+        $message['body'][] = t("The site backup has failed with the following messages:");
+        $message['body'][] = t("!messages", array('!messages' => $params['messages']));
+      }
+      else {
+        $message['body'][] = t("The site backup has failed for an unknown reason.");
+      }
+      break;
+  }
+}
\ No newline at end of file
diff --git a/includes/filters.statusnotify.inc b/includes/filters.statusnotify.inc
index 28387a2..121ab0e 100644
--- a/includes/filters.statusnotify.inc
+++ b/includes/filters.statusnotify.inc
@@ -70,15 +70,15 @@ class backup_migrate_filter_statusnotify extends backup_migrate_filter {
    */
   function backup_succeed($settings) {
     if (@$settings->filters['notify_success_enable'] && $to = @$settings->filters['notify_success_email']) {
-      $messages = $this->get_messages();
-      $subject = t('!site backup succeeded', array('!site' => variable_get('site_name', 'Drupal site')));
-      if ($messages = $this->get_messages()) {
-        $body = t("The site backup has completed successfully with the following messages:\n!messages", array('!messages' => $messages));
-      }
-      else {
-        $body = t("The site backup has completed successfully.\n");
-      }
-      mail($settings->filters['notify_success_email'], $subject, $body);
+      
+      $params = array(
+        'messages' => $this->get_messages(),
+      );
+
+      // Using the default language since this is not specific to a user.
+      $language = language_default();
+
+      drupal_mail('backup_migrate', 'backup_succeed', $settings->filters['notify_success_email'], $language, $params);
     }
   }
 
@@ -87,15 +87,15 @@ class backup_migrate_filter_statusnotify extends backup_migrate_filter {
    */
   function backup_fail($settings) {
     if (@$settings->filters['notify_failure_enable'] && $to = @$settings->filters['notify_failure_email']) {
-      $messages = $this->get_messages();
-      $subject = t('!site backup failed', array('!site' => variable_get('site_name', 'Drupal site')));
-      if ($messages = $this->get_messages()) {
-        $body = t("The site backup has failed with the following messages:\n!messages", array('!messages' => $messages));
-      }
-      else {
-        $body = t("The site backup has failed for an unknown reason.");
-      }
-      mail($settings->filters['notify_failure_email'], $subject, $body);
+      
+      $params = array(
+        'messages' => $this->get_messages(),
+      );
+
+      // Using the default language since this is not specific to a user.
+      $language = language_default();
+
+      drupal_mail('backup_migrate', 'backup_fail', $settings->filters['notify_failure_email'], $language, $params);
     }
   }
 
