Skip to content

Commit

Permalink
Merge pull request #202 from Slamdunk/raw_headers
Browse files Browse the repository at this point in the history
Add imap_fetchheader() functionality
Closes #29 #138 #149
  • Loading branch information
Slamdunk authored Sep 28, 2017
2 parents aac8f58 + 38300a2 commit 71e929a
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/Message.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
class Message extends Message\Part
{
private $headers;
private $rawHeaders;
private $attachments;

/**
Expand Down Expand Up @@ -235,6 +236,20 @@ public function getHeaders(): Message\Headers
return $this->headers;
}

/**
* Get raw message headers
*
* @return string
*/
public function getRawHeaders(): string
{
if (null === $this->rawHeaders) {
$this->rawHeaders = imap_fetchheader($this->stream, $this->messageNumber, \FT_UID);
}

return $this->rawHeaders;
}

/**
* Get body HTML
*
Expand Down
17 changes: 17 additions & 0 deletions tests/MessageTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -313,4 +313,21 @@ public function provideDateCases(): array
['2006-01-04T21:47:28+0000', 'WED 04, JAN 2006 21:47:28'],
];
}

public function testRawHeaders()
{
$headers = 'From: [email protected]' . "\r\n"
. 'To: [email protected]' . "\n"
. "\r\n"
;
$originalMessage = $headers . 'Content' . "\n";

$this->mailbox->addMessage($originalMessage);
$message = $this->mailbox->getMessage(1);

$expectedHeaders = preg_split('/\R/u', $headers);
$expectedHeaders = implode("\r\n", $expectedHeaders);

$this->assertSame($expectedHeaders, $message->getRawHeaders());
}
}

0 comments on commit 71e929a

Please sign in to comment.