Verified Commit 5be98c43 authored by Dave Long's avatar Dave Long
Browse files

Issue #3451611 by mfb, xjm, smustgrave, quietone: Fix the format=flowed;...

Issue #3451611 by mfb, xjm, smustgrave, quietone: Fix the format=flowed; delsp=yes encoding of email messages

(cherry picked from commit c29768f4)
parent 32075e1a
Loading
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -64,10 +64,8 @@ public function format(array $message) {
    // Join the body array into one string.
    $message['body'] = implode("\n\n", $message['body']);

    // Convert any HTML to plain-text.
    // Convert any HTML to plain text (which also wraps the mail body).
    $message['body'] = MailFormatHelper::htmlToText($message['body']);
    // Wrap the mail body for sending.
    $message['body'] = MailFormatHelper::wrapMail($message['body']);

    return $message;
  }
+4 −1
Original line number Diff line number Diff line
@@ -98,11 +98,14 @@ public function __construct(
  }

  public function format(array $message) {
    // Convert any HTML to plain-text.
    foreach ($message['body'] as &$part) {
      // If the message contains HTML, convert it to plain text (which also
      // wraps the mail body).
      if ($part instanceof MarkupInterface) {
        $part = MailFormatHelper::htmlToText($part);
      }
      // If the message does not contain HTML, it still needs to be wrapped
      // properly.
      else {
        $part = MailFormatHelper::wrapMail($part);
      }
+5 −2
Original line number Diff line number Diff line
@@ -32,8 +32,11 @@ public function testWrapMail(): void {
    // Check that the body headers were not wrapped even though some exceeded
    // 77 characters.
    $this->assertEquals($headers_in_body, $processed_headers, 'Headers in the body are not wrapped.');
    // Check that the body text is wrapped.
    $this->assertEquals(wordwrap($body, 77, " \n"), $processed_body, 'Body text is wrapped.');
    // Check that the body text is soft-wrapped according to the
    // "format=flowed; delsp=yes" encoding. When interpreting this encoding,
    // mail readers will delete a space at the end of the line; therefore an
    // extra trailing space should be present in the raw body (see RFC 3676).
    $this->assertEquals(wordwrap($body, 77, "  \n"), $processed_body, 'Body text is soft-wrapped.');
  }

}
+1 −1

File changed.

Contains only whitespace changes.