diff --git a/config/schema/inmail.schema.yml b/config/schema/inmail.schema.yml
index ea65eb5..b9ebf57 100644
--- a/config/schema/inmail.schema.yml
+++ b/config/schema/inmail.schema.yml
@@ -67,6 +67,9 @@ inmail.deliverer.*:
     configuration:
       label: 'Configuration'
       type: inmail.plugin.deliverer.[%parent.plugin]
+    message_report:
+      label: 'Message report'
+      type: boolean
 
 # Empty default configuration schema
 inmail.plugin.analyzer.*:
diff --git a/inmail.module b/inmail.module
index 873d2a2..d2a93ae 100644
--- a/inmail.module
+++ b/inmail.module
@@ -319,6 +319,16 @@ function inmail_mail($key, &$message, $params) {
       $header->addField('X-Inmail-Forwarded', 'handler_moderator_forward');
       $message['raw_headers'] = $header;
       break;
+    case 'success':
+      /** @var \Drupal\contact\MessageInterface $original */
+      $original = $params['original'];
+      $message['subject'] = 'Re: ' . $original->getSubject();
+      $message['headers']['references'] = $original->getMessageId();
+      // Set the mail body.
+      $body [] = 'The message has been processed successfully.';
+      //TODO: Add log messages in body https://www.drupal.org/node/2822320
+      $message['body'] = $body;
+      break;
   }
 }
 
diff --git a/src/Entity/DelivererConfig.php b/src/Entity/DelivererConfig.php
index 46ee2a0..0dc43ad 100644
--- a/src/Entity/DelivererConfig.php
+++ b/src/Entity/DelivererConfig.php
@@ -32,6 +32,7 @@ use Drupal\inmail\DelivererConfigInterface;
  *     "label",
  *     "plugin",
  *     "configuration",
+ *     "message_report",
  *   },
  *   links = {
  *     "edit-form" = "/admin/config/system/inmail/analyzers/{inmail_deliverer}",
@@ -49,4 +50,29 @@ class DelivererConfig extends PluginConfigEntity implements DelivererConfigInter
    */
   protected $pluginType = 'deliverer';
 
+  /**
+   *  The enabled/disabled status of the messageReporter.
+   *
+   * @var bool
+   */
+  protected $message_report = FALSE;
+
+  /**
+   * Set the flag to message reporter.
+   *
+   * @param bool $messageReport
+   *   Flag of message reporter.
+   */
+  public function setMessageReport($messageReport) {
+   $this->message_report = $messageReport;
+  }
+
+  /**
+   * Returns the flag for message report.
+   *
+   * @return bool
+   */
+  public function isMessageReport() {
+    return $this->message_report;
+  }
 }
diff --git a/src/Form/DelivererConfigurationForm.php b/src/Form/DelivererConfigurationForm.php
index b0df2d1..d291dbd 100644
--- a/src/Form/DelivererConfigurationForm.php
+++ b/src/Form/DelivererConfigurationForm.php
@@ -35,4 +35,22 @@ class DelivererConfigurationForm extends PluginConfigurationForm {
     $form_state->setRedirect('entity.inmail_deliverer.collection');
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public function buildForm(array $form, FormStateInterface $form_state) {
+    $form = parent::buildForm($form, $form_state);
+    $entity = $this->getEntity();
+
+    $form['message_report'] = [
+      '#title' => $this->t('Mail processing report to sender.'),
+      '#type' => 'checkbox',
+      '#default_value' => $entity->isMessageReport(),
+    ];
+
+    return $form;
+
+  }
+
+
 }
diff --git a/src/MessageProcessor.php b/src/MessageProcessor.php
index a36d4b1..2e9157c 100644
--- a/src/MessageProcessor.php
+++ b/src/MessageProcessor.php
@@ -9,6 +9,7 @@ use Drupal\Core\Session\AccountSwitcherInterface;
 use Drupal\inmail\Entity\DelivererConfig;
 use Drupal\inmail\MIME\ParseException;
 use Drupal\inmail\MIME\ParserInterface;
