diff --git a/README.txt b/README.txt
index f2cc77d..2751d87 100644
--- a/README.txt
+++ b/README.txt
@@ -337,3 +337,9 @@ simply provide the HTML version in $message['body'] and the plain text version
 in $message['plain']. Please make sure you set $message['params']['format'] to
 'text/html'. The Swift Mailer module will not attempt to generate a plain text
 version if one is already available.
+
+5.0 Custom settings/behavior
+
+If you want to add custom settings or behavior to the mailer or the message,
+before the it is sent, you can implement hook_swiftmailer_alter().
+See swiftmailer.api.php for an example.
diff --git a/src/Plugin/Mail/SwiftMailer.php b/src/Plugin/Mail/SwiftMailer.php
index 4c3933a..061824e 100644
--- a/src/Plugin/Mail/SwiftMailer.php
+++ b/src/Plugin/Mail/SwiftMailer.php
@@ -387,6 +387,9 @@ class SwiftMailer implements MailInterface, ContainerFactoryPluginInterface {
         }
       }
 
+      // Allows other modules to customize the message.
+      $this->moduleHandler->alter('swiftmailer', $mailer, $m, $message);
+
       // Send the message.
       Conversion::swiftmailer_filter_message($m);
       return (bool) $mailer->send($m);
diff --git a/swiftmailer.api.php b/swiftmailer.api.php
new file mode 100644
index 0000000..ade6a43
--- /dev/null
+++ b/swiftmailer.api.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * @file
+ * Hooks specific to the SwiftMailer module.
+ */
+
+/**
+ * @addtogroup hooks
+ * @{
+ */
+
+/**
+ * Alter messages before sending it with SwiftMailer.
+ *
+ * @see \Drupal\swiftmailer\Plugin\Mail\SwiftMailer::mail
+ */
+function hook_swiftmailer_alter(Swift_Mailer &$swiftMailer, Swift_Message &$swiftMessage, $message) {
+  // Set read receipt.
+  $swiftMessage->setReadReceiptTo('your@address.com');
+
+  // Register a SwiftMailer Plugin.
+  // @see https://swiftmailer.symfony.com/docs/plugins.html
+  $replacements = [];
+  $decorator = new Swift_Plugins_DecoratorPlugin($replacements);
+  $swiftMailer->registerPlugin($decorator);
+}
+
+/**
+ * @} End of "addtogroup hooks".
+ */
