diff --git a/mandrill.mail.inc b/mandrill.mail.inc
index 2c2b878..1d7c6ec 100644
--- a/mandrill.mail.inc
+++ b/mandrill.mail.inc
@@ -51,6 +51,17 @@ class MandrillMailSystem implements MailSystemInterface {
       return FALSE;
     }
 
+    // Gather any parameters passed through the message; apply defaults.
+    $mandrill_params = $message['params']['mandrill'] += array(
+      'track_opens' => variable_get('mandrill_track_opens', TRUE),
+      'track_clicks' => variable_get('mandrill_track_clicks', TRUE),
+      'url_strip_qs' => variable_get('mandrill_url_strip_qs', FALSE),
+      'google_analytics_domains' => (variable_get('mandrill_analytics_domains', NULL)) ? explode(',', variable_get('mandrill_analytics_domains')) : array(),
+      'google_analytics_campaign' => variable_get('mandrill_analytics_campaign', ''),
+      'metadata' => array(),
+      'attachments' => array(),
+    );
+
     // apply input format to body
     $html = $message['body'];
     $format = variable_get('mandrill_filter_format', '');
@@ -68,20 +79,15 @@ class MandrillMailSystem implements MailSystemInterface {
       'to' => $to,
       // optional extra headers to add to the message (currently only Reply-To and X-* headers are allowed)
       'headers' => $message['headers'],
-      'track_opens' => variable_get('mandrill_track_opens', TRUE),
-      'track_clicks' => variable_get('mandrill_track_clicks', TRUE),
       // we're handling this with drupal_html_to_text().
       'auto_text' => FALSE,
       'url_strip_qs' => variable_get('mandrill_url_strip_qs', FALSE),
       'bcc_address' => isset($message['bcc_email']) ? $message['bcc_email'] : NULL,
-      'tags' => array($message['id']),
-      'google_analytics_domains' => (variable_get('mandrill_analytics_domains', NULL)) ? explode(',', variable_get('mandrill_analytics_domains')) : array(),
-      'google_analytics_campaign' => variable_get('mandrill_analytics_campaign', ''),
-    );
+    ) + $mandrill_params;
 
     // send the email passing the message id as the tag for use in reporting
     $mailer = mandrill_get_api_object();
-
+    
     try {
       $result = $mailer->messages_send($mandrill_message);
       // @todo: look for rejected messages and log
@@ -97,7 +103,7 @@ class MandrillMailSystem implements MailSystemInterface {
         ),
         WATCHDOG_ERROR
       );
-
+ 
       return FALSE;
     }
   }
@@ -166,4 +172,3 @@ function mandrill_get_to($to) {
   }
   return $recipients;
 }
-
