diff --git a/inmail.module b/inmail.module index 3c69137..aa2c373 100644 --- a/inmail.module +++ b/inmail.module @@ -318,20 +318,14 @@ function inmail_mail($key, &$message, $params) { $message['raw_headers'] = $header; break; case 'success': - /** @var \Drupal\inmail\ProcessorResultInterface $result */ - $result = $params['result']; /** @var \Drupal\contact\MessageInterface $original */ $original = $params['original']; $message['subject'] = 'Re: ' . $original->getSubject(); $message['from'] = \Drupal::config('system.site')->get('mail'); $message['headers']['message-id'] = $original->getMessageId(); // Set the mail body. -// $body = []; $body [] = 'The message has been processed successfully.'; -// $body [] = ''; - // We can use here Kerims function 'inmail_get_log_message' - // instead of result->readLog(). -// $body [] = $result->readLog(); + //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 05a1e87..0dc43ad 100644 --- a/src/Entity/DelivererConfig.php +++ b/src/Entity/DelivererConfig.php @@ -32,7 +32,7 @@ use Drupal\inmail\DelivererConfigInterface; * "label", * "plugin", * "configuration", - * "message_report" = "message_report", + * "message_report", * }, * links = { * "edit-form" = "/admin/config/system/inmail/analyzers/{inmail_deliverer}", 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/Form/PluginConfigurationForm.php b/src/Form/PluginConfigurationForm.php index dc14017..b7115dc 100644 --- a/src/Form/PluginConfigurationForm.php +++ b/src/Form/PluginConfigurationForm.php @@ -66,12 +66,6 @@ class PluginConfigurationForm extends EntityForm { '#default_value' => $entity->status(), ); - $form['message_report'] = [ - '#title' => $this->t('Mail processing report to sender.'), - '#type' => 'checkbox', - '#default_value' => $entity->isMessageReport(), - ]; - $form['plugin_container'] = array( '#type' => 'container', '#prefix' => '
', diff --git a/src/MessageProcessor.php b/src/MessageProcessor.php index a8bac98..259be45 100644 --- a/src/MessageProcessor.php +++ b/src/MessageProcessor.php @@ -168,16 +168,18 @@ class MessageProcessor implements MessageProcessorInterface { } } $result->success($key); - // Trigger result transition mail. - $params['result'] = $result; - $params['original'] = $message; - // Sending message. - $site_config = \Drupal::config('system.site'); - $recipient = $site_config->get('mail'); - $mail_manager = \Drupal::service('plugin.manager.mail'); - // Check if message report + + // Send message report. + //TODO: Skip bounce imail.s if ($deliverer->isMessageReport()) { - $mail_manager->mail('inmail', 'success', $recipient, \Drupal::languageManager()->getDefaultLanguage()->getId(), $params); + // Trigger result transition mail. + $params['result'] = $result; + $params['original'] = $message; + // Sending message. + $recipient = $message->getFrom(); + $mail_manager = \Drupal::service('plugin.manager.mail'); + // Check if message report + $mail_manager->mail('inmail', 'success', $recipient, \Drupal::languageManager()->getDefaultLanguage()->getId(), $params); } } catch (ParseException $e) { diff --git a/tests/src/Kernel/ModeratorForwardTest.php b/tests/src/Kernel/ModeratorForwardTest.php index bc48e2a..5674770 100644 --- a/tests/src/Kernel/ModeratorForwardTest.php +++ b/tests/src/Kernel/ModeratorForwardTest.php @@ -100,10 +100,11 @@ class ModeratorForwardTest extends KernelTestBase { $deliverer->setMessageReport(1); $processor->process('unique_key', $regular_x,$deliverer); $this->assertMailCount(1); - $mail = $this->getMails(); - $this->assertEquals('bounces@example.com', $mail[0]['from']); - $this->assertEquals('Re: BMH testing sample', $mail[0]['subject']); - $this->assertEquals('The message has been processed successfully.', $mail[0]['body']); + $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']); // Again check past event log.