diff --git a/includes/maillog.mail.inc b/includes/maillog.mail.inc
index 9248d99..97a045e 100644
--- a/includes/maillog.mail.inc
+++ b/includes/maillog.mail.inc
@@ -13,9 +13,10 @@ class MaillogMailSystem implements MailSystemInterface {
    * @return
    *   The formatted $message.
    */
-   public function format(array $message) {
-     return $message;
-   }
+  public function format(array $message) {
+    $default = new DefaultMailSystem();
+    return $default->format($message);
+  }
 
   /**
    * Send a message composed by drupal_mail().
@@ -42,38 +43,51 @@ class MaillogMailSystem implements MailSystemInterface {
    * @return
    *   TRUE if the mail was successfully accepted for delivery, otherwise FALSE.
    */
-   public function mail(array $message) {
-   // Log the e-mail
-   if (variable_get('maillog_log', TRUE)) {
-     $record = new stdClass;
- 
-     $record->header_message_id = isset($message['headers']['Message-ID']) ? $message['headers']['Message-ID'] : NULL;
-     $record->subject = $message['subject'];
-     $record->body = $message['body'][0];
-     $record->header_from = isset($message['from']) ? $message['from'] : NULL;
-     $record->header_to = isset($message['to']) ? $message['to'] : NULL;
-     $record->header_reply_to = isset($message['headers']['Reply-To']) ? $message['headers']['Reply-To'] : '';
-     $record->header_all = serialize($message['headers']);
-     $record->sent_date = time();
- 
-     drupal_write_record('maillog', $record);
-   }
- 
-   // Display the e-mail using Devel module
-   if (variable_get('maillog_devel', TRUE) && function_exists('dpm')) {
-     $devel_msg = array();
-     $devel_msg[t('Subject')] = $message['subject'];
-     $devel_msg[t('From')] = $message['from'];
-     $devel_msg[t('To')] = $message['to'];
-     $devel_msg[t('Reply-To')] = isset($message['reply_to']) ? $message['reply_to'] : NULL;
-     $devel_msg[t('Header')] = $message['headers'];
-     $devel_msg[t('Body')] = $message['body'][0];
- 
-     dpm($devel_msg, 'maillog');
-   }
-   
-   return TRUE;
-   
+  public function mail(array $message) {
+    // Log the e-mail
+    if (variable_get('maillog_log', TRUE)) {
+      $record = new stdClass;
+
+      $record->header_message_id = isset($message['headers']['Message-ID']) ? $message['headers']['Message-ID'] : NULL;
+      $record->subject = $message['subject'];
+      $record->body = $message['body'];
+      $record->header_from = isset($message['from']) ? $message['from'] : NULL;
+      $record->header_to = isset($message['to']) ? $message['to'] : NULL;
+      $record->header_reply_to = isset($message['headers']['Reply-To']) ? $message['headers']['Reply-To'] : '';
+      $record->header_all = serialize($message['headers']);
+      $record->sent_date = REQUEST_TIME;
+
+      drupal_write_record('maillog', $record);
+    }
+
+    // Display the e-mail using Devel module
+    if (variable_get('maillog_devel', TRUE) && function_exists('dpm')) {
+      $devel_msg = array();
+      $devel_msg[t('Subject')] = $message['subject'];
+      $devel_msg[t('From')] = $message['from'];
+      $devel_msg[t('To')] = $message['to'];
+      $devel_msg[t('Reply-To')] = isset($message['reply_to']) ? $message['reply_to'] : NULL;
+      $devel_msg[t('Header')] = $message['headers'];
+      $devel_msg[t('Body')] = $message['body'];
+
+      dpm($devel_msg, 'maillog');
+    }
+
+    if (variable_get('maillog_send', TRUE)) {
+      $default = new DefaultMailSystem();
+      $result = $default->mail($message);
+    }
+    elseif (user_access('administer maillog')) {
+      $message = t('Sending of e-mail messages is disabled by Maillog module. Go <a href="@href">here</a> to enable.', array('@href' => url('admin/reports/maillog')));
+
+      drupal_set_message($message, 'warning', TRUE);
+    }
+    else {
+      global $user;
+      $message = t('User @user attempted to send an email, but sending emails is disabled.');
+      watchdog('maillog', $message, array('@user' => $user->name));
+    }
+    return isset($result) ? $result : TRUE;
   }
-  
+
 }