+use Drupal\inmail\Plugin\DataType\BounceData;
 use Drupal\user\Entity\User;
 use Drupal\Core\Logger\RfcLogLevel;
 
@@ -170,6 +171,7 @@ class MessageProcessor implements MessageProcessorInterface {
         }
       }
       $result->success($key);
+      $this->sendMessageReport($result, $message, $deliverer);
     }
     catch (ParseException $e) {
       // Set event message if parsing the message fails.
@@ -195,6 +197,37 @@ class MessageProcessor implements MessageProcessorInterface {
   }
 
   /**
+   * Sends message report after processing mail.
+   *
+   * @param $result \Drupal\inmail\ProcessorResult
+   *  The processor result object.
+   * @param $message \Drupal\inmail\MIME\MessageInterface $original
+   *   Received message.
+   * @param $deliverer \Drupal\inmail\Entity\DelivererConfig
+   *   The Deliverer configuration that delivered the messages.
+   */
+  public function sendMessageReport($result, $message, $deliverer) {
+    /** @var BounceData $bounce_data */
+    $bounce_data = NULL;
+    /** @var \Drupal\inmail\DefaultAnalyzerResult $default_result */
+    $default_result = $result->getAnalyzerResult();
+    if ( $default_result->hasContext('bounce')) {
+      $bounce_data = $default_result->getContext('bounce')->getContextData();
+      if ($deliverer->isMessageReport() && !$bounce_data->isBounce()) {
+        // Trigger result transition mail.
+        $params['result'] = $result;
+        $params['original'] = $message;
+        $recipient = $message->getFrom();
+        $mail_manager = \Drupal::service('plugin.manager.mail');
+        $mail_manager->mail('inmail',
+          'success',
+          $recipient,
+          \Drupal::languageManager()->getDefaultLanguage()->getId(), $params);
+      }
+    }
+  }
+
+  /**
    * {@inheritdoc}
    */
   public function processMultiple(array $messages, DelivererConfig $deliverer) {
diff --git a/tests/src/Kernel/ModeratorForwardTest.php b/tests/src/Kernel/ModeratorForwardTest.php
index fa3c87c..459f73a 100644
--- a/tests/src/Kernel/ModeratorForwardTest.php
+++ b/tests/src/Kernel/ModeratorForwardTest.php
@@ -94,6 +94,7 @@ class ModeratorForwardTest extends KernelTestBase {
     $processor->process('unique_key', $regular_x, $deliverer);
     $this->assertSuccess($deliverer, 'unique_key');
     $this->assertMailCount(0);
+    $processor->process('unique_key', $regular_x, $deliverer);
 
     // Again check past event log.
     $events = \Drupal::entityTypeManager()->getStorage('past_event')->loadMultiple();
@@ -108,6 +109,31 @@ class ModeratorForwardTest extends KernelTestBase {
     $processor->process('unique_key', $regular, $deliverer);
     $this->assertSuccess($deliverer, 'unique_key');
     $this->assertMailCount(1);
+
+  }
+
+  /**
+   * Tests sending message report after processing message.
+   */
+  public function testSendingReportMessage() {
+    /** @var \Drupal\inmail\MessageProcessor $processor */
+    $processor = \Drupal::service('inmail.processor');
+    $bounce = $this->getMessageFileContents('nouser.eml');
+    $regular = $this->getMessageFileContents('normal.eml');
+    $deliverer = $this->createTestDeliverer();
+    // Testing with bounce.
+    $this->assertMailCount(0);
+    $deliverer->setMessageReport(1);
+    $processor->process('unique_key', $bounce, $deliverer);
+    $this->assertMailCount(0);
+    // Testing with message witch is not bounce.
+    $processor->process('unique_key', $regular, $deliverer);
+    $this->assertMailCount(1);
+    $mails = $this->getMails();
+    $last_mail = $mails[0];
+    $this->assertEquals('bounces@example.com', $last_mail['from']);
+    $this->assertEquals('Re: BMH testing sample', $last_mail['subject']);
+    $this->assertEquals('The message has been processed successfully.', $last_mail['body']);
   }
 
   /**
