diff --git a/src/ContactEmailerServiceProvider.php b/src/ContactEmailerServiceProvider.php
index c26a4e4..b9a26e9 100644
--- a/src/ContactEmailerServiceProvider.php
+++ b/src/ContactEmailerServiceProvider.php
@@ -122,7 +122,7 @@ class ContactEmailerServiceProvider {
         }
 
         // Subject and body.
-        $params['subject'] = $email->subject;
+        $params['subject'] = $this->setSubject($email->subject);
         $params['message'] = $this->setBody($email->body);
 
         // Set to html mail by default.
@@ -208,6 +208,39 @@ class ContactEmailerServiceProvider {
   }
 
   /**
+   * Set the email message subject.
+   *
+   * @var mixed $subject
+   *   A string.
+   *
+   * @return string
+   *   The rendered html or plain text.
+   */
+  protected function setSubject($subject) {
+    if (!$subject) {
+      return '';
+    }
+    $subject = $this->tokenizeSubject($subject);
+    // Send FormattableMarkup to ensure SwiftMailer doesn't further escape it.
+    return new FormattableMarkup($subject, []);
+  }
+
+  /**
+   * Apply tokens to subject value.
+   *
+   * @param string $subject
+   *   The subject string value.
+   *
+   * @return string
+   *   The tokenized subject.
+   */
+  protected function tokenizeSubject($subject) {
+    return $this->token->replace($subject, [
+      'contact_message' => $this->contactMessage,
+    ]);
+  }
+
+  /**
    * Set the email message body.
    *
    * @var mixed $body
