0

我创建了一个 slim4 操作来发送多个电子邮件。这两封电子邮件从视图中获取输出并发送两封单独的电子邮件。

第一封邮件发送正常,但第二封邮件与第一封邮件的正文一起发送(收件人和主题是正确的。)

我通过调试和跟踪收到的值排除了电子邮件库。我可以确认正在设置相同的响应正文,

我尝试制作 $response 的副本。这并没有改变事情。

下面的代码是一个总结

public function actionContact(RequestInterface $request, ResponseInterface $response, array $args): ResponseInterface

   $form_data = (array)$request->getParsedBody();

   $notify_view_ = $this->renderer->render(
      $response,
      'emails/contactus_notify.php',
      ['form_data' => $form_data]
   );
   $notify_message = $response->getBody();
   $notify_mail = new Email('user1@domain.com, 'Subject 1', $notify_message)->send();
  
   // Send second email
   $thankyou_view_ = $this->renderer->render(
      $response,
      'emails/contactus_thankyou.php',
      ['form_data' => $form_data]
   );
   $thankyou_message = $response->getBody();
   $thankyou_mail = new Email('user2@domain.com, 'Subject 2', $thankyou_message)->send();
}

经过进一步调试后,我发现第二个 getBody() 实际上是连接两个 render() 的结果。

我尝试重置身体

   $response->getBody()->write('');

但这没有效果。第二封电子邮件是通过渲染连接的两个写入。

4

0 回答 0