Skip to content

Commit 4c97bd8

Browse files
committed
fix(IMAP): don't add whitespaces to drafts
Signed-off-by: Maximilian Martin <maximilian_martin@gmx.de>
1 parent 32536d3 commit 4c97bd8

2 files changed

Lines changed: 17 additions & 8 deletions

File tree

lib/IMAP/ImapMessageFetcher.php

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,10 @@ private function getPart(Horde_Mime_Part $p, string $partNo, bool $isFetched): v
388388
// so this just appends the raw source to the main message.
389389
if ($p[0] === 'message') {
390390
$data = $this->loadBodyData($p, $partNo, $isFetched);
391-
$this->plainMessage .= trim($data) . "\n\n";
391+
if (!empty($this->plainMessage)) {
392+
$this->plainMessage .= "\n\n";
393+
}
394+
$this->plainMessage .= $data;
392395
}
393396
}
394397

@@ -422,7 +425,10 @@ private function handleMultiPartMessage(Horde_Mime_Part $part, string $partNo, b
422425
*/
423426
private function handleTextMessage(Horde_Mime_Part $p, string $partNo, bool $isFetched): void {
424427
$data = $this->loadBodyData($p, $partNo, $isFetched);
425-
$this->plainMessage .= trim($data) . "\n\n";
428+
if (!empty($this->plainMessage)) {
429+
$this->plainMessage .= "\n\n";
430+
}
431+
$this->plainMessage .= $data;
426432
}
427433

428434
/**
@@ -438,7 +444,10 @@ private function handleTextMessage(Horde_Mime_Part $p, string $partNo, bool $isF
438444
private function handleHtmlMessage(Horde_Mime_Part $p, string $partNo, bool $isFetched): void {
439445
$this->hasHtmlMessage = true;
440446
$data = $this->loadBodyData($p, $partNo, $isFetched);
441-
$this->htmlMessage .= $data . '<br><br>';
447+
if (!empty($this->htmlMessage)) {
448+
$this->htmlMessage .= '<br><br>';
449+
}
450+
$this->htmlMessage .= $data;
442451
}
443452

444453
/**

tests/Integration/IMAP/ImapMessageFetcherIntegrationTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public function testFetchMessageWithEncryptedMessage(): void {
9797

9898
$message = $fetcher->fetchMessage();
9999

100-
$this->assertEquals(self::LOREM . "\n\n", $message->getPlainBody());
100+
$this->assertEquals(self::LOREM, $message->getPlainBody());
101101
$this->assertCount(1, $message->attachments);
102102
$this->assertTrue($message->isEncrypted());
103103
$this->assertTrue($message->isSigned());
@@ -121,7 +121,7 @@ public function testFetchMessageWithEncryptedUnverifiedMessage(): void {
121121

122122
$message = $fetcher->fetchMessage();
123123

124-
$this->assertEquals(self::LOREM . "\n\n", $message->getPlainBody());
124+
$this->assertEquals(self::LOREM, $message->getPlainBody());
125125
$this->assertCount(1, $message->attachments);
126126
$this->assertTrue($message->isEncrypted());
127127
$this->assertTrue($message->isSigned());
@@ -142,7 +142,7 @@ public function testFetchMessageWithEncryptedSignedOpaqueMessage(): void {
142142

143143
$message = $fetcher->fetchMessage();
144144

145-
$this->assertEquals(self::LOREM . "\n\n", $message->getPlainBody());
145+
$this->assertEquals(self::LOREM . "\n", $message->getPlainBody());
146146
$this->assertTrue($message->isEncrypted());
147147
$this->assertTrue($message->isSigned());
148148
$this->assertTrue($message->isSignatureValid());
@@ -162,7 +162,7 @@ public function testFetchMessageWithSignedMessage(): void {
162162

163163
$message = $fetcher->fetchMessage();
164164

165-
$this->assertEquals(self::LOREM . "\n\n", $message->getPlainBody());
165+
$this->assertEquals(self::LOREM, $message->getPlainBody());
166166
$this->assertFalse($message->isEncrypted());
167167
$this->assertTrue($message->isSigned());
168168
$this->assertTrue($message->isSignatureValid());
@@ -182,7 +182,7 @@ public function testFetchMessageWithOpaqueSignedMessage(): void {
182182

183183
$message = $fetcher->fetchMessage();
184184

185-
$this->assertEquals(self::LOREM . "\n\n", $message->getPlainBody());
185+
$this->assertEquals(self::LOREM . "\n", $message->getPlainBody());
186186
$this->assertFalse($message->isEncrypted());
187187
$this->assertTrue($message->isSigned());
188188
$this->assertTrue($message->isSignatureValid());

0 commit comments

Comments
 (0)