mirror of
https://github.com/itflow-org/itflow
synced 2026-02-28 19:04:52 +00:00
Reintroduce Webklex IMAP for ticket processing as PHP-IMAP is no longer being developed. This is optional for now and considered beta can be found in cron/ticket_email_parser.php
This commit is contained in:
72
plugins/vendor/webklex/php-imap/tests/AddressTest.php
vendored
Normal file
72
plugins/vendor/webklex/php-imap/tests/AddressTest.php
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
/*
|
||||
* File: AddressTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 28.12.22 18:11
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Address;
|
||||
|
||||
class AddressTest extends TestCase {
|
||||
|
||||
/**
|
||||
* Test data
|
||||
*
|
||||
* @var array|string[] $data
|
||||
*/
|
||||
protected array $data = [
|
||||
"personal" => "Username",
|
||||
"mailbox" => "info",
|
||||
"host" => "domain.tld",
|
||||
"mail" => "info@domain.tld",
|
||||
"full" => "Username <info@domain.tld>",
|
||||
];
|
||||
|
||||
/**
|
||||
* Address test
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAddress(): void {
|
||||
$address = new Address((object)$this->data);
|
||||
|
||||
self::assertSame("Username", $address->personal);
|
||||
self::assertSame("info", $address->mailbox);
|
||||
self::assertSame("domain.tld", $address->host);
|
||||
self::assertSame("info@domain.tld", $address->mail);
|
||||
self::assertSame("Username <info@domain.tld>", $address->full);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Address to string conversion
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAddressToStringConversion(): void {
|
||||
$address = new Address((object)$this->data);
|
||||
|
||||
self::assertSame("Username <info@domain.tld>", (string)$address);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Address serialization
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testAddressSerialization(): void {
|
||||
$address = new Address((object)$this->data);
|
||||
|
||||
foreach($address as $key => $value) {
|
||||
self::assertSame($this->data[$key], $value);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
37
plugins/vendor/webklex/php-imap/tests/AttachmentTest.php
vendored
Normal file
37
plugins/vendor/webklex/php-imap/tests/AttachmentTest.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Tests;
|
||||
|
||||
use Tests\fixtures\FixtureTestCase;
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
|
||||
class AttachmentTest extends FixtureTestCase
|
||||
{
|
||||
protected Attachment $attachment;
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
$message = $this->getFixture("attachment_encoded_filename.eml");
|
||||
$this->attachment = $message->getAttachments()->first();
|
||||
}
|
||||
/**
|
||||
* @dataProvider decodeNameDataProvider
|
||||
*/
|
||||
public function testDecodeName(string $input, string $output): void
|
||||
{
|
||||
$name = $this->attachment->decodeName($input);
|
||||
$this->assertEquals($output, $name);
|
||||
}
|
||||
|
||||
public function decodeNameDataProvider(): array
|
||||
{
|
||||
return [
|
||||
['../../../../../../../../../../../var/www/shell.php', 'varwwwshell.php'],
|
||||
['test..xml', 'test.xml'],
|
||||
[chr(0), ''],
|
||||
['C:\\file.txt', 'Cfile.txt'],
|
||||
];
|
||||
}
|
||||
}
|
||||
75
plugins/vendor/webklex/php-imap/tests/AttributeTest.php
vendored
Normal file
75
plugins/vendor/webklex/php-imap/tests/AttributeTest.php
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
/*
|
||||
* File: AttributeTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 28.12.22 18:11
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Attribute;
|
||||
|
||||
class AttributeTest extends TestCase {
|
||||
|
||||
/**
|
||||
* String Attribute test
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testStringAttribute(): void {
|
||||
$attribute = new Attribute("foo", "bar");
|
||||
|
||||
self::assertSame("bar", $attribute->toString());
|
||||
self::assertSame("foo", $attribute->getName());
|
||||
self::assertSame("foos", $attribute->setName("foos")->getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* Date Attribute test
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testDateAttribute(): void {
|
||||
$attribute = new Attribute("foo", "2022-12-26 08:07:14 GMT-0800");
|
||||
|
||||
self::assertInstanceOf(Carbon::class, $attribute->toDate());
|
||||
self::assertSame("2022-12-26 08:07:14 GMT-0800", $attribute->toDate()->format("Y-m-d H:i:s T"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Array Attribute test
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testArrayAttribute(): void {
|
||||
$attribute = new Attribute("foo", ["bar"]);
|
||||
|
||||
self::assertSame("bar", $attribute->toString());
|
||||
|
||||
$attribute->add("bars");
|
||||
self::assertSame(true, $attribute->has(1));
|
||||
self::assertSame("bars", $attribute->get(1));
|
||||
self::assertSame(true, $attribute->contains("bars"));
|
||||
self::assertSame("foo, bars", $attribute->set("foo", 0)->toString());
|
||||
|
||||
$attribute->remove(0);
|
||||
self::assertSame("bars", $attribute->toString());
|
||||
|
||||
self::assertSame("bars, foos", $attribute->merge(["foos", "bars"], true)->toString());
|
||||
self::assertSame("bars, foos, foos, donk", $attribute->merge(["foos", "donk"], false)->toString());
|
||||
|
||||
self::assertSame(4, $attribute->count());
|
||||
|
||||
self::assertSame("donk", $attribute->last());
|
||||
self::assertSame("bars", $attribute->first());
|
||||
|
||||
self::assertSame(["bars", "foos", "foos", "donk"], array_values($attribute->all()));
|
||||
}
|
||||
}
|
||||
94
plugins/vendor/webklex/php-imap/tests/ClientManagerTest.php
vendored
Normal file
94
plugins/vendor/webklex/php-imap/tests/ClientManagerTest.php
vendored
Normal file
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
/*
|
||||
* File: ClientManagerTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 28.12.22 18:11
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Client;
|
||||
use Webklex\PHPIMAP\ClientManager;
|
||||
use Webklex\PHPIMAP\Config;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\IMAP;
|
||||
|
||||
class ClientManagerTest extends TestCase {
|
||||
|
||||
/** @var ClientManager $cm */
|
||||
protected ClientManager $cm;
|
||||
|
||||
/**
|
||||
* Setup the test environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUp(): void {
|
||||
$this->cm = new ClientManager();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if the config can be accessed
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testConfigAccessorAccount(): void {
|
||||
$config = $this->cm->getConfig();
|
||||
self::assertInstanceOf(Config::class, $config);
|
||||
self::assertSame("default", $config->get("default"));
|
||||
self::assertSame("d-M-Y", $config->get("date_format"));
|
||||
self::assertSame(IMAP::FT_PEEK, $config->get("options.fetch"));
|
||||
self::assertSame([], $config->get("options.open"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test creating a client instance
|
||||
*
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testMakeClient(): void {
|
||||
self::assertInstanceOf(Client::class, $this->cm->make([]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test accessing accounts
|
||||
*
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testAccountAccessor(): void {
|
||||
self::assertSame("default", $this->cm->getConfig()->getDefaultAccount());
|
||||
self::assertNotEmpty($this->cm->account("default"));
|
||||
|
||||
$this->cm->getConfig()->setDefaultAccount("foo");
|
||||
self::assertSame("foo", $this->cm->getConfig()->getDefaultAccount());
|
||||
$this->cm->getConfig()->setDefaultAccount("default");
|
||||
}
|
||||
|
||||
/**
|
||||
* Test setting a config
|
||||
*
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testSetConfig(): void {
|
||||
$config = [
|
||||
"default" => "foo",
|
||||
"options" => [
|
||||
"fetch" => IMAP::ST_MSGN,
|
||||
"open" => "foo"
|
||||
]
|
||||
];
|
||||
$cm = new ClientManager($config);
|
||||
|
||||
self::assertSame("foo", $cm->getConfig()->getDefaultAccount());
|
||||
self::assertInstanceOf(Client::class, $cm->account("foo"));
|
||||
self::assertSame(IMAP::ST_MSGN, $cm->getConfig()->get("options.fetch"));
|
||||
self::assertSame(false, is_array($cm->getConfig()->get("options.open")));
|
||||
|
||||
}
|
||||
}
|
||||
348
plugins/vendor/webklex/php-imap/tests/ClientTest.php
vendored
Normal file
348
plugins/vendor/webklex/php-imap/tests/ClientTest.php
vendored
Normal file
@@ -0,0 +1,348 @@
|
||||
<?php
|
||||
/*
|
||||
* File: ClientTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 28.12.22 18:11
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests;
|
||||
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Client;
|
||||
use Webklex\PHPIMAP\Config;
|
||||
use Webklex\PHPIMAP\Connection\Protocols\ImapProtocol;
|
||||
use Webklex\PHPIMAP\Connection\Protocols\Response;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Folder;
|
||||
use Webklex\PHPIMAP\Support\Masks\AttachmentMask;
|
||||
use Webklex\PHPIMAP\Support\Masks\MessageMask;
|
||||
|
||||
class ClientTest extends TestCase {
|
||||
|
||||
/** @var Client $client */
|
||||
protected Client $client;
|
||||
|
||||
/** @var MockObject ImapProtocol mockup */
|
||||
protected MockObject $protocol;
|
||||
|
||||
/**
|
||||
* Setup the test environment.
|
||||
*
|
||||
* @return void
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function setUp(): void {
|
||||
$config = Config::make([
|
||||
"accounts" => [
|
||||
"default" => [
|
||||
'protocol' => 'imap',
|
||||
'encryption' => 'ssl',
|
||||
'username' => 'foo@domain.tld',
|
||||
'password' => 'bar',
|
||||
'proxy' => [
|
||||
'socket' => null,
|
||||
'request_fulluri' => false,
|
||||
'username' => null,
|
||||
'password' => null,
|
||||
],
|
||||
]]
|
||||
]);
|
||||
$this->client = new Client($config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Client test
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testClient(): void {
|
||||
$this->createNewProtocolMockup();
|
||||
|
||||
self::assertInstanceOf(ImapProtocol::class, $this->client->getConnection());
|
||||
self::assertSame(true, $this->client->isConnected());
|
||||
self::assertSame(false, $this->client->checkConnection());
|
||||
self::assertSame(30, $this->client->getTimeout());
|
||||
self::assertSame(MessageMask::class, $this->client->getDefaultMessageMask());
|
||||
self::assertSame(AttachmentMask::class, $this->client->getDefaultAttachmentMask());
|
||||
self::assertArrayHasKey("new", $this->client->getDefaultEvents("message"));
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testClientClone(): void {
|
||||
$config = Config::make([
|
||||
"accounts" => [
|
||||
"default" => [
|
||||
'host' => 'example.com',
|
||||
'port' => 993,
|
||||
'protocol' => 'imap', //might also use imap, [pop3 or nntp (untested)]
|
||||
'encryption' => 'ssl', // Supported: false, 'ssl', 'tls'
|
||||
'validate_cert' => true,
|
||||
'username' => 'root@example.com',
|
||||
'password' => 'foo',
|
||||
'authentication' => null,
|
||||
'rfc' => 'RFC822', // If you are using iCloud, you might want to set this to 'BODY'
|
||||
'proxy' => [
|
||||
'socket' => null,
|
||||
'request_fulluri' => false,
|
||||
'username' => null,
|
||||
'password' => null,
|
||||
],
|
||||
"timeout" => 30,
|
||||
"extensions" => []
|
||||
]]
|
||||
]);
|
||||
$client = new Client($config);
|
||||
$clone = $client->clone();
|
||||
self::assertInstanceOf(Client::class, $clone);
|
||||
self::assertSame($client->getConfig(), $clone->getConfig());
|
||||
self::assertSame($client->getAccountConfig(), $clone->getAccountConfig());
|
||||
self::assertSame($client->host, $clone->host);
|
||||
}
|
||||
|
||||
public function testClientLogout(): void {
|
||||
$this->createNewProtocolMockup();
|
||||
|
||||
$this->protocol->expects($this->any())->method('logout')->willReturn(Response::empty()->setResponse([
|
||||
0 => "BYE Logging out\r\n",
|
||||
1 => "OK Logout completed (0.001 + 0.000 secs).\r\n",
|
||||
]));
|
||||
self::assertInstanceOf(Client::class, $this->client->disconnect());
|
||||
|
||||
}
|
||||
|
||||
public function testClientExpunge(): void {
|
||||
$this->createNewProtocolMockup();
|
||||
$this->protocol->expects($this->any())->method('expunge')->willReturn(Response::empty()->setResponse([
|
||||
0 => "OK",
|
||||
1 => "Expunge",
|
||||
2 => "completed",
|
||||
3 => [
|
||||
0 => "0.001",
|
||||
1 => "+",
|
||||
2 => "0.000",
|
||||
3 => "secs).",
|
||||
],
|
||||
]));
|
||||
self::assertNotEmpty($this->client->expunge());
|
||||
|
||||
}
|
||||
|
||||
public function testClientFolders(): void {
|
||||
$this->createNewProtocolMockup();
|
||||
$this->protocol->expects($this->any())->method('expunge')->willReturn(Response::empty()->setResponse([
|
||||
0 => "OK",
|
||||
1 => "Expunge",
|
||||
2 => "completed",
|
||||
3 => [
|
||||
0 => "0.001",
|
||||
1 => "+",
|
||||
2 => "0.000",
|
||||
3 => "secs).",
|
||||
],
|
||||
]));
|
||||
|
||||
$this->protocol->expects($this->any())->method('selectFolder')->willReturn(Response::empty()->setResponse([
|
||||
"flags" => [
|
||||
0 => [
|
||||
0 => "\Answered",
|
||||
1 => "\Flagged",
|
||||
2 => "\Deleted",
|
||||
3 => "\Seen",
|
||||
4 => "\Draft",
|
||||
5 => "NonJunk",
|
||||
6 => "unknown-1",
|
||||
],
|
||||
],
|
||||
"exists" => 139,
|
||||
"recent" => 0,
|
||||
"unseen" => 94,
|
||||
"uidvalidity" => 1488899637,
|
||||
"uidnext" => 278,
|
||||
]));
|
||||
self::assertNotEmpty($this->client->openFolder("INBOX"));
|
||||
self::assertSame("INBOX", $this->client->getFolderPath());
|
||||
|
||||
$this->protocol->expects($this->any())->method('examineFolder')->willReturn(Response::empty()->setResponse([
|
||||
"flags" => [
|
||||
0 => [
|
||||
0 => "\Answered",
|
||||
1 => "\Flagged",
|
||||
2 => "\Deleted",
|
||||
3 => "\Seen",
|
||||
4 => "\Draft",
|
||||
5 => "NonJunk",
|
||||
6 => "unknown-1",
|
||||
],
|
||||
],
|
||||
"exists" => 139,
|
||||
"recent" => 0,
|
||||
"unseen" => 94,
|
||||
"uidvalidity" => 1488899637,
|
||||
"uidnext" => 278,
|
||||
]));
|
||||
self::assertNotEmpty($this->client->checkFolder("INBOX"));
|
||||
|
||||
$this->protocol->expects($this->any())->method('folders')->with($this->identicalTo(""), $this->identicalTo("*"))->willReturn(Response::empty()->setResponse([
|
||||
"INBOX" => [
|
||||
"delimiter" => ".",
|
||||
"flags" => [
|
||||
0 => "\HasChildren",
|
||||
],
|
||||
],
|
||||
"INBOX.new" => [
|
||||
"delimiter" => ".",
|
||||
"flags" => [
|
||||
0 => "\HasNoChildren",
|
||||
],
|
||||
],
|
||||
"INBOX.9AL56dEMTTgUKOAz" => [
|
||||
"delimiter" => ".",
|
||||
"flags" => [
|
||||
0 => "\HasNoChildren",
|
||||
],
|
||||
],
|
||||
"INBOX.U9PsHCvXxAffYvie" => [
|
||||
"delimiter" => ".",
|
||||
"flags" => [
|
||||
0 => "\HasNoChildren",
|
||||
],
|
||||
],
|
||||
"INBOX.Trash" => [
|
||||
"delimiter" => ".",
|
||||
"flags" => [
|
||||
0 => "\HasNoChildren",
|
||||
1 => "\Trash",
|
||||
],
|
||||
],
|
||||
"INBOX.processing" => [
|
||||
"delimiter" => ".",
|
||||
"flags" => [
|
||||
0 => "\HasNoChildren",
|
||||
],
|
||||
],
|
||||
"INBOX.Sent" => [
|
||||
"delimiter" => ".",
|
||||
"flags" => [
|
||||
0 => "\HasNoChildren",
|
||||
1 => "\Sent",
|
||||
],
|
||||
],
|
||||
"INBOX.OzDWCXKV3t241koc" => [
|
||||
"delimiter" => ".",
|
||||
"flags" => [
|
||||
0 => "\HasNoChildren",
|
||||
],
|
||||
],
|
||||
"INBOX.5F3bIVTtBcJEqIVe" => [
|
||||
"delimiter" => ".",
|
||||
"flags" => [
|
||||
0 => "\HasNoChildren",
|
||||
],
|
||||
],
|
||||
"INBOX.8J3rll6eOBWnTxIU" => [
|
||||
"delimiter" => ".",
|
||||
"flags" => [
|
||||
0 => "\HasNoChildren",
|
||||
],
|
||||
],
|
||||
"INBOX.Junk" => [
|
||||
"delimiter" => ".",
|
||||
"flags" => [
|
||||
0 => "\HasNoChildren",
|
||||
1 => "\Junk",
|
||||
],
|
||||
],
|
||||
"INBOX.Drafts" => [
|
||||
"delimiter" => ".",
|
||||
"flags" => [
|
||||
0 => "\HasNoChildren",
|
||||
1 => "\Drafts",
|
||||
],
|
||||
],
|
||||
"INBOX.test" => [
|
||||
"delimiter" => ".",
|
||||
"flags" => [
|
||||
0 => "\HasNoChildren",
|
||||
],
|
||||
],
|
||||
]));
|
||||
|
||||
$this->protocol->expects($this->any())->method('createFolder')->willReturn(Response::empty()->setResponse([
|
||||
0 => "OK Create completed (0.004 + 0.000 + 0.003 secs).\r\n",
|
||||
]));
|
||||
self::assertNotEmpty($this->client->createFolder("INBOX.new"));
|
||||
|
||||
$this->protocol->expects($this->any())->method('deleteFolder')->willReturn(Response::empty()->setResponse([
|
||||
0 => "OK Delete completed (0.007 + 0.000 + 0.006 secs).\r\n",
|
||||
]));
|
||||
self::assertNotEmpty($this->client->deleteFolder("INBOX.new"));
|
||||
|
||||
self::assertInstanceOf(Folder::class, $this->client->getFolderByPath("INBOX.new"));
|
||||
self::assertInstanceOf(Folder::class, $this->client->getFolderByName("new"));
|
||||
self::assertInstanceOf(Folder::class, $this->client->getFolder("INBOX.new", "."));
|
||||
self::assertInstanceOf(Folder::class, $this->client->getFolder("new"));
|
||||
}
|
||||
|
||||
public function testClientId(): void {
|
||||
$this->createNewProtocolMockup();
|
||||
$this->protocol->expects($this->any())->method('ID')->willReturn(Response::empty()->setResponse([
|
||||
0 => "ID (\"name\" \"Dovecot\")\r\n",
|
||||
1 => "OK ID completed (0.001 + 0.000 secs).\r\n"
|
||||
|
||||
]));
|
||||
self::assertSame("ID (\"name\" \"Dovecot\")\r\n", $this->client->Id()[0]);
|
||||
|
||||
}
|
||||
|
||||
public function testClientConfig(): void {
|
||||
$config = $this->client->getConfig()->get("accounts.".$this->client->getConfig()->getDefaultAccount());
|
||||
self::assertSame("foo@domain.tld", $config["username"]);
|
||||
self::assertSame("bar", $config["password"]);
|
||||
self::assertSame("localhost", $config["host"]);
|
||||
self::assertSame(true, $config["validate_cert"]);
|
||||
self::assertSame(993, $config["port"]);
|
||||
|
||||
$this->client->getConfig()->set("accounts.".$this->client->getConfig()->getDefaultAccount(), [
|
||||
"host" => "domain.tld",
|
||||
'password' => 'bar',
|
||||
]);
|
||||
$config = $this->client->getConfig()->get("accounts.".$this->client->getConfig()->getDefaultAccount());
|
||||
|
||||
self::assertSame("bar", $config["password"]);
|
||||
self::assertSame("domain.tld", $config["host"]);
|
||||
self::assertSame(true, $config["validate_cert"]);
|
||||
}
|
||||
|
||||
protected function createNewProtocolMockup() {
|
||||
$this->protocol = $this->createMock(ImapProtocol::class);
|
||||
|
||||
$this->protocol->expects($this->any())->method('connected')->willReturn(true);
|
||||
$this->protocol->expects($this->any())->method('getConnectionTimeout')->willReturn(30);
|
||||
|
||||
$this->protocol
|
||||
->expects($this->any())
|
||||
->method('createStream')
|
||||
//->will($this->onConsecutiveCalls(true));
|
||||
->willReturn(true);
|
||||
|
||||
$this->client->connection = $this->protocol;
|
||||
}
|
||||
}
|
||||
204
plugins/vendor/webklex/php-imap/tests/HeaderTest.php
vendored
Normal file
204
plugins/vendor/webklex/php-imap/tests/HeaderTest.php
vendored
Normal file
@@ -0,0 +1,204 @@
|
||||
<?php
|
||||
/*
|
||||
* File: HeaderTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 28.12.22 18:11
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Address;
|
||||
use Webklex\PHPIMAP\Attribute;
|
||||
use Webklex\PHPIMAP\Config;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Header;
|
||||
use Webklex\PHPIMAP\IMAP;
|
||||
|
||||
class HeaderTest extends TestCase {
|
||||
|
||||
/** @var Config $config */
|
||||
protected Config $config;
|
||||
|
||||
/**
|
||||
* Setup the test environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUp(): void {
|
||||
$this->config = Config::make();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test parsing email headers
|
||||
*
|
||||
* @throws InvalidMessageDateException
|
||||
*/
|
||||
public function testHeaderParsing(): void {
|
||||
$email = file_get_contents(implode(DIRECTORY_SEPARATOR, [__DIR__, "messages", "1366671050@github.com.eml"]));
|
||||
if (!str_contains($email, "\r\n")) {
|
||||
$email = str_replace("\n", "\r\n", $email);
|
||||
}
|
||||
|
||||
$raw_header = substr($email, 0, strpos($email, "\r\n\r\n"));
|
||||
|
||||
$header = new Header($raw_header, $this->config);
|
||||
$subject = $header->get("subject");
|
||||
$returnPath = $header->get("return_path");
|
||||
/** @var Carbon $date */
|
||||
$date = $header->get("date")->first();
|
||||
/** @var Address $from */
|
||||
$from = $header->get("from")->first();
|
||||
/** @var Address $to */
|
||||
$to = $header->get("to")->first();
|
||||
|
||||
self::assertSame($raw_header, $header->raw);
|
||||
self::assertSame([
|
||||
0 => 'from mx.domain.tld by localhost with LMTP id SABVMNfGqWP+PAAA0J78UA (envelope-from <noreply@github.com>) for <someone@domain.tld>; Mon, 26 Dec 2022 17:07:51 +0100',
|
||||
1 => 'from localhost (localhost [127.0.0.1]) by mx.domain.tld (Postfix) with ESMTP id C3828140227 for <someone@domain.tld>; Mon, 26 Dec 2022 17:07:51 +0100 (CET)',
|
||||
2 => 'from mx.domain.tld ([127.0.0.1]) by localhost (mx.domain.tld [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JcIS9RuNBTNx for <someone@domain.tld>; Mon, 26 Dec 2022 17:07:21 +0100 (CET)',
|
||||
3 => 'from smtp.github.com (out-26.smtp.github.com [192.30.252.209]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx.domain.tld (Postfix) with ESMTPS id 6410B13FEB2 for <someone@domain.tld>; Mon, 26 Dec 2022 17:07:21 +0100 (CET)',
|
||||
4 => 'from github-lowworker-891b8d2.va3-iad.github.net (github-lowworker-891b8d2.va3-iad.github.net [10.48.109.104]) by smtp.github.com (Postfix) with ESMTP id 176985E0200 for <someone@domain.tld>; Mon, 26 Dec 2022 08:07:14 -0800 (PST)',
|
||||
], $header->get("received")->toArray());
|
||||
self::assertInstanceOf(Attribute::class, $subject);
|
||||
self::assertSame("Re: [Webklex/php-imap] Read all folders? (Issue #349)", $subject->toString());
|
||||
self::assertSame("Re: [Webklex/php-imap] Read all folders? (Issue #349)", (string)$header->subject);
|
||||
self::assertSame("noreply@github.com", $returnPath->toString());
|
||||
self::assertSame("return_path", $returnPath->getName());
|
||||
self::assertSame("-4.299", (string)$header->get("X-Spam-Score"));
|
||||
self::assertSame("Webklex/php-imap/issues/349/1365266070@github.com", (string)$header->get("Message-ID"));
|
||||
self::assertSame(5, $header->get("received")->count());
|
||||
self::assertSame(IMAP::MESSAGE_PRIORITY_UNKNOWN, (int)$header->get("priority")());
|
||||
|
||||
self::assertSame("Username", $from->personal);
|
||||
self::assertSame("notifications", $from->mailbox);
|
||||
self::assertSame("github.com", $from->host);
|
||||
self::assertSame("notifications@github.com", $from->mail);
|
||||
self::assertSame("Username <notifications@github.com>", $from->full);
|
||||
|
||||
self::assertSame("Webklex/php-imap", $to->personal);
|
||||
self::assertSame("php-imap", $to->mailbox);
|
||||
self::assertSame("noreply.github.com", $to->host);
|
||||
self::assertSame("php-imap@noreply.github.com", $to->mail);
|
||||
self::assertSame("Webklex/php-imap <php-imap@noreply.github.com>", $to->full);
|
||||
|
||||
self::assertInstanceOf(Carbon::class, $date);
|
||||
self::assertSame("2022-12-26 08:07:14 GMT-0800", $date->format("Y-m-d H:i:s T"));
|
||||
|
||||
self::assertSame(51, count($header->getAttributes()));
|
||||
}
|
||||
|
||||
public function testRfc822ParseHeaders() {
|
||||
$mock = $this->getMockBuilder(Header::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods([])
|
||||
->getMock();
|
||||
|
||||
$config = new \ReflectionProperty($mock, 'options');
|
||||
$config->setAccessible(true);
|
||||
$config->setValue($mock, $this->config->get("options"));
|
||||
|
||||
$mockHeader = "Content-Type: text/csv; charset=WINDOWS-1252; name*0=\"TH_Is_a_F ile name example 20221013.c\"; name*1=sv\r\nContent-Transfer-Encoding: quoted-printable\r\nContent-Disposition: attachment; filename*0=\"TH_Is_a_F ile name example 20221013.c\"; filename*1=\"sv\"\r\n";
|
||||
|
||||
$expected = new \stdClass();
|
||||
$expected->content_type = 'text/csv; charset=WINDOWS-1252; name*0="TH_Is_a_F ile name example 20221013.c"; name*1=sv';
|
||||
$expected->content_transfer_encoding = 'quoted-printable';
|
||||
$expected->content_disposition = 'attachment; filename*0="TH_Is_a_F ile name example 20221013.c"; filename*1="sv"';
|
||||
|
||||
$this->assertEquals($expected, $mock->rfc822_parse_headers($mockHeader));
|
||||
}
|
||||
|
||||
public function testExtractHeaderExtensions() {
|
||||
$mock = $this->getMockBuilder(Header::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods([])
|
||||
->getMock();
|
||||
|
||||
$method = new \ReflectionMethod($mock, 'extractHeaderExtensions');
|
||||
$method->setAccessible(true);
|
||||
|
||||
$mockAttributes = [
|
||||
'content_type' => new Attribute('content_type', 'text/csv; charset=WINDOWS-1252; name*0="TH_Is_a_F ile name example 20221013.c"; name*1=sv'),
|
||||
'content_transfer_encoding' => new Attribute('content_transfer_encoding', 'quoted-printable'),
|
||||
'content_disposition' => new Attribute('content_disposition', 'attachment; filename*0="TH_Is_a_F ile name example 20221013.c"; filename*1="sv"; attribute_test=attribute_test_value'),
|
||||
];
|
||||
|
||||
$attributes = new \ReflectionProperty($mock, 'attributes');
|
||||
$attributes->setAccessible(true);
|
||||
$attributes->setValue($mock, $mockAttributes);
|
||||
|
||||
$method->invoke($mock);
|
||||
|
||||
$this->assertArrayHasKey('filename', $mock->getAttributes());
|
||||
$this->assertArrayNotHasKey('filename*0', $mock->getAttributes());
|
||||
$this->assertEquals('TH_Is_a_F ile name example 20221013.csv', $mock->get('filename'));
|
||||
|
||||
$this->assertArrayHasKey('name', $mock->getAttributes());
|
||||
$this->assertArrayNotHasKey('name*0', $mock->getAttributes());
|
||||
$this->assertEquals('TH_Is_a_F ile name example 20221013.csv', $mock->get('name'));
|
||||
|
||||
$this->assertArrayHasKey('content_type', $mock->getAttributes());
|
||||
$this->assertEquals('text/csv', $mock->get('content_type')->last());
|
||||
|
||||
$this->assertArrayHasKey('charset', $mock->getAttributes());
|
||||
$this->assertEquals('WINDOWS-1252', $mock->get('charset')->last());
|
||||
|
||||
$this->assertArrayHasKey('content_transfer_encoding', $mock->getAttributes());
|
||||
$this->assertEquals('quoted-printable', $mock->get('content_transfer_encoding'));
|
||||
|
||||
$this->assertArrayHasKey('content_disposition', $mock->getAttributes());
|
||||
$this->assertEquals('attachment', $mock->get('content_disposition')->last());
|
||||
$this->assertEquals('quoted-printable', $mock->get('content_transfer_encoding'));
|
||||
|
||||
$this->assertArrayHasKey('attribute_test', $mock->getAttributes());
|
||||
$this->assertEquals('attribute_test_value', $mock->get('attribute_test'));
|
||||
}
|
||||
|
||||
public function testExtractHeaderExtensions2() {
|
||||
$mock = $this->getMockBuilder(Header::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods([])
|
||||
->getMock();
|
||||
|
||||
$method = new \ReflectionMethod($mock, 'extractHeaderExtensions');
|
||||
$method->setAccessible(true);
|
||||
|
||||
$mockAttributes = [
|
||||
'content_type' => new Attribute('content_type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; name="=?utf-8?Q?=D0=A2=D0=B8=D0=BF=D0=BE=D0=B2=D0=BE=D0=B9_?= =?utf-8?Q?=D1=80=D0=B0=D1=81=D1=87=D0=B5=D1=82_=D0=BF?= =?utf-8?Q?=D0=BE=D1=82=D1=80=D0=B5=D0=B1=D0=BB=D0=B5=D0=BD?= =?utf-8?Q?=D0=B8=D1=8F_=D1=8D=D0=BB=D0=B5=D0=BA=D1=82?= =?utf-8?Q?=D1=80=D0=BE=D1=8D=D0=BD=D0=B5=D1=80=D0=B3=D0=B8=D0=B8_=D0=B2_?= =?utf-8?Q?=D0=9A=D0=9F_=D0=97=D0=B2=D0=B5=D0=B7=D0=B4?= =?utf-8?Q?=D0=BD=D1=8B=D0=B9=2Exlsx?="'),
|
||||
'content_transfer_encoding' => new Attribute('content_transfer_encoding', 'base64'),
|
||||
'content_disposition' => new Attribute('content_disposition', 'attachment; name*0*=utf-8\'\'%D0%A2%D0%B8%D0%BF%D0%BE%D0%B2%D0%BE%D0%B9%20; name*1*=%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%20%D0%BF; name*2*=%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%BB%D0%B5%D0%BD; name*3*=%D0%B8%D1%8F%20%D1%8D%D0%BB%D0%B5%D0%BA%D1%82; name*4*=%D1%80%D0%BE%D1%8D%D0%BD%D0%B5%D1%80%D0%B3%D0%B8; name*5*=%D0%B8%20%D0%B2%20%D0%9A%D0%9F%20%D0%97%D0%B2%D0%B5%D0%B7%D0%B4; name*6*=%D0%BD%D1%8B%D0%B9.xlsx; filename*0*=utf-8\'\'%D0%A2%D0%B8%D0%BF%D0%BE%D0%B2%D0%BE%D0%B9%20; filename*1*=%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%20%D0%BF; filename*2*=%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%BB%D0%B5%D0%BD; filename*3*=%D0%B8%D1%8F%20%D1%8D%D0%BB%D0%B5%D0%BA%D1%82; filename*4*=%D1%80%D0%BE%D1%8D%D0%BD%D0%B5%D1%80%D0%B3%D0%B8; filename*5*=%D0%B8%20%D0%B2%20%D0%9A%D0%9F%20%D0%97; filename*6*=%D0%B2%D0%B5%D0%B7%D0%B4%D0%BD%D1%8B%D0%B9.xlsx; attribute_test=attribute_test_value'),
|
||||
];
|
||||
|
||||
$attributes = new \ReflectionProperty($mock, 'attributes');
|
||||
$attributes->setAccessible(true);
|
||||
$attributes->setValue($mock, $mockAttributes);
|
||||
|
||||
$method->invoke($mock);
|
||||
|
||||
$this->assertArrayHasKey('filename', $mock->getAttributes());
|
||||
$this->assertArrayNotHasKey('filename*0', $mock->getAttributes());
|
||||
$this->assertEquals('utf-8\'\'%D0%A2%D0%B8%D0%BF%D0%BE%D0%B2%D0%BE%D0%B9%20%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%20%D0%BF%D0%BE%D1%82%D1%80%D0%B5%D0%B1%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F%20%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D1%8D%D0%BD%D0%B5%D1%80%D0%B3%D0%B8%D0%B8%20%D0%B2%20%D0%9A%D0%9F%20%D0%97%D0%B2%D0%B5%D0%B7%D0%B4%D0%BD%D1%8B%D0%B9.xlsx', $mock->get('filename'));
|
||||
|
||||
$this->assertArrayHasKey('name', $mock->getAttributes());
|
||||
$this->assertArrayNotHasKey('name*0', $mock->getAttributes());
|
||||
$this->assertEquals('=?utf-8?Q?=D0=A2=D0=B8=D0=BF=D0=BE=D0=B2=D0=BE=D0=B9_?= =?utf-8?Q?=D1=80=D0=B0=D1=81=D1=87=D0=B5=D1=82_=D0=BF?= =?utf-8?Q?=D0=BE=D1=82=D1=80=D0=B5=D0=B1=D0=BB=D0=B5=D0=BD?= =?utf-8?Q?=D0=B8=D1=8F_=D1=8D=D0=BB=D0=B5=D0=BA=D1=82?= =?utf-8?Q?=D1=80=D0=BE=D1=8D=D0=BD=D0=B5=D1=80=D0=B3=D0=B8=D0=B8_=D0=B2_?= =?utf-8?Q?=D0=9A=D0=9F_=D0=97=D0=B2=D0=B5=D0=B7=D0=B4?= =?utf-8?Q?=D0=BD=D1=8B=D0=B9=2Exlsx?=', $mock->get('name'));
|
||||
|
||||
$this->assertArrayHasKey('content_type', $mock->getAttributes());
|
||||
$this->assertEquals('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', $mock->get('content_type')->last());
|
||||
|
||||
$this->assertArrayHasKey('content_transfer_encoding', $mock->getAttributes());
|
||||
$this->assertEquals('base64', $mock->get('content_transfer_encoding'));
|
||||
|
||||
$this->assertArrayHasKey('content_disposition', $mock->getAttributes());
|
||||
$this->assertEquals('attachment', $mock->get('content_disposition')->last());
|
||||
|
||||
$this->assertArrayHasKey('attribute_test', $mock->getAttributes());
|
||||
$this->assertEquals('attribute_test_value', $mock->get('attribute_test'));
|
||||
}
|
||||
}
|
||||
64
plugins/vendor/webklex/php-imap/tests/ImapProtocolTest.php
vendored
Normal file
64
plugins/vendor/webklex/php-imap/tests/ImapProtocolTest.php
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/*
|
||||
* File: ImapProtocolTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 28.12.22 18:11
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Config;
|
||||
use Webklex\PHPIMAP\Connection\Protocols\ImapProtocol;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
|
||||
class ImapProtocolTest extends TestCase {
|
||||
|
||||
/** @var Config $config */
|
||||
protected Config $config;
|
||||
|
||||
/**
|
||||
* Setup the test environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUp(): void {
|
||||
$this->config = Config::make();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* ImapProtocol test
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testImapProtocol(): void {
|
||||
|
||||
$protocol = new ImapProtocol($this->config, false);
|
||||
self::assertSame(false, $protocol->getCertValidation());
|
||||
self::assertSame("", $protocol->getEncryption());
|
||||
|
||||
$protocol->setCertValidation(true);
|
||||
$protocol->setEncryption("ssl");
|
||||
|
||||
self::assertSame(true, $protocol->getCertValidation());
|
||||
self::assertSame("ssl", $protocol->getEncryption());
|
||||
|
||||
$protocol->setSslOptions([
|
||||
'verify_peer' => true,
|
||||
'cafile' => '/dummy/path/for/testing',
|
||||
'peer_fingerprint' => ['md5' => 40],
|
||||
]);
|
||||
|
||||
self::assertSame([
|
||||
'verify_peer' => true,
|
||||
'cafile' => '/dummy/path/for/testing',
|
||||
'peer_fingerprint' => ['md5' => 40],
|
||||
], $protocol->getSslOptions());
|
||||
}
|
||||
}
|
||||
302
plugins/vendor/webklex/php-imap/tests/MessageTest.php
vendored
Normal file
302
plugins/vendor/webklex/php-imap/tests/MessageTest.php
vendored
Normal file
@@ -0,0 +1,302 @@
|
||||
<?php
|
||||
/*
|
||||
* File: MessageTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 28.12.22 18:11
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests;
|
||||
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use ReflectionException;
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
use Webklex\PHPIMAP\Attribute;
|
||||
use Webklex\PHPIMAP\Client;
|
||||
use Webklex\PHPIMAP\Config;
|
||||
use Webklex\PHPIMAP\Connection\Protocols\Response;
|
||||
use Webklex\PHPIMAP\Exceptions\EventNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageFlagException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageSizeFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\IMAP;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
use Webklex\PHPIMAP\Connection\Protocols\ImapProtocol;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
|
||||
class MessageTest extends TestCase {
|
||||
|
||||
/** @var Message $message */
|
||||
protected Message $message;
|
||||
|
||||
/** @var Client $client */
|
||||
protected Client $client;
|
||||
|
||||
/** @var MockObject ImapProtocol mockup */
|
||||
protected MockObject $protocol;
|
||||
|
||||
/**
|
||||
* Setup the test environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUp(): void {
|
||||
$config = Config::make([
|
||||
"accounts" => [
|
||||
"default" => [
|
||||
'protocol' => 'imap',
|
||||
'encryption' => 'ssl',
|
||||
'username' => 'foo@domain.tld',
|
||||
'password' => 'bar',
|
||||
'proxy' => [
|
||||
'socket' => null,
|
||||
'request_fulluri' => false,
|
||||
'username' => null,
|
||||
'password' => null,
|
||||
],
|
||||
]]
|
||||
]);
|
||||
$this->client = new Client($config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Message test
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws MessageFlagException
|
||||
* @throws MessageNotFoundException
|
||||
* @throws MessageSizeFetchingException
|
||||
* @throws ReflectionException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testMessage(): void {
|
||||
$this->createNewProtocolMockup();
|
||||
|
||||
$email = file_get_contents(implode(DIRECTORY_SEPARATOR, [__DIR__, "messages", "1366671050@github.com.eml"]));
|
||||
if(!str_contains($email, "\r\n")){
|
||||
$email = str_replace("\n", "\r\n", $email);
|
||||
}
|
||||
|
||||
$raw_header = substr($email, 0, strpos($email, "\r\n\r\n"));
|
||||
$raw_body = substr($email, strlen($raw_header)+8);
|
||||
|
||||
$this->protocol->expects($this->any())->method('getUid')->willReturn(Response::empty()->setResult(22));
|
||||
$this->protocol->expects($this->any())->method('getMessageNumber')->willReturn(Response::empty()->setResult(21));
|
||||
$this->protocol->expects($this->any())->method('flags')->willReturn(Response::empty()->setResult([22 => [0 => "\\Seen"]]));
|
||||
|
||||
self::assertNotEmpty($this->client->openFolder("INBOX"));
|
||||
|
||||
$message = Message::make(22, null, $this->client, $raw_header, $raw_body, [0 => "\\Seen"], IMAP::ST_UID);
|
||||
|
||||
self::assertInstanceOf(Client::class, $message->getClient());
|
||||
self::assertSame(22, $message->uid);
|
||||
self::assertSame(21, $message->msgn);
|
||||
self::assertContains("Seen", $message->flags()->toArray());
|
||||
|
||||
$subject = $message->get("subject");
|
||||
$returnPath = $message->get("Return-Path");
|
||||
|
||||
self::assertInstanceOf(Attribute::class, $subject);
|
||||
self::assertSame("Re: [Webklex/php-imap] Read all folders? (Issue #349)", $subject->toString());
|
||||
self::assertSame("Re: [Webklex/php-imap] Read all folders? (Issue #349)", (string)$message->subject);
|
||||
self::assertSame("noreply@github.com", $returnPath->toString());
|
||||
self::assertSame("return_path", $returnPath->getName());
|
||||
self::assertSame("-4.299", (string)$message->get("X-Spam-Score"));
|
||||
self::assertSame("Webklex/php-imap/issues/349/1365266070@github.com", (string)$message->get("Message-ID"));
|
||||
self::assertSame(5, $message->get("received")->count());
|
||||
self::assertSame(IMAP::MESSAGE_PRIORITY_UNKNOWN, (int)$message->get("priority")());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getMessageNumber
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MessageNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testGetMessageNumber(): void {
|
||||
$this->createNewProtocolMockup();
|
||||
$this->protocol->expects($this->any())->method('getMessageNumber')->willReturn(Response::empty()->setResult(""));
|
||||
|
||||
self::assertNotEmpty($this->client->openFolder("INBOX"));
|
||||
|
||||
try {
|
||||
$this->client->getConnection()->getMessageNumber(21)->validatedData();
|
||||
$this->fail("Message number should not exist");
|
||||
} catch (ResponseException $e) {
|
||||
self::assertTrue(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test loadMessageFromFile
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws MessageNotFoundException
|
||||
* @throws ReflectionException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
* @throws MessageSizeFetchingException
|
||||
*/
|
||||
public function testLoadMessageFromFile(): void {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, "messages", "1366671050@github.com.eml"]);
|
||||
$message = Message::fromFile($filename);
|
||||
|
||||
$subject = $message->get("subject");
|
||||
$returnPath = $message->get("Return-Path");
|
||||
|
||||
self::assertInstanceOf(Attribute::class, $subject);
|
||||
self::assertSame("Re: [Webklex/php-imap] Read all folders? (Issue #349)", $subject->toString());
|
||||
self::assertSame("Re: [Webklex/php-imap] Read all folders? (Issue #349)", (string)$message->subject);
|
||||
self::assertSame("noreply@github.com", $returnPath->toString());
|
||||
self::assertSame("return_path", $returnPath->getName());
|
||||
self::assertSame("-4.299", (string)$message->get("X-Spam-Score"));
|
||||
self::assertSame("Webklex/php-imap/issues/349/1365266070@github.com", (string)$message->get("Message-ID"));
|
||||
self::assertSame(5, $message->get("received")->count());
|
||||
self::assertSame(IMAP::MESSAGE_PRIORITY_UNKNOWN, (int)$message->get("priority")());
|
||||
|
||||
self::assertNull($message->getClient());
|
||||
self::assertSame(0, $message->uid);
|
||||
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, "messages", "example_attachment.eml"]);
|
||||
$message = Message::fromFile($filename);
|
||||
|
||||
$subject = $message->get("subject");
|
||||
$returnPath = $message->get("Return-Path");
|
||||
|
||||
self::assertInstanceOf(Attribute::class, $subject);
|
||||
self::assertSame("ogqMVHhz7swLaq2PfSWsZj0k99w8wtMbrb4RuHdNg53i76B7icIIM0zIWpwGFtnk", $subject->toString());
|
||||
self::assertSame("ogqMVHhz7swLaq2PfSWsZj0k99w8wtMbrb4RuHdNg53i76B7icIIM0zIWpwGFtnk", (string)$message->subject);
|
||||
self::assertSame("someone@domain.tld", $returnPath->toString());
|
||||
self::assertSame("return_path", $returnPath->getName());
|
||||
self::assertSame("1.103", (string)$message->get("X-Spam-Score"));
|
||||
self::assertSame("d3a5e91963cb805cee975687d5acb1c6@swift.generated", (string)$message->get("Message-ID"));
|
||||
self::assertSame(4, $message->get("received")->count());
|
||||
self::assertSame(IMAP::MESSAGE_PRIORITY_HIGHEST, (int)$message->get("priority")());
|
||||
|
||||
self::assertNull($message->getClient());
|
||||
self::assertSame(0, $message->uid);
|
||||
self::assertSame(1, $message->getAttachments()->count());
|
||||
|
||||
/** @var Attachment $attachment */
|
||||
$attachment = $message->getAttachments()->first();
|
||||
self::assertSame("attachment", $attachment->disposition);
|
||||
self::assertSame("znk551MP3TP3WPp9Kl1gnLErrWEgkJFAtvaKqkTgrk3dKI8dX38YT8BaVxRcOERN", $attachment->content);
|
||||
self::assertSame("application/octet-stream", $attachment->content_type);
|
||||
self::assertSame("6mfFxiU5Yhv9WYJx.txt", $attachment->name);
|
||||
self::assertSame(2, $attachment->part_number);
|
||||
self::assertSame("text", $attachment->type);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
self::assertSame(90, $attachment->size);
|
||||
self::assertSame("txt", $attachment->getExtension());
|
||||
self::assertInstanceOf(Message::class, $attachment->getMessage());
|
||||
self::assertSame("text/plain", $attachment->getMimeType());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test issue #348
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws ReflectionException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testIssue348() {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, "messages", "issue-348.eml"]);
|
||||
$message = Message::fromFile($filename);
|
||||
|
||||
self::assertSame(1, $message->getAttachments()->count());
|
||||
|
||||
/** @var Attachment $attachment */
|
||||
$attachment = $message->getAttachments()->first();
|
||||
|
||||
self::assertSame("attachment", $attachment->disposition);
|
||||
self::assertSame("application/pdf", $attachment->content_type);
|
||||
self::assertSame("Kelvinsong—Font_test_page_bold.pdf", $attachment->name);
|
||||
self::assertSame(1, $attachment->part_number);
|
||||
self::assertSame("text", $attachment->type);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
self::assertSame(92384, $attachment->size);
|
||||
self::assertSame("pdf", $attachment->getExtension());
|
||||
self::assertInstanceOf(Message::class, $attachment->getMessage());
|
||||
self::assertSame("application/pdf", $attachment->getMimeType());
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new protocol mockup
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function createNewProtocolMockup(): void {
|
||||
$this->protocol = $this->createMock(ImapProtocol::class);
|
||||
|
||||
$this->protocol->expects($this->any())->method('createStream')->willReturn(true);
|
||||
$this->protocol->expects($this->any())->method('connected')->willReturn(true);
|
||||
$this->protocol->expects($this->any())->method('getConnectionTimeout')->willReturn(30);
|
||||
$this->protocol->expects($this->any())->method('logout')->willReturn(Response::empty()->setResponse([
|
||||
0 => "BYE Logging out\r\n",
|
||||
1 => "OK Logout completed (0.001 + 0.000 secs).\r\n",
|
||||
]));
|
||||
$this->protocol->expects($this->any())->method('selectFolder')->willReturn(Response::empty()->setResponse([
|
||||
"flags" => [
|
||||
0 => [
|
||||
0 => "\Answered",
|
||||
1 => "\Flagged",
|
||||
2 => "\Deleted",
|
||||
3 => "\Seen",
|
||||
4 => "\Draft",
|
||||
5 => "NonJunk",
|
||||
6 => "unknown-1",
|
||||
],
|
||||
],
|
||||
"exists" => 139,
|
||||
"recent" => 0,
|
||||
"unseen" => 94,
|
||||
"uidvalidity" => 1488899637,
|
||||
"uidnext" => 278,
|
||||
]));
|
||||
|
||||
$this->client->connection = $this->protocol;
|
||||
}
|
||||
}
|
||||
107
plugins/vendor/webklex/php-imap/tests/PartTest.php
vendored
Normal file
107
plugins/vendor/webklex/php-imap/tests/PartTest.php
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
/*
|
||||
* File: StructureTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 28.12.22 18:11
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Config;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Header;
|
||||
use Webklex\PHPIMAP\Part;
|
||||
use Webklex\PHPIMAP\Structure;
|
||||
use Webklex\PHPIMAP\IMAP;
|
||||
|
||||
class PartTest extends TestCase {
|
||||
|
||||
/** @var Config $config */
|
||||
protected Config $config;
|
||||
|
||||
/**
|
||||
* Setup the test environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUp(): void {
|
||||
$this->config = Config::make();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test parsing a text Part
|
||||
* @throws InvalidMessageDateException
|
||||
*/
|
||||
public function testTextPart(): void {
|
||||
$raw_headers = "Content-Type: text/plain;\r\n charset=UTF-8\r\nContent-Transfer-Encoding: 7bit\r\n";
|
||||
$raw_body = "\r\nAny updates?";
|
||||
|
||||
$headers = new Header($raw_headers, $this->config);
|
||||
$part = new Part($raw_body, $this->config, $headers, 0);
|
||||
|
||||
self::assertSame("UTF-8", $part->charset);
|
||||
self::assertSame("text/plain", $part->content_type);
|
||||
self::assertSame(12, $part->bytes);
|
||||
self::assertSame(0, $part->part_number);
|
||||
self::assertSame(false, $part->ifdisposition);
|
||||
self::assertSame(false, $part->isAttachment());
|
||||
self::assertSame("Any updates?", $part->content);
|
||||
self::assertSame(IMAP::MESSAGE_TYPE_TEXT, $part->type);
|
||||
self::assertSame(IMAP::MESSAGE_ENC_7BIT, $part->encoding);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test parsing a html Part
|
||||
* @throws InvalidMessageDateException
|
||||
*/
|
||||
public function testHTMLPart(): void {
|
||||
$raw_headers = "Content-Type: text/html;\r\n charset=UTF-8\r\nContent-Transfer-Encoding: 7bit\r\n";
|
||||
$raw_body = "\r\n<p></p>\r\n<p dir=\"auto\">Any updates?</p>";
|
||||
|
||||
$headers = new Header($raw_headers, $this->config);
|
||||
$part = new Part($raw_body, $this->config, $headers, 0);
|
||||
|
||||
self::assertSame("UTF-8", $part->charset);
|
||||
self::assertSame("text/html", $part->content_type);
|
||||
self::assertSame(39, $part->bytes);
|
||||
self::assertSame(0, $part->part_number);
|
||||
self::assertSame(false, $part->ifdisposition);
|
||||
self::assertSame(false, $part->isAttachment());
|
||||
self::assertSame("<p></p>\r\n<p dir=\"auto\">Any updates?</p>", $part->content);
|
||||
self::assertSame(IMAP::MESSAGE_TYPE_TEXT, $part->type);
|
||||
self::assertSame(IMAP::MESSAGE_ENC_7BIT, $part->encoding);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test parsing a html Part
|
||||
* @throws InvalidMessageDateException
|
||||
*/
|
||||
public function testBase64Part(): void {
|
||||
$raw_headers = "Content-Type: application/octet-stream; name=6mfFxiU5Yhv9WYJx.txt\r\nContent-Transfer-Encoding: base64\r\nContent-Disposition: attachment; filename=6mfFxiU5Yhv9WYJx.txt\r\n";
|
||||
$raw_body = "em5rNTUxTVAzVFAzV1BwOUtsMWduTEVycldFZ2tKRkF0dmFLcWtUZ3JrM2RLSThkWDM4WVQ4QmFW\r\neFJjT0VSTg==";
|
||||
|
||||
$headers = new Header($raw_headers, $this->config);
|
||||
$part = new Part($raw_body, $this->config, $headers, 0);
|
||||
|
||||
self::assertSame("", $part->charset);
|
||||
self::assertSame("application/octet-stream", $part->content_type);
|
||||
self::assertSame(90, $part->bytes);
|
||||
self::assertSame(0, $part->part_number);
|
||||
self::assertSame("znk551MP3TP3WPp9Kl1gnLErrWEgkJFAtvaKqkTgrk3dKI8dX38YT8BaVxRcOERN", base64_decode($part->content));
|
||||
self::assertSame(true, $part->ifdisposition);
|
||||
self::assertSame("attachment", $part->disposition);
|
||||
self::assertSame("6mfFxiU5Yhv9WYJx.txt", $part->name);
|
||||
self::assertSame("6mfFxiU5Yhv9WYJx.txt", $part->filename);
|
||||
self::assertSame(true, $part->isAttachment());
|
||||
self::assertSame(IMAP::MESSAGE_TYPE_TEXT, $part->type);
|
||||
self::assertSame(IMAP::MESSAGE_ENC_BASE64, $part->encoding);
|
||||
}
|
||||
}
|
||||
68
plugins/vendor/webklex/php-imap/tests/StructureTest.php
vendored
Normal file
68
plugins/vendor/webklex/php-imap/tests/StructureTest.php
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
/*
|
||||
* File: StructureTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 28.12.22 18:11
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Config;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Header;
|
||||
use Webklex\PHPIMAP\Structure;
|
||||
|
||||
class StructureTest extends TestCase {
|
||||
|
||||
/** @var Config $config */
|
||||
protected Config $config;
|
||||
|
||||
/**
|
||||
* Setup the test environment.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUp(): void {
|
||||
$this->config = Config::make();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test parsing email headers
|
||||
*
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MessageContentFetchingException
|
||||
*/
|
||||
public function testStructureParsing(): void {
|
||||
$email = file_get_contents(implode(DIRECTORY_SEPARATOR, [__DIR__, "messages", "1366671050@github.com.eml"]));
|
||||
if(!str_contains($email, "\r\n")){
|
||||
$email = str_replace("\n", "\r\n", $email);
|
||||
}
|
||||
|
||||
$raw_header = substr($email, 0, strpos($email, "\r\n\r\n"));
|
||||
$raw_body = substr($email, strlen($raw_header)+8);
|
||||
|
||||
$header = new Header($raw_header, $this->config);
|
||||
$structure = new Structure($raw_body, $header);
|
||||
|
||||
self::assertSame(2, count($structure->parts));
|
||||
|
||||
$textPart = $structure->parts[0];
|
||||
|
||||
self::assertSame("UTF-8", $textPart->charset);
|
||||
self::assertSame("text/plain", $textPart->content_type);
|
||||
self::assertSame(278, $textPart->bytes);
|
||||
|
||||
$htmlPart = $structure->parts[1];
|
||||
|
||||
self::assertSame("UTF-8", $htmlPart->charset);
|
||||
self::assertSame("text/html", $htmlPart->content_type);
|
||||
self::assertSame(1478, $htmlPart->bytes);
|
||||
}
|
||||
}
|
||||
52
plugins/vendor/webklex/php-imap/tests/fixtures/AttachmentEncodedFilenameTest.php
vendored
Normal file
52
plugins/vendor/webklex/php-imap/tests/fixtures/AttachmentEncodedFilenameTest.php
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/*
|
||||
* File: AttachmentEncodedFilenameTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
|
||||
/**
|
||||
* Class AttachmentEncodedFilenameTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class AttachmentEncodedFilenameTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture attachment_encoded_filename.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("attachment_encoded_filename.eml");
|
||||
|
||||
self::assertEquals("", $message->subject);
|
||||
self::assertEquals("multipart/mixed", $message->content_type->last());
|
||||
self::assertFalse($message->hasTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
|
||||
self::assertCount(1, $message->attachments());
|
||||
|
||||
$attachment = $message->attachments()->first();
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("Prostřeno_2014_poslední volné termíny.xls", $attachment->filename);
|
||||
self::assertEquals("Prostřeno_2014_poslední volné termíny.xls", $attachment->name);
|
||||
self::assertEquals('xls', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("application/vnd.ms-excel", $attachment->content_type);
|
||||
self::assertEquals("a0ef7cfbc05b73dbcb298fe0bc224b41900cdaf60f9904e3fea5ba6c7670013c", hash("sha256", $attachment->content));
|
||||
self::assertEquals(146, $attachment->size);
|
||||
self::assertEquals(0, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
79
plugins/vendor/webklex/php-imap/tests/fixtures/AttachmentLongFilenameTest.php
vendored
Normal file
79
plugins/vendor/webklex/php-imap/tests/fixtures/AttachmentLongFilenameTest.php
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
/*
|
||||
* File: AttachmentLongFilenameTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
|
||||
/**
|
||||
* Class AttachmentLongFilenameTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class AttachmentLongFilenameTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture attachment_long_filename.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("attachment_long_filename.eml");
|
||||
|
||||
self::assertEquals("", $message->subject);
|
||||
self::assertEquals("multipart/mixed", $message->content_type->last());
|
||||
self::assertFalse($message->hasTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
|
||||
$attachments = $message->attachments();
|
||||
self::assertCount(3, $attachments);
|
||||
|
||||
$attachment = $attachments[0];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("Buchungsbestätigung- Rechnung-Geschäftsbedingungen-Nr.B123-45 - XXXX xxxxxxxxxxxxxxxxx XxxX, Lüdxxxxxxxx - VM Klaus XXXXXX - xxxxxxxx.pdf", $attachment->name);
|
||||
self::assertEquals("Buchungsbestätigung- Rechnung-Geschäftsbedingungen-Nr.B123-45 - XXXXX xxxxxxxxxxxxxxxxx XxxX, Lüxxxxxxxxxx - VM Klaus XXXXXX - xxxxxxxx.pdf", $attachment->filename);
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals('pdf', $attachment->getExtension());
|
||||
self::assertEquals("text/plain", $attachment->content_type);
|
||||
self::assertEquals("ca51ce1fb15acc6d69b8a5700256172fcc507e02073e6f19592e341bd6508ab8", hash("sha256", $attachment->content));
|
||||
self::assertEquals(4, $attachment->size);
|
||||
self::assertEquals(0, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
|
||||
$attachment = $attachments[1];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals('01_A€àäąбيد@Z-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz.txt', $attachment->name);
|
||||
self::assertEquals("cebd34e48eaa06311da3d3130d5a9b465b096dc1094a6548f8c94c24ca52f34e", hash("sha256", $attachment->filename));
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals('txt', $attachment->getExtension());
|
||||
self::assertEquals("text/plain", $attachment->content_type);
|
||||
self::assertEquals("ca51ce1fb15acc6d69b8a5700256172fcc507e02073e6f19592e341bd6508ab8", hash("sha256", $attachment->content));
|
||||
self::assertEquals(4, $attachment->size);
|
||||
self::assertEquals(1, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
|
||||
$attachment = $attachments[2];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals('02_A€àäąбيد@Z-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz.txt', $attachment->name);
|
||||
self::assertEquals('02_A€àäąбيد@Z-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstuvz.txt', $attachment->filename);
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("text/plain", $attachment->content_type);
|
||||
self::assertEquals('txt', $attachment->getExtension());
|
||||
self::assertEquals("ca51ce1fb15acc6d69b8a5700256172fcc507e02073e6f19592e341bd6508ab8", hash("sha256", $attachment->content));
|
||||
self::assertEquals(4, $attachment->size);
|
||||
self::assertEquals(2, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
55
plugins/vendor/webklex/php-imap/tests/fixtures/AttachmentNoDispositionTest.php
vendored
Normal file
55
plugins/vendor/webklex/php-imap/tests/fixtures/AttachmentNoDispositionTest.php
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/*
|
||||
* File: AttachmentNoDispositionTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
|
||||
/**
|
||||
* Class AttachmentNoDispositionTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class AttachmentNoDispositionTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture attachment_no_disposition.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("attachment_no_disposition.eml");
|
||||
|
||||
self::assertEquals("", $message->subject);
|
||||
self::assertEquals("multipart/mixed", $message->content_type->last());
|
||||
self::assertFalse($message->hasTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
|
||||
self::assertCount(1, $message->attachments());
|
||||
|
||||
$attachment = $message->attachments()->first();
|
||||
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals('26ed3dd2', $attachment->filename);
|
||||
self::assertEquals('26ed3dd2', $attachment->id);
|
||||
self::assertEquals("Prostřeno_2014_poslední volné termíny.xls", $attachment->name);
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals('xls', $attachment->getExtension());
|
||||
self::assertEquals("application/vnd.ms-excel", $attachment->content_type);
|
||||
self::assertEquals("a0ef7cfbc05b73dbcb298fe0bc224b41900cdaf60f9904e3fea5ba6c7670013c", hash("sha256", $attachment->content));
|
||||
self::assertEquals(146, $attachment->size);
|
||||
self::assertEquals(0, $attachment->part_number);
|
||||
self::assertNull($attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
self::assertEmpty($attachment->content_id);
|
||||
}
|
||||
}
|
||||
49
plugins/vendor/webklex/php-imap/tests/fixtures/BccTest.php
vendored
Normal file
49
plugins/vendor/webklex/php-imap/tests/fixtures/BccTest.php
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
/*
|
||||
* File: BccTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class BccTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class BccTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture bcc.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture(): void {
|
||||
$message = $this->getFixture("bcc.eml");
|
||||
|
||||
self::assertEquals("test", $message->subject);
|
||||
self::assertSame([
|
||||
'personal' => '',
|
||||
'mailbox' => 'return-path',
|
||||
'host' => 'here.com',
|
||||
'mail' => 'return-path@here.com',
|
||||
'full' => 'return-path@here.com',
|
||||
], $message->return_path->first()->toArray());
|
||||
self::assertEquals("1.0", $message->mime_version);
|
||||
self::assertEquals("text/plain", $message->content_type);
|
||||
self::assertEquals("Hi!", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertEquals("2017-09-27 10:48:51", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from);
|
||||
self::assertEquals("to@here.com", $message->to);
|
||||
self::assertEquals("A_€@{è_Z <bcc@here.com>", $message->bcc);
|
||||
self::assertEquals("sender@here.com", $message->sender);
|
||||
self::assertEquals("reply-to@here.com", $message->reply_to);
|
||||
}
|
||||
}
|
||||
55
plugins/vendor/webklex/php-imap/tests/fixtures/BooleanDecodedContentTest.php
vendored
Normal file
55
plugins/vendor/webklex/php-imap/tests/fixtures/BooleanDecodedContentTest.php
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/*
|
||||
* File: BooleanDecodedContentTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
|
||||
/**
|
||||
* Class BooleanDecodedContentTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class BooleanDecodedContentTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture boolean_decoded_content.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("boolean_decoded_content.eml");
|
||||
|
||||
self::assertEquals("Nuu", $message->subject);
|
||||
self::assertEquals("Here is the problem mail\r\n \r\nBody text", $message->getTextBody());
|
||||
self::assertEquals("Here is the problem mail\r\n \r\nBody text", $message->getHTMLBody());
|
||||
|
||||
self::assertEquals("2017-09-13 11:05:45", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from);
|
||||
self::assertEquals("to@here.com", $message->to);
|
||||
|
||||
$attachments = $message->getAttachments();
|
||||
self::assertCount(1, $attachments);
|
||||
|
||||
$attachment = $attachments[0];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("Example Domain.pdf", $attachment->name);
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals('pdf', $attachment->getExtension());
|
||||
self::assertEquals("application/pdf", $attachment->content_type);
|
||||
self::assertEquals("1c449aaab4f509012fa5eaa180fd017eb7724ccacabdffc1c6066d3756dcde5c", hash("sha256", $attachment->content));
|
||||
self::assertEquals(53, $attachment->size);
|
||||
self::assertEquals(2, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
116
plugins/vendor/webklex/php-imap/tests/fixtures/DateTemplateTest.php
vendored
Normal file
116
plugins/vendor/webklex/php-imap/tests/fixtures/DateTemplateTest.php
vendored
Normal file
@@ -0,0 +1,116 @@
|
||||
<?php
|
||||
/*
|
||||
* File: DateTemplateTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
use \ReflectionException;
|
||||
|
||||
|
||||
/**
|
||||
* Class DateTemplateTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class DateTemplateTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test if the date is parsed correctly
|
||||
* @var array|string[] $dates
|
||||
*/
|
||||
protected array $dates = [
|
||||
"Fri, 5 Apr 2019 12:10:49 +0200" => "2019-04-05 10:10:49",
|
||||
"04 Jan 2018 10:12:47 UT" => "2018-01-04 10:12:47",
|
||||
"22 Jun 18 03:56:36 PM -05:00 (GMT -05:00)" => "2018-06-22 20:56:36",
|
||||
"Sat, 31 Aug 2013 20:08:23 +0580" => "2013-08-31 14:38:23",
|
||||
"Fri, 1 Feb 2019 01:30:04 +0600 (+06)" => "2019-01-31 19:30:04",
|
||||
"Mon, 4 Feb 2019 04:03:49 -0300 (-03)" => "2019-02-04 07:03:49",
|
||||
"Sun, 6 Apr 2008 21:24:33 UT" => "2008-04-06 21:24:33",
|
||||
"Wed, 11 Sep 2019 15:23:06 +0600 (+06)" => "2019-09-11 09:23:06",
|
||||
"14 Sep 2019 00:10:08 UT +0200" => "2019-09-14 00:10:08",
|
||||
"Tue, 08 Nov 2022 18:47:20 +0000 14:03:33 +0000" => "2022-11-08 18:47:20",
|
||||
"Sat, 10, Dec 2022 09:35:19 +0100" => "2022-12-10 08:35:19",
|
||||
"Thur, 16 Mar 2023 15:33:07 +0400" => "2023-03-16 11:33:07",
|
||||
"fr., 25 nov. 2022 06:27:14 +0100/fr., 25 nov. 2022 06:27:14 +0100" => "2022-11-25 05:27:14",
|
||||
"Di., 15 Feb. 2022 06:52:44 +0100 (MEZ)/Di., 15 Feb. 2022 06:52:44 +0100 (MEZ)" => "2022-02-15 05:52:44",
|
||||
"Mi., 23 Apr. 2025 09:48:37 +0200 (MESZ)" => "2025-04-23 07:48:37",
|
||||
];
|
||||
|
||||
/**
|
||||
* Test the fixture date-template.eml
|
||||
*
|
||||
* @return void
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws ReflectionException
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
try {
|
||||
$message = $this->getFixture("date-template.eml");
|
||||
$this->fail("Expected InvalidMessageDateException");
|
||||
} catch (InvalidMessageDateException $e) {
|
||||
self::assertTrue(true);
|
||||
}
|
||||
|
||||
self::$manager->setConfig([
|
||||
"options" => [
|
||||
"fallback_date" => "2021-01-01 00:00:00",
|
||||
],
|
||||
]);
|
||||
$message = $this->getFixture("date-template.eml", self::$manager->getConfig());
|
||||
|
||||
self::assertEquals("test", $message->subject);
|
||||
self::assertEquals("1.0", $message->mime_version);
|
||||
self::assertEquals("Hi!", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertEquals("2021-01-01 00:00:00", $message->date->first()->timezone("UTC")->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", (string)$message->from);
|
||||
self::assertEquals("to@here.com", $message->to);
|
||||
|
||||
self::$manager->setConfig([
|
||||
"options" => [
|
||||
"fallback_date" => null,
|
||||
],
|
||||
]);
|
||||
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, "..", "messages", "date-template.eml"]);
|
||||
$blob = file_get_contents($filename);
|
||||
self::assertNotFalse($blob);
|
||||
|
||||
foreach ($this->dates as $date => $expected) {
|
||||
$message = Message::fromString(str_replace("%date_raw_header%", $date, $blob));
|
||||
self::assertEquals("test", $message->subject);
|
||||
self::assertEquals("1.0", $message->mime_version);
|
||||
self::assertEquals("Hi!", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertEquals($expected, $message->date->first()->timezone("UTC")->format("Y-m-d H:i:s"), "Date \"$date\" should be \"$expected\"");
|
||||
self::assertEquals("from@there.com", (string)$message->from);
|
||||
self::assertEquals("to@here.com", $message->to);
|
||||
}
|
||||
}
|
||||
}
|
||||
59
plugins/vendor/webklex/php-imap/tests/fixtures/EmailAddressTest.php
vendored
Normal file
59
plugins/vendor/webklex/php-imap/tests/fixtures/EmailAddressTest.php
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
/*
|
||||
* File: EmailAddressTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
|
||||
/**
|
||||
* Class EmailAddressTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class EmailAddressTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture email_address.eml
|
||||
*
|
||||
* @return void
|
||||
* @throws \ReflectionException
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("email_address.eml");
|
||||
|
||||
self::assertEquals("", $message->subject);
|
||||
self::assertEquals("123@example.com", $message->message_id);
|
||||
self::assertEquals("Hi\r\nHow are you?", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertFalse($message->date->first());
|
||||
self::assertEquals("no_host", (string)$message->from);
|
||||
self::assertEquals("", $message->to);
|
||||
self::assertEquals("This one: is \"right\" <ding@dong.com>, No-address", (string)$message->cc);
|
||||
}
|
||||
}
|
||||
63
plugins/vendor/webklex/php-imap/tests/fixtures/EmbeddedEmailTest.php
vendored
Normal file
63
plugins/vendor/webklex/php-imap/tests/fixtures/EmbeddedEmailTest.php
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
/*
|
||||
* File: EmbeddedEmailTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
|
||||
/**
|
||||
* Class EmbeddedEmailTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class EmbeddedEmailTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture embedded_email.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("embedded_email.eml");
|
||||
|
||||
self::assertEquals("embedded message", $message->subject);
|
||||
self::assertEquals([
|
||||
'from webmail.my-office.cz (localhost [127.0.0.1]) by keira.cofis.cz ; Fri, 29 Jan 2016 14:25:40 +0100',
|
||||
], $message->received->toArray());
|
||||
self::assertEquals("7e5798da5747415e5b82fdce042ab2a6@cerstor.cz", $message->message_id);
|
||||
self::assertEquals("demo@cerstor.cz", $message->return_path);
|
||||
self::assertEquals("1.0", $message->mime_version);
|
||||
self::assertEquals("Roundcube Webmail/1.0.0", $message->user_agent);
|
||||
self::assertEquals("email that contains embedded message", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
|
||||
self::assertEquals("2016-01-29 13:25:40", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("demo@cerstor.cz", $message->from);
|
||||
self::assertEquals("demo@cerstor.cz", $message->x_sender);
|
||||
self::assertEquals("demo@cerstor.cz", $message->to);
|
||||
|
||||
$attachments = $message->getAttachments();
|
||||
self::assertCount(1, $attachments);
|
||||
|
||||
$attachment = $attachments[0];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("demo.eml", $attachment->name);
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals('eml', $attachment->getExtension());
|
||||
self::assertEquals("message/rfc822", $attachment->content_type);
|
||||
self::assertEquals("a1f965f10a9872e902a82dde039a237e863f522d238a1cb1968fe3396dbcac65", hash("sha256", $attachment->content));
|
||||
self::assertEquals(893, $attachment->size);
|
||||
self::assertEquals(1, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
/*
|
||||
* File: EmbeddedEmailWithoutContentDispositionEmbeddedTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
|
||||
/**
|
||||
* Class EmbeddedEmailWithoutContentDispositionEmbeddedTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class EmbeddedEmailWithoutContentDispositionEmbeddedTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture embedded_email_without_content_disposition-embedded.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("embedded_email_without_content_disposition-embedded.eml");
|
||||
|
||||
self::assertEquals("embedded_message_subject", $message->subject);
|
||||
self::assertEquals([
|
||||
'from webmail.my-office.cz (localhost [127.0.0.1]) by keira.cofis.cz ; Fri, 29 Jan 2016 14:25:40 +0100',
|
||||
], $message->received->toArray());
|
||||
self::assertEquals("AC39946EBF5C034B87BABD5343E96979012671D40E38@VM002.cerk.cc", $message->message_id);
|
||||
self::assertEquals("pl-PL, nl-NL", $message->accept_language);
|
||||
self::assertEquals("pl-PL", $message->content_language);
|
||||
self::assertEquals("1.0", $message->mime_version);
|
||||
self::assertEquals("some txt", $message->getTextBody());
|
||||
self::assertEquals("<html>\r\n <p>some txt</p>\r\n</html>", $message->getHTMLBody());
|
||||
|
||||
self::assertEquals("2019-04-05 10:10:49", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("demo@cerstor.cz", $message->from);
|
||||
self::assertEquals("demo@cerstor.cz", $message->to);
|
||||
|
||||
$attachments = $message->getAttachments();
|
||||
self::assertCount(2, $attachments);
|
||||
|
||||
$attachment = $attachments[0];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("file1.xlsx", $attachment->name);
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals('xlsx', $attachment->getExtension());
|
||||
self::assertEquals("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $attachment->content_type);
|
||||
self::assertEquals("87737d24c106b96e177f9564af6712e2c6d3e932c0632bfbab69c88b0bb934dc", hash("sha256", $attachment->content));
|
||||
self::assertEquals(40, $attachment->size);
|
||||
self::assertEquals(2, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
|
||||
$attachment = $attachments[1];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("file2.xlsx", $attachment->name);
|
||||
self::assertEquals('xlsx', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $attachment->content_type);
|
||||
self::assertEquals("87737d24c106b96e177f9564af6712e2c6d3e932c0632bfbab69c88b0bb934dc", hash("sha256", $attachment->content));
|
||||
self::assertEquals(40, $attachment->size);
|
||||
self::assertEquals(3, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
97
plugins/vendor/webklex/php-imap/tests/fixtures/EmbeddedEmailWithoutContentDispositionTest.php
vendored
Normal file
97
plugins/vendor/webklex/php-imap/tests/fixtures/EmbeddedEmailWithoutContentDispositionTest.php
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
/*
|
||||
* File: EmbeddedEmailWithoutContentDispositionTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
|
||||
/**
|
||||
* Class EmbeddedEmailWithoutContentDispositionTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class EmbeddedEmailWithoutContentDispositionTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture embedded_email_without_content_disposition.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("embedded_email_without_content_disposition.eml");
|
||||
|
||||
self::assertEquals("Subject", $message->subject);
|
||||
self::assertEquals([
|
||||
'from webmail.my-office.cz (localhost [127.0.0.1]) by keira.cofis.cz ; Fri, 29 Jan 2016 14:25:40 +0100',
|
||||
], $message->received->toArray());
|
||||
self::assertEquals("AC39946EBF5C034B87BABD5343E96979012671D9F7E4@VM002.cerk.cc", $message->message_id);
|
||||
self::assertEquals("pl-PL, nl-NL", $message->accept_language);
|
||||
self::assertEquals("1.0", $message->mime_version);
|
||||
self::assertEquals("TexT\r\n\r\n[cid:file.jpg]", $message->getTextBody());
|
||||
self::assertEquals("<html><p>TexT</p></html>", $message->getHTMLBody());
|
||||
|
||||
self::assertEquals("2019-04-05 11:48:50", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("demo@cerstor.cz", $message->from);
|
||||
self::assertEquals("demo@cerstor.cz", $message->to);
|
||||
|
||||
$attachments = $message->getAttachments();
|
||||
self::assertCount(4, $attachments);
|
||||
|
||||
$attachment = $attachments[0];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("file.jpg", $attachment->name);
|
||||
self::assertEquals('jpg', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("image/jpeg", $attachment->content_type);
|
||||
self::assertEquals("6b7fa434f92a8b80aab02d9bf1a12e49ffcae424e4013a1c4f68b67e3d2bbcd0", hash("sha256", $attachment->content));
|
||||
self::assertEquals(96, $attachment->size);
|
||||
self::assertEquals(2, $attachment->part_number);
|
||||
self::assertEquals("inline", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
|
||||
$attachment = $attachments[1];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals('a1abc19a', $attachment->name);
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals('', $attachment->getExtension());
|
||||
self::assertEquals("message/rfc822", $attachment->content_type);
|
||||
self::assertEquals("2476c8b91a93c6b2fe1bfff593cb55956c2fe8e7ca6de9ad2dc9d101efe7a867", hash("sha256", $attachment->content));
|
||||
self::assertEquals(2073, $attachment->size);
|
||||
self::assertEquals(3, $attachment->part_number);
|
||||
self::assertNull($attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
|
||||
$attachment = $attachments[2];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("file3.xlsx", $attachment->name);
|
||||
self::assertEquals('xlsx', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $attachment->content_type);
|
||||
self::assertEquals("87737d24c106b96e177f9564af6712e2c6d3e932c0632bfbab69c88b0bb934dc", hash("sha256", $attachment->content));
|
||||
self::assertEquals(40, $attachment->size);
|
||||
self::assertEquals(4, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
|
||||
$attachment = $attachments[3];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("file4.zip", $attachment->name);
|
||||
self::assertEquals('zip', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("application/x-zip-compressed", $attachment->content_type);
|
||||
self::assertEquals("87737d24c106b96e177f9564af6712e2c6d3e932c0632bfbab69c88b0bb934dc", hash("sha256", $attachment->content));
|
||||
self::assertEquals(40, $attachment->size);
|
||||
self::assertEquals(5, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
103
plugins/vendor/webklex/php-imap/tests/fixtures/ExampleBounceTest.php
vendored
Normal file
103
plugins/vendor/webklex/php-imap/tests/fixtures/ExampleBounceTest.php
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
/*
|
||||
* File: ExampleBounceTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
|
||||
/**
|
||||
* Class ExampleBounceTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class ExampleBounceTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture example_bounce.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture(): void {
|
||||
$message = $this->getFixture("example_bounce.eml");
|
||||
|
||||
self::assertEquals([
|
||||
'personal' => '',
|
||||
'mailbox' => '',
|
||||
'host' => '',
|
||||
'mail' => '',
|
||||
'full' => '',
|
||||
], (array)$message->return_path->first());
|
||||
self::assertEquals([
|
||||
0 => 'from somewhere.your-server.de by somewhere.your-server.de with LMTP id 3TP8LrElAGSOaAAAmBr1xw (envelope-from <>); Thu, 02 Mar 2023 05:27:29 +0100',
|
||||
1 => 'from somewhere06.your-server.de ([1b21:2f8:e0a:50e4::2]) by somewhere.your-server.de with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.94.2) id 1pXaXR-0006xQ-BN for demo@foo.de; Thu, 02 Mar 2023 05:27:29 +0100',
|
||||
2 => 'from [192.168.0.10] (helo=sslproxy01.your-server.de) by somewhere06.your-server.de with esmtps (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92) id 1pXaXO-000LYP-9R for demo@foo.de; Thu, 02 Mar 2023 05:27:26 +0100',
|
||||
3 => 'from localhost ([127.0.0.1] helo=sslproxy01.your-server.de) by sslproxy01.your-server.de with esmtps (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92) id 1pXaXO-0008gy-7x for demo@foo.de; Thu, 02 Mar 2023 05:27:26 +0100',
|
||||
4 => 'from Debian-exim by sslproxy01.your-server.de with local (Exim 4.92) id 1pXaXO-0008gb-6g for demo@foo.de; Thu, 02 Mar 2023 05:27:26 +0100',
|
||||
], $message->received->all());
|
||||
self::assertEquals("demo@foo.de", $message->envelope_to);
|
||||
self::assertEquals("Thu, 02 Mar 2023 05:27:29 +0100", $message->delivery_date);
|
||||
self::assertEquals([
|
||||
0 => 'somewhere.your-server.de; iprev=pass (somewhere06.your-server.de) smtp.remote-ip=1b21:2f8:e0a:50e4::2; spf=none smtp.mailfrom=<>; dmarc=skipped',
|
||||
1 => 'somewhere.your-server.de'
|
||||
], $message->authentication_results->all());
|
||||
self::assertEquals([
|
||||
0 => 'from somewhere.your-server.de by somewhere.your-server.de with LMTP id 3TP8LrElAGSOaAAAmBr1xw (envelope-from <>); Thu, 02 Mar 2023 05:27:29 +0100',
|
||||
1 => 'from somewhere06.your-server.de ([1b21:2f8:e0a:50e4::2]) by somewhere.your-server.de with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.94.2) id 1pXaXR-0006xQ-BN for demo@foo.de; Thu, 02 Mar 2023 05:27:29 +0100',
|
||||
2 => 'from [192.168.0.10] (helo=sslproxy01.your-server.de) by somewhere06.your-server.de with esmtps (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92) id 1pXaXO-000LYP-9R for demo@foo.de; Thu, 02 Mar 2023 05:27:26 +0100',
|
||||
3 => 'from localhost ([127.0.0.1] helo=sslproxy01.your-server.de) by sslproxy01.your-server.de with esmtps (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92) id 1pXaXO-0008gy-7x for demo@foo.de; Thu, 02 Mar 2023 05:27:26 +0100',
|
||||
4 => 'from Debian-exim by sslproxy01.your-server.de with local (Exim 4.92) id 1pXaXO-0008gb-6g for demo@foo.de; Thu, 02 Mar 2023 05:27:26 +0100',
|
||||
], $message->received->all());
|
||||
self::assertEquals("ding@ding.de", $message->x_failed_recipients);
|
||||
self::assertEquals("auto-replied", $message->auto_submitted);
|
||||
self::assertEquals("Mail Delivery System <Mailer-Daemon@sslproxy01.your-server.de>", $message->from);
|
||||
self::assertEquals("demo@foo.de", $message->to);
|
||||
self::assertEquals("1.0", $message->mime_version);
|
||||
self::assertEquals("Mail delivery failed", $message->subject);
|
||||
self::assertEquals("E1pXaXO-0008gb-6g@sslproxy01.your-server.de", $message->message_id);
|
||||
self::assertEquals("2023-03-02 04:27:26", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("Clear (ClamAV 0.103.8/26827/Wed Mar 1 09:28:49 2023)", $message->x_virus_scanned);
|
||||
self::assertEquals("0.0 (/)", $message->x_spam_score);
|
||||
self::assertEquals("bar-demo@foo.de", $message->delivered_to);
|
||||
self::assertEquals("multipart/report", $message->content_type->last());
|
||||
self::assertEquals("5d4847c21c8891e73d62c8246f260a46496958041a499f33ecd47444fdaa591b", hash("sha256", $message->getTextBody()));
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
|
||||
$attachments = $message->attachments();
|
||||
self::assertCount(2, $attachments);
|
||||
|
||||
$attachment = $attachments[0];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals('c541a506', $attachment->filename);
|
||||
self::assertEquals("c541a506", $attachment->name);
|
||||
self::assertEquals('', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("message/delivery-status", $attachment->content_type);
|
||||
self::assertEquals("85ac09d1d74b2d85853084dc22abcad205a6bfde62d6056e3a933ffe7e82e45c", hash("sha256", $attachment->content));
|
||||
self::assertEquals(267, $attachment->size);
|
||||
self::assertEquals(1, $attachment->part_number);
|
||||
self::assertNull($attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
|
||||
$attachment = $attachments[1];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals('da786518', $attachment->filename);
|
||||
self::assertEquals("da786518", $attachment->name);
|
||||
self::assertEquals('', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("message/rfc822", $attachment->content_type);
|
||||
self::assertEquals("7525331f5fab23ea77f595b995336aca7b8dad12db00ada14abebe7fe5b96e10", hash("sha256", $attachment->content));
|
||||
self::assertEquals(776, $attachment->size);
|
||||
self::assertEquals(2, $attachment->part_number);
|
||||
self::assertNull($attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
94
plugins/vendor/webklex/php-imap/tests/fixtures/FixtureTestCase.php
vendored
Normal file
94
plugins/vendor/webklex/php-imap/tests/fixtures/FixtureTestCase.php
vendored
Normal file
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
/*
|
||||
* File: FixtureTestCase.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\ClientManager;
|
||||
use Webklex\PHPIMAP\Config;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
use \ReflectionException;
|
||||
|
||||
/**
|
||||
* Class FixtureTestCase
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
abstract class FixtureTestCase extends TestCase {
|
||||
|
||||
/**
|
||||
* Client manager
|
||||
* @var ClientManager $manager
|
||||
*/
|
||||
protected static ClientManager $manager;
|
||||
|
||||
/**
|
||||
* FixtureTestCase constructor.
|
||||
* @param string|null $name
|
||||
* @param array $data
|
||||
* @param $dataName
|
||||
*/
|
||||
final public function __construct(?string $name = null, array $data = [], $dataName = '') {
|
||||
parent::__construct($name, $data, $dataName);
|
||||
|
||||
self::$manager = new ClientManager([
|
||||
'options' => [
|
||||
"debug" => $_ENV["LIVE_MAILBOX_DEBUG"] ?? false,
|
||||
],
|
||||
'accounts' => [
|
||||
'default' => [
|
||||
'host' => getenv("LIVE_MAILBOX_HOST"),
|
||||
'port' => getenv("LIVE_MAILBOX_PORT"),
|
||||
'encryption' => getenv("LIVE_MAILBOX_ENCRYPTION"),
|
||||
'validate_cert' => getenv("LIVE_MAILBOX_VALIDATE_CERT"),
|
||||
'username' => getenv("LIVE_MAILBOX_USERNAME"),
|
||||
'password' => getenv("LIVE_MAILBOX_PASSWORD"),
|
||||
'protocol' => 'imap', //might also use imap, [pop3 or nntp (untested)]
|
||||
],
|
||||
],
|
||||
]);
|
||||
return self::$manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a fixture message
|
||||
* @param string $template
|
||||
*
|
||||
* @return Message
|
||||
* @throws ReflectionException
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
final public function getFixture(string $template, ?Config $config = null) : Message {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, "..", "messages", $template]);
|
||||
$message = Message::fromFile($filename, $config);
|
||||
self::assertInstanceOf(Message::class, $message);
|
||||
|
||||
return $message;
|
||||
}
|
||||
}
|
||||
55
plugins/vendor/webklex/php-imap/tests/fixtures/FourNestedEmailsTest.php
vendored
Normal file
55
plugins/vendor/webklex/php-imap/tests/fixtures/FourNestedEmailsTest.php
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/*
|
||||
* File: FourNestedEmailsTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
|
||||
/**
|
||||
* Class FourNestedEmailsTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class FourNestedEmailsTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture four_nested_emails.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("four_nested_emails.eml");
|
||||
|
||||
self::assertEquals("3-third-subject", $message->subject);
|
||||
self::assertEquals("3-third-content", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertFalse($message->date->first());
|
||||
self::assertEquals("test@example.com", $message->from->first()->mail);
|
||||
self::assertEquals("test@example.com", $message->to->first()->mail);
|
||||
|
||||
$attachments = $message->getAttachments();
|
||||
self::assertCount(1, $attachments);
|
||||
|
||||
$attachment = $attachments[0];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("2-second-email.eml", $attachment->name);
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals('eml', $attachment->getExtension());
|
||||
self::assertEquals("message/rfc822", $attachment->content_type);
|
||||
self::assertEquals("85012e6a26d064a0288ee62618b3192687385adb4a4e27e48a28f738a325ca46", hash("sha256", $attachment->content));
|
||||
self::assertEquals(1376, $attachment->size);
|
||||
self::assertEquals(2, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
|
||||
}
|
||||
}
|
||||
37
plugins/vendor/webklex/php-imap/tests/fixtures/GbkCharsetTest.php
vendored
Normal file
37
plugins/vendor/webklex/php-imap/tests/fixtures/GbkCharsetTest.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* File: GbkCharsetTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class GbkCharsetTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class GbkCharsetTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture gbk_charset.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("gbk_charset.eml");
|
||||
|
||||
self::assertEquals("Nuu", $message->subject);
|
||||
self::assertEquals("Hi", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertEquals("2017-09-13 11:05:45", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from->first()->mail);
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
}
|
||||
}
|
||||
37
plugins/vendor/webklex/php-imap/tests/fixtures/HtmlOnlyTest.php
vendored
Normal file
37
plugins/vendor/webklex/php-imap/tests/fixtures/HtmlOnlyTest.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* File: HtmlOnlyTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class HtmlOnlyTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class HtmlOnlyTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture html_only.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("html_only.eml");
|
||||
|
||||
self::assertEquals("Nuu", $message->subject);
|
||||
self::assertEquals("<html><body>Hi</body></html>", $message->getHTMLBody());
|
||||
self::assertFalse($message->hasTextBody());
|
||||
self::assertEquals("2017-09-13 11:05:45", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from->first()->mail);
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
}
|
||||
}
|
||||
37
plugins/vendor/webklex/php-imap/tests/fixtures/ImapMimeHeaderDecodeReturnsFalseTest.php
vendored
Normal file
37
plugins/vendor/webklex/php-imap/tests/fixtures/ImapMimeHeaderDecodeReturnsFalseTest.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* File: ImapMimeHeaderDecodeReturnsFalseTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class ImapMimeHeaderDecodeReturnsFalseTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class ImapMimeHeaderDecodeReturnsFalseTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture imap_mime_header_decode_returns_false.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("imap_mime_header_decode_returns_false.eml");
|
||||
|
||||
self::assertEquals("=?UTF-8?B?nnDusSNdG92w6Fuw61fMjAxOF8wMy0xMzMyNTMzMTkzLnBkZg==?=", $message->subject->first());
|
||||
self::assertEquals("Hi", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertEquals("2017-09-13 11:05:45", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from->first()->mail);
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
}
|
||||
}
|
||||
62
plugins/vendor/webklex/php-imap/tests/fixtures/InlineAttachmentTest.php
vendored
Normal file
62
plugins/vendor/webklex/php-imap/tests/fixtures/InlineAttachmentTest.php
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
/*
|
||||
* File: InlineAttachmentTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
use Webklex\PHPIMAP\Support\AttachmentCollection;
|
||||
|
||||
/**
|
||||
* Class InlineAttachmentTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class InlineAttachmentTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture inline_attachment.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("inline_attachment.eml");
|
||||
|
||||
self::assertEquals("", $message->subject);
|
||||
self::assertFalse($message->hasTextBody());
|
||||
self::assertEquals('<img style="height: auto;" src="cid:ii_15f0aad691bb745f" border="0"/>', $message->getHTMLBody());
|
||||
|
||||
self::assertFalse($message->date->first());
|
||||
self::assertFalse($message->from->first());
|
||||
self::assertFalse($message->to->first());
|
||||
|
||||
|
||||
$attachments = $message->attachments();
|
||||
self::assertInstanceOf(AttachmentCollection::class, $attachments);
|
||||
self::assertCount(1, $attachments);
|
||||
|
||||
$attachment = $attachments[0];
|
||||
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals('d2913999', $attachment->name);
|
||||
self::assertEquals('d2913999', $attachment->filename);
|
||||
self::assertEquals('ii_15f0aad691bb745f', $attachment->id);
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals('', $attachment->getExtension());
|
||||
self::assertEquals("image/png", $attachment->content_type);
|
||||
self::assertEquals("6568c9e9c35a7fa06f236e89f704d8c9b47183a24f2c978dba6c92e2747e3a13", hash("sha256", $attachment->content));
|
||||
self::assertEquals(1486, $attachment->size);
|
||||
self::assertEquals(1, $attachment->part_number);
|
||||
self::assertEquals("inline", $attachment->disposition);
|
||||
self::assertEquals("<ii_15f0aad691bb745f>", $attachment->content_id);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
46
plugins/vendor/webklex/php-imap/tests/fixtures/KsC56011987HeadersTest.php
vendored
Normal file
46
plugins/vendor/webklex/php-imap/tests/fixtures/KsC56011987HeadersTest.php
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
/*
|
||||
* File: KsC56011987HeadersTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class KsC56011987HeadersTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class KsC56011987HeadersTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture ks_c_5601-1987_headers.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("ks_c_5601-1987_headers.eml");
|
||||
|
||||
self::assertEquals("RE: 회원님께 Ersi님이 메시지를 보냈습니다.", $message->subject);
|
||||
self::assertEquals("=?ks_c_5601-1987?B?yLi/+LTUsrIgRXJzabTUwMwguN69w8H2uKYgurizwr3AtM+02S4=?=", $message->thread_topic);
|
||||
self::assertEquals("1.0", $message->mime_version);
|
||||
self::assertEquals("Content", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertEquals("2017-09-27 10:48:51", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
|
||||
|
||||
$from = $message->from->first();
|
||||
self::assertEquals("김 현진", $from->personal);
|
||||
self::assertEquals("from", $from->mailbox);
|
||||
self::assertEquals("there.com", $from->host);
|
||||
self::assertEquals("from@there.com", $from->mail);
|
||||
self::assertEquals("김 현진 <from@there.com>", $from->full);
|
||||
}
|
||||
}
|
||||
63
plugins/vendor/webklex/php-imap/tests/fixtures/MailThatIsAttachmentTest.php
vendored
Normal file
63
plugins/vendor/webklex/php-imap/tests/fixtures/MailThatIsAttachmentTest.php
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
/*
|
||||
* File: MailThatIsAttachmentTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
|
||||
/**
|
||||
* Class MailThatIsAttachmentTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class MailThatIsAttachmentTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture mail_that_is_attachment.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("mail_that_is_attachment.eml");
|
||||
|
||||
self::assertEquals("Report domain: yyy.cz Submitter: google.com Report-ID: 2244696771454641389", $message->subject);
|
||||
self::assertEquals("2244696771454641389@google.com", $message->message_id);
|
||||
self::assertEquals("1.0", $message->mime_version);
|
||||
self::assertFalse($message->hasTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
|
||||
self::assertEquals("2015-02-15 10:21:51", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("xxx@yyy.cz", $message->to->first()->mail);
|
||||
self::assertEquals("xxx@yyy.cz", $message->sender->first()->mail);
|
||||
|
||||
$from = $message->from->first();
|
||||
self::assertEquals("noreply-dmarc-support via xxx", $from->personal);
|
||||
self::assertEquals("xxx", $from->mailbox);
|
||||
self::assertEquals("yyy.cz", $from->host);
|
||||
self::assertEquals("xxx@yyy.cz", $from->mail);
|
||||
self::assertEquals("noreply-dmarc-support via xxx <xxx@yyy.cz>", $from->full);
|
||||
|
||||
self::assertCount(1, $message->attachments());
|
||||
|
||||
$attachment = $message->attachments()->first();
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("google.com!yyy.cz!1423872000!1423958399.zip", $attachment->name);
|
||||
self::assertEquals('zip', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("application/zip", $attachment->content_type);
|
||||
self::assertEquals("c0d4f47b6fde124cea7460c3e509440d1a062705f550b0502b8ba0cbf621c97a", hash("sha256", $attachment->content));
|
||||
self::assertEquals(1062, $attachment->size);
|
||||
self::assertEquals(0, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
37
plugins/vendor/webklex/php-imap/tests/fixtures/MissingDateTest.php
vendored
Normal file
37
plugins/vendor/webklex/php-imap/tests/fixtures/MissingDateTest.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* File: MissingDateTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class MissingDateTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class MissingDateTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture missing_date.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("missing_date.eml");
|
||||
|
||||
self::assertEquals("Nuu", $message->getSubject());
|
||||
self::assertEquals("Hi", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertFalse($message->date->first());
|
||||
self::assertEquals("from@here.com", $message->from->first()->mail);
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
}
|
||||
}
|
||||
37
plugins/vendor/webklex/php-imap/tests/fixtures/MissingFromTest.php
vendored
Normal file
37
plugins/vendor/webklex/php-imap/tests/fixtures/MissingFromTest.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* File: MissingFromTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class MissingFromTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class MissingFromTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture missing_from.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("missing_from.eml");
|
||||
|
||||
self::assertEquals("Nuu", $message->getSubject());
|
||||
self::assertEquals("Hi", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertEquals("2017-09-13 11:05:45", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertFalse($message->from->first());
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
}
|
||||
}
|
||||
61
plugins/vendor/webklex/php-imap/tests/fixtures/MixedFilenameTest.php
vendored
Normal file
61
plugins/vendor/webklex/php-imap/tests/fixtures/MixedFilenameTest.php
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
/*
|
||||
* File: MixedFilenameTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
|
||||
/**
|
||||
* Class MixedFilenameTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class MixedFilenameTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture mixed_filename.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("mixed_filename.eml");
|
||||
|
||||
self::assertEquals("Свежий прайс-лист", $message->subject);
|
||||
self::assertFalse($message->hasTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
|
||||
self::assertEquals("2018-02-02 19:23:06", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
|
||||
$from = $message->from->first();
|
||||
self::assertEquals("Прайсы || ПартКом", $from->personal);
|
||||
self::assertEquals("support", $from->mailbox);
|
||||
self::assertEquals("part-kom.ru", $from->host);
|
||||
self::assertEquals("support@part-kom.ru", $from->mail);
|
||||
self::assertEquals("Прайсы || ПартКом <support@part-kom.ru>", $from->full);
|
||||
|
||||
self::assertEquals("foo@bar.com", $message->to->first());
|
||||
|
||||
self::assertCount(1, $message->attachments());
|
||||
|
||||
$attachment = $message->attachments()->first();
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("Price4VladDaKar.xlsx", $attachment->name);
|
||||
self::assertEquals('xlsx', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("application/octet-stream", $attachment->content_type);
|
||||
self::assertEquals("b832983842b0ad65db69e4c7096444c540a2393e2d43f70c2c9b8b9fceeedbb1", hash('sha256', $attachment->content));
|
||||
self::assertEquals(94, $attachment->size);
|
||||
self::assertEquals(2, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
62
plugins/vendor/webklex/php-imap/tests/fixtures/MultipartWithoutBodyTest.php
vendored
Normal file
62
plugins/vendor/webklex/php-imap/tests/fixtures/MultipartWithoutBodyTest.php
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
/*
|
||||
* File: MultipartWithoutBodyTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class MultipartWithoutBodyTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class MultipartWithoutBodyTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture multipart_without_body.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("multipart_without_body.eml");
|
||||
|
||||
self::assertEquals("This mail will not contain a body", $message->subject);
|
||||
self::assertEquals("This mail will not contain a body", $message->getTextBody());
|
||||
self::assertEquals("d76dfb1ff3231e3efe1675c971ce73f722b906cc049d328db0d255f8d3f65568", hash("sha256", $message->getHTMLBody()));
|
||||
self::assertEquals("2023-03-11 08:24:31", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("Foo Bülow Bar <from@example.com>", $message->from);
|
||||
self::assertEquals("some one <someone@somewhere.com>", $message->to);
|
||||
self::assertEquals([
|
||||
0 => 'from AS8PR02MB6805.eurprd02.prod.outlook.com (2603:10a6:20b:252::8) by PA4PR02MB7071.eurprd02.prod.outlook.com with HTTPS; Sat, 11 Mar 2023 08:24:33 +0000',
|
||||
1 => 'from omef0ahNgeoJu.eurprd02.prod.outlook.com (2603:10a6:10:33c::12) by AS8PR02MB6805.eurprd02.prod.outlook.com (2603:10a6:20b:252::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.19; Sat, 11 Mar 2023 08:24:31 +0000',
|
||||
2 => 'from omef0ahNgeoJu.eurprd02.prod.outlook.com ([fe80::38c0:9c40:7fc6:93a7]) by omef0ahNgeoJu.eurprd02.prod.outlook.com ([fe80::38c0:9c40:7fc6:93a7%7]) with mapi id 15.20.6178.019; Sat, 11 Mar 2023 08:24:31 +0000',
|
||||
], $message->received->all());
|
||||
self::assertEquals("This mail will not contain a body", $message->thread_topic);
|
||||
self::assertEquals("AdlT8uVmpHPvImbCRM6E9LODIvAcQA==", $message->thread_index);
|
||||
self::assertEquals("omef0ahNgeoJuEB51C568ED2227A2DAABB5BB9@omef0ahNgeoJu.eurprd02.prod.outlook.com", $message->message_id);
|
||||
self::assertEquals("da-DK, en-US", $message->accept_language);
|
||||
self::assertEquals("en-US", $message->content_language);
|
||||
self::assertEquals("Internal", $message->x_ms_exchange_organization_authAs);
|
||||
self::assertEquals("04", $message->x_ms_exchange_organization_authMechanism);
|
||||
self::assertEquals("omef0ahNgeoJu.eurprd02.prod.outlook.com", $message->x_ms_exchange_organization_authSource);
|
||||
self::assertEquals("", $message->x_ms_Has_Attach);
|
||||
self::assertEquals("aa546a02-2b7a-4fb1-7fd4-08db220a09f1", $message->x_ms_exchange_organization_Network_Message_Id);
|
||||
self::assertEquals("-1", $message->x_ms_exchange_organization_SCL);
|
||||
self::assertEquals("", $message->x_ms_TNEF_Correlator);
|
||||
self::assertEquals("0", $message->x_ms_exchange_organization_RecordReviewCfmType);
|
||||
self::assertEquals("Email", $message->x_ms_publictraffictype);
|
||||
self::assertEquals("ucf:0;jmr:0;auth:0;dest:I;ENG:(910001)(944506478)(944626604)(920097)(425001)(930097);", $message->X_Microsoft_Antispam_Mailbox_Delivery->first());
|
||||
self::assertEquals("0712b5fe22cf6e75fa220501c1a6715a61098983df9e69bad4000c07531c1295", hash("sha256", $message->X_Microsoft_Antispam_Message_Info));
|
||||
self::assertEquals("multipart/alternative", $message->Content_Type->last());
|
||||
self::assertEquals("1.0", $message->mime_version);
|
||||
|
||||
self::assertCount(0, $message->getAttachments());
|
||||
}
|
||||
}
|
||||
76
plugins/vendor/webklex/php-imap/tests/fixtures/MultipleHtmlPartsAndAttachmentsTest.php
vendored
Normal file
76
plugins/vendor/webklex/php-imap/tests/fixtures/MultipleHtmlPartsAndAttachmentsTest.php
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
/*
|
||||
* File: MultipleHtmlPartsAndAttachmentsTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
use Webklex\PHPIMAP\Support\AttachmentCollection;
|
||||
|
||||
/**
|
||||
* Class MultipleHtmlPartsAndAttachmentsTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class MultipleHtmlPartsAndAttachmentsTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture multiple_html_parts_and_attachments.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("multiple_html_parts_and_attachments.eml");
|
||||
|
||||
self::assertEquals("multiple_html_parts_and_attachments", $message->subject);
|
||||
self::assertEquals("This is the first html part\r\n\r\n\r\n\r\nThis is the second html part\r\n\r\n\r\n\r\nThis is the last html part\r\nhttps://www.there.com", $message->getTextBody());
|
||||
self::assertEquals("<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=us-ascii\"></head><body style=\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\">This is the <b>first</b> html <u>part</u><br><br></body></html>\n<html><body style=\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\"><head><meta http-equiv=\"content-type\" content=\"text/html; charset=us-ascii\"></head><br><br>This is <strike>the</strike> second html <i>part</i><br><br></body></html>\n<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=us-ascii\"></head><body style=\"overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;\"><br><br><font size=\"2\"><i>This</i> is the last <b>html</b> part</font><div>https://www.there.com</div><div><br></div><br><br>\r\n<br></body></html>", $message->getHTMLBody());
|
||||
|
||||
self::assertEquals("2023-02-16 09:19:02", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
|
||||
$from = $message->from->first();
|
||||
self::assertEquals("FromName", $from->personal);
|
||||
self::assertEquals("from", $from->mailbox);
|
||||
self::assertEquals("there.com", $from->host);
|
||||
self::assertEquals("from@there.com", $from->mail);
|
||||
self::assertEquals("FromName <from@there.com>", $from->full);
|
||||
|
||||
self::assertEquals("to@there.com", $message->to->first());
|
||||
|
||||
$attachments = $message->attachments();
|
||||
self::assertInstanceOf(AttachmentCollection::class, $attachments);
|
||||
self::assertCount(2, $attachments);
|
||||
|
||||
$attachment = $attachments[0];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("attachment1.pdf", $attachment->name);
|
||||
self::assertEquals('pdf', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("application/pdf", $attachment->content_type);
|
||||
self::assertEquals("c162adf19e0f67e26ef0b7f791b33a60b2c23b175560a505dc7f9ec490206e49", hash("sha256", $attachment->content));
|
||||
self::assertEquals(4814, $attachment->size);
|
||||
self::assertEquals(2, $attachment->part_number);
|
||||
self::assertEquals("inline", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
|
||||
$attachment = $attachments[1];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("attachment2.pdf", $attachment->name);
|
||||
self::assertEquals('pdf', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("application/pdf", $attachment->content_type);
|
||||
self::assertEquals("a337b37e9d3edb172a249639919f0eee3d344db352046d15f8f9887e55855a25", hash("sha256", $attachment->content));
|
||||
self::assertEquals(5090, $attachment->size);
|
||||
self::assertEquals(4, $attachment->part_number);
|
||||
self::assertEquals("inline", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
69
plugins/vendor/webklex/php-imap/tests/fixtures/MultipleNestedAttachmentsTest.php
vendored
Normal file
69
plugins/vendor/webklex/php-imap/tests/fixtures/MultipleNestedAttachmentsTest.php
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
/*
|
||||
* File: MultipleNestedAttachmentsTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
use Webklex\PHPIMAP\Support\AttachmentCollection;
|
||||
|
||||
/**
|
||||
* Class MultipleNestedAttachmentsTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class MultipleNestedAttachmentsTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture multiple_nested_attachments.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("multiple_nested_attachments.eml");
|
||||
|
||||
self::assertEquals("", $message->subject);
|
||||
self::assertEquals("------------------------------------------------------------------------", $message->getTextBody());
|
||||
self::assertEquals("<html>\r\n <head>\r\n\r\n <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\r\n </head>\r\n <body text=\"#000000\" bgcolor=\"#FFFFFF\">\r\n <p><br>\r\n </p>\r\n <div class=\"moz-signature\">\r\n <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\r\n <title></title>\r\n  <img src=\"cid:part1.8B953FBA.0E5A242C@xyz.xyz\" alt=\"\">\r\n <hr>\r\n <table width=\"20\" cellspacing=\"2\" cellpadding=\"2\" height=\"31\">\r\n <tbody>\r\n <tr>\r\n <td><br>\r\n </td>\r\n <td valign=\"middle\"><br>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </body>\r\n</html>", $message->getHTMLBody());
|
||||
|
||||
self::assertEquals("2018-01-15 09:54:09", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertFalse($message->from->first());
|
||||
self::assertFalse($message->to->first());
|
||||
|
||||
$attachments = $message->attachments();
|
||||
self::assertInstanceOf(AttachmentCollection::class, $attachments);
|
||||
self::assertCount(2, $attachments);
|
||||
|
||||
$attachment = $attachments[0];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("mleokdgdlgkkecep.png", $attachment->name);
|
||||
self::assertEquals('png', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("image/png", $attachment->content_type);
|
||||
self::assertEquals("e0e99b0bd6d5ea3ced99add53cc98b6f8eea6eae8ddd773fd06f3489289385fb", hash("sha256", $attachment->content));
|
||||
self::assertEquals(114, $attachment->size);
|
||||
self::assertEquals(3, $attachment->part_number);
|
||||
self::assertEquals("inline", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
|
||||
$attachment = $attachments[1];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("FF4D00-1.png", $attachment->name);
|
||||
self::assertEquals('png', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("image/png", $attachment->content_type);
|
||||
self::assertEquals("e0e99b0bd6d5ea3ced99add53cc98b6f8eea6eae8ddd773fd06f3489289385fb", hash("sha256", $attachment->content));
|
||||
self::assertEquals(114, $attachment->size);
|
||||
self::assertEquals(4, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
69
plugins/vendor/webklex/php-imap/tests/fixtures/NestesEmbeddedWithAttachmentTest.php
vendored
Normal file
69
plugins/vendor/webklex/php-imap/tests/fixtures/NestesEmbeddedWithAttachmentTest.php
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
/*
|
||||
* File: NestesEmbeddedWithAttachmentTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
use Webklex\PHPIMAP\Support\AttachmentCollection;
|
||||
|
||||
/**
|
||||
* Class NestesEmbeddedWithAttachmentTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class NestesEmbeddedWithAttachmentTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture nestes_embedded_with_attachment.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("nestes_embedded_with_attachment.eml");
|
||||
|
||||
self::assertEquals("Nuu", $message->subject);
|
||||
self::assertEquals("Dear Sarah", $message->getTextBody());
|
||||
self::assertEquals("<HTML><HEAD></HEAD>\r\n<BODY dir=ltr>\r\n<DIV>Dear Sarah,</DIV>\r\n</BODY></HTML>", $message->getHTMLBody());
|
||||
|
||||
self::assertEquals("2017-09-13 11:05:45", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from->first()->mail);
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
|
||||
$attachments = $message->attachments();
|
||||
self::assertInstanceOf(AttachmentCollection::class, $attachments);
|
||||
self::assertCount(2, $attachments);
|
||||
|
||||
$attachment = $attachments[0];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("first.eml", $attachment->name);
|
||||
self::assertEquals('eml', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("message/rfc822", $attachment->content_type);
|
||||
self::assertEquals("From: from@there.com\r\nTo: to@here.com\r\nSubject: FIRST\r\nDate: Sat, 28 Apr 2018 14:37:16 -0400\r\nMIME-Version: 1.0\r\nContent-Type: multipart/mixed;\r\n boundary=\"----=_NextPart_000_222_000\"\r\n\r\nThis is a multi-part message in MIME format.\r\n\r\n------=_NextPart_000_222_000\r\nContent-Type: multipart/alternative;\r\n boundary=\"----=_NextPart_000_222_111\"\r\n\r\n\r\n------=_NextPart_000_222_111\r\nContent-Type: text/plain;\r\n charset=\"UTF-8\"\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\nPlease respond directly to this email to update your RMA\r\n\r\n\r\n2018-04-17T11:04:03-04:00\r\n------=_NextPart_000_222_111\r\nContent-Type: text/html;\r\n charset=\"UTF-8\"\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n<HTML><HEAD></HEAD>\r\n<BODY dir=3Dltr>\r\n<DIV>Please respond directly to this =\r\nemail to=20\r\nupdate your RMA</DIV></BODY></HTML>\r\n\r\n------=_NextPart_000_222_111--\r\n\r\n------=_NextPart_000_222_000\r\nContent-Type: image/png;\r\n name=\"chrome.png\"\r\nContent-Transfer-Encoding: base64\r\nContent-Disposition: attachment;\r\n filename=\"chrome.png\"\r\n\r\niVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAB+FBMVEUAAAA/mUPidDHiLi5Cn0Xk\r\nNTPmeUrkdUg/m0Q0pEfcpSbwaVdKskg+lUP4zA/iLi3msSHkOjVAmETdJSjtYFE/lkPnRj3sWUs8\r\nkkLeqCVIq0fxvhXqUkbVmSjwa1n1yBLepyX1xxP0xRXqUkboST9KukpHpUbuvRrzrhF/ljbwalju\r\nZFM4jELaoSdLtElJrUj1xxP6zwzfqSU4i0HYnydMtUlIqUfywxb60AxZqEXaoifgMCXptR9MtklH\r\npEY2iUHWnSjvvRr70QujkC+pUC/90glMuEnlOjVMt0j70QriLS1LtEnnRj3qUUXfIidOjsxAhcZF\r\no0bjNDH0xxNLr0dIrUdmntVTkMoyfL8jcLBRuErhJyrgKyb4zA/5zg3tYFBBmUTmQTnhMinruBzv\r\nvhnxwxZ/st+Ktt5zp9hqota2vtK6y9FemNBblc9HiMiTtMbFtsM6gcPV2r6dwroseLrMrbQrdLGd\r\nyKoobKbo3Zh+ynrgVllZulTsXE3rV0pIqUf42UVUo0JyjEHoS0HmsiHRGR/lmRz/1hjqnxjvpRWf\r\nwtOhusaz0LRGf7FEfbDVmqHXlJeW0pbXq5bec3fX0nTnzmuJuWvhoFFhm0FtrziBsjaAaDCYWC+u\r\nSi6jQS3FsSfLJiTirCOkuCG1KiG+wSC+GBvgyhTszQ64Z77KAAAARXRSTlMAIQRDLyUgCwsE6ebm\r\n5ubg2dLR0byXl4FDQzU1NDEuLSUgC+vr6urq6ubb29vb2tra2tG8vLu7u7uXl5eXgYGBgYGBLiUA\r\nLabIAAABsElEQVQoz12S9VPjQBxHt8VaOA6HE+AOzv1wd7pJk5I2adpCC7RUcHd3d3fXf5PvLkxh\r\neD++z+yb7GSRlwD/+Hj/APQCZWxM5M+goF+RMbHK594v+tPoiN1uHxkt+xzt9+R9wnRTZZQpXQ0T\r\n5uP1IQxToyOAZiQu5HEpjeA4SWIoksRxNiGC1tRZJ4LNxgHgnU5nJZBDvuDdl8lzQRBsQ+s9PZt7\r\ns7Pz8wsL39/DkIfZ4xlB2Gqsq62ta9oxVlVrNZpihFRpGO9fzQw1ms0NDWZz07iGkJmIFH8xxkc3\r\na/WWlubmFkv9AB2SEpDvKxbjidN2faseaNV3zoHXvv7wMODJdkOHAegweAfFPx4G67KluxzottCU\r\n9n8CUqXzcIQdXOytAHqXxomvykhEKN9EFutG22p//0rbNvHVxiJywa8yS2KDfV1dfbu31H8jF1RH\r\niTKtWYeHxUvq3bn0pyjCRaiRU6aDO+gb3aEfEeVNsDgm8zzLy9egPa7Qt8TSJdwhjplk06HH43ZN\r\nJ3s91KKCHQ5x4sw1fRGYDZ0n1L4FKb9/BP5JLYxToheoFCVxz57PPS8UhhEpLBVeAAAAAElFTkSu\r\nQmCC\r\n\r\n------=_NextPart_000_222_000--", $attachment->content);
|
||||
self::assertEquals(2535, $attachment->size);
|
||||
self::assertEquals(3, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
|
||||
$attachment = $attachments[1];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("second.eml", $attachment->name);
|
||||
self::assertEquals('eml', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("message/rfc822", $attachment->content_type);
|
||||
self::assertEquals("From: from@there.com\r\nTo: to@here.com\r\nSubject: SECOND\r\nDate: Sat, 28 Apr 2018 13:37:30 -0400\r\nMIME-Version: 1.0\r\nContent-Type: multipart/alternative;\r\n boundary=\"----=_NextPart_000_333_000\"\r\n\r\nThis is a multi-part message in MIME format.\r\n\r\n------=_NextPart_000_333_000\r\nContent-Type: text/plain;\r\n charset=\"UTF-8\"\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\nT whom it may concern:\r\n------=_NextPart_000_333_000\r\nContent-Type: text/html;\r\n charset=\"UTF-8\"\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n<HTML><HEAD></HEAD>\r\n<BODY dir=3Dltr>\r\n<DIV>T whom it may concern:</DIV>\r\n</BODY></HTML>\r\n\r\n------=_NextPart_000_333_000--", $attachment->content);
|
||||
self::assertEquals(631, $attachment->size);
|
||||
self::assertEquals(4, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
39
plugins/vendor/webklex/php-imap/tests/fixtures/NullContentCharsetTest.php
vendored
Normal file
39
plugins/vendor/webklex/php-imap/tests/fixtures/NullContentCharsetTest.php
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/*
|
||||
* File: NullContentCharsetTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class NullContentCharsetTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class NullContentCharsetTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture null_content_charset.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("null_content_charset.eml");
|
||||
|
||||
self::assertEquals("test", $message->getSubject());
|
||||
self::assertEquals("Hi!", $message->getTextBody());
|
||||
self::assertEquals("1.0", $message->mime_version);
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
|
||||
self::assertEquals("2017-09-27 10:48:51", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from->first()->mail);
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
}
|
||||
}
|
||||
82
plugins/vendor/webklex/php-imap/tests/fixtures/PecTest.php
vendored
Normal file
82
plugins/vendor/webklex/php-imap/tests/fixtures/PecTest.php
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
/*
|
||||
* File: PecTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
use Webklex\PHPIMAP\Support\AttachmentCollection;
|
||||
|
||||
/**
|
||||
* Class PecTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class PecTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture pec.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("pec.eml");
|
||||
|
||||
self::assertEquals("Certified", $message->subject);
|
||||
self::assertEquals("Signed", $message->getTextBody());
|
||||
self::assertEquals("<html><body>Signed</body></html>", $message->getHTMLBody());
|
||||
|
||||
self::assertEquals("2017-10-02 10:13:43", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("test@example.com", $message->from->first()->mail);
|
||||
self::assertEquals("test@example.com", $message->to->first()->mail);
|
||||
|
||||
$attachments = $message->attachments();
|
||||
|
||||
self::assertInstanceOf(AttachmentCollection::class, $attachments);
|
||||
self::assertCount(3, $attachments);
|
||||
|
||||
$attachment = $attachments[0];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("data.xml", $attachment->name);
|
||||
self::assertEquals('xml', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("application/xml", $attachment->content_type);
|
||||
self::assertEquals("<xml/>", $attachment->content);
|
||||
self::assertEquals(8, $attachment->size);
|
||||
self::assertEquals(3, $attachment->part_number);
|
||||
self::assertEquals("inline", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
|
||||
$attachment = $attachments[1];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("postacert.eml", $attachment->name);
|
||||
self::assertEquals('eml', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("message/rfc822", $attachment->content_type);
|
||||
self::assertEquals("To: test@example.com\r\nFrom: test@example.com\r\nSubject: test-subject\r\nDate: Mon, 2 Oct 2017 12:13:50 +0200\r\nContent-Type: text/plain; charset=iso-8859-15; format=flowed\r\nContent-Transfer-Encoding: 7bit\r\n\r\ntest-content", $attachment->content);
|
||||
self::assertEquals(216, $attachment->size);
|
||||
self::assertEquals(4, $attachment->part_number);
|
||||
self::assertEquals("inline", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
|
||||
$attachment = $attachments[2];
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("smime.p7s", $attachment->name);
|
||||
self::assertEquals('p7s', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("application/x-pkcs7-signature", $attachment->content_type);
|
||||
self::assertEquals("1", $attachment->content);
|
||||
self::assertEquals(4, $attachment->size);
|
||||
self::assertEquals(5, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
37
plugins/vendor/webklex/php-imap/tests/fixtures/PlainOnlyTest.php
vendored
Normal file
37
plugins/vendor/webklex/php-imap/tests/fixtures/PlainOnlyTest.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* File: PlainOnlyTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class PlainOnlyTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class PlainOnlyTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture plain_only.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("plain_only.eml");
|
||||
|
||||
self::assertEquals("Nuu", $message->getSubject());
|
||||
self::assertEquals("Hi", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertEquals("2017-09-13 11:05:45", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from->first()->mail);
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
}
|
||||
}
|
||||
54
plugins/vendor/webklex/php-imap/tests/fixtures/PlainTextAttachmentTest.php
vendored
Normal file
54
plugins/vendor/webklex/php-imap/tests/fixtures/PlainTextAttachmentTest.php
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
/*
|
||||
* File: PlainTextAttachmentTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
|
||||
/**
|
||||
* Class PlainTextAttachmentTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class PlainTextAttachmentTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture plain_text_attachment.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("plain_text_attachment.eml");
|
||||
|
||||
self::assertEquals("Plain text attachment", $message->subject);
|
||||
self::assertEquals("Test", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
|
||||
self::assertEquals("2018-08-21 07:05:14", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from->first()->mail);
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
|
||||
self::assertCount(1, $message->attachments());
|
||||
|
||||
$attachment = $message->attachments()->first();
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("a.txt", $attachment->name);
|
||||
self::assertEquals('txt', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertNull($attachment->content_type);
|
||||
self::assertEquals("Hi!", $attachment->content);
|
||||
self::assertEquals(4, $attachment->size);
|
||||
self::assertEquals(2, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
54
plugins/vendor/webklex/php-imap/tests/fixtures/ReferencesTest.php
vendored
Normal file
54
plugins/vendor/webklex/php-imap/tests/fixtures/ReferencesTest.php
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
/*
|
||||
* File: ReferencesTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class ReferencesTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class ReferencesTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture references.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("references.eml");
|
||||
|
||||
self::assertEquals("", $message->subject);
|
||||
self::assertEquals("Hi\r\nHow are you?", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertFalse($message->date->first());
|
||||
|
||||
self::assertEquals("b9e87bd5e661a645ed6e3b832828fcc5@example.com", $message->in_reply_to);
|
||||
self::assertEquals("", $message->from->first()->personal);
|
||||
self::assertEquals("", $message->from->first()->host);
|
||||
self::assertEquals("no_host", $message->from->first()->mail);
|
||||
self::assertFalse($message->to->first());
|
||||
|
||||
self::assertEquals([
|
||||
"231d9ac57aec7d8c1a0eacfeab8af6f3@example.com",
|
||||
"08F04024-A5B3-4FDE-BF2C-6710DE97D8D9@example.com"
|
||||
], $message->getReferences()->all());
|
||||
|
||||
self::assertEquals([
|
||||
'This one: is "right" <ding@dong.com>',
|
||||
'No-address'
|
||||
], $message->cc->map(function($address){
|
||||
/** @var \Webklex\PHPIMAP\Address $address */
|
||||
return $address->full;
|
||||
}));
|
||||
}
|
||||
}
|
||||
37
plugins/vendor/webklex/php-imap/tests/fixtures/SimpleMultipartTest.php
vendored
Normal file
37
plugins/vendor/webklex/php-imap/tests/fixtures/SimpleMultipartTest.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* File: SimpleMultipartTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class SimpleMultipartTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class SimpleMultipartTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture simple_multipart.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("simple_multipart.eml");
|
||||
|
||||
self::assertEquals("test", $message->getSubject());
|
||||
self::assertEquals("MyPlain", $message->getTextBody());
|
||||
self::assertEquals("MyHtml", $message->getHTMLBody());
|
||||
self::assertEquals("2017-09-27 10:48:51", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from->first()->mail);
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
}
|
||||
}
|
||||
55
plugins/vendor/webklex/php-imap/tests/fixtures/StructuredWithAttachmentTest.php
vendored
Normal file
55
plugins/vendor/webklex/php-imap/tests/fixtures/StructuredWithAttachmentTest.php
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
/*
|
||||
* File: StructuredWithAttachmentTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
use Webklex\PHPIMAP\IMAP;
|
||||
|
||||
/**
|
||||
* Class StructuredWithAttachmentTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class StructuredWithAttachmentTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture structured_with_attachment.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("structured_with_attachment.eml");
|
||||
|
||||
self::assertEquals("Test", $message->getSubject());
|
||||
self::assertEquals("Test", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
|
||||
self::assertEquals("2017-09-29 08:55:23", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from->first()->mail);
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
|
||||
self::assertCount(1, $message->attachments());
|
||||
|
||||
$attachment = $message->attachments()->first();
|
||||
self::assertInstanceOf(Attachment::class, $attachment);
|
||||
self::assertEquals("MyFile.txt", $attachment->name);
|
||||
self::assertEquals('txt', $attachment->getExtension());
|
||||
self::assertEquals('text', $attachment->type);
|
||||
self::assertEquals("text/plain", $attachment->content_type);
|
||||
self::assertEquals("MyFileContent", $attachment->content);
|
||||
self::assertEquals(20, $attachment->size);
|
||||
self::assertEquals(2, $attachment->part_number);
|
||||
self::assertEquals("attachment", $attachment->disposition);
|
||||
self::assertNotEmpty($attachment->id);
|
||||
}
|
||||
}
|
||||
64
plugins/vendor/webklex/php-imap/tests/fixtures/UndefinedCharsetHeaderTest.php
vendored
Normal file
64
plugins/vendor/webklex/php-imap/tests/fixtures/UndefinedCharsetHeaderTest.php
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/*
|
||||
* File: UndefinedCharsetHeaderTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
use Webklex\PHPIMAP\Address;
|
||||
|
||||
/**
|
||||
* Class UndefinedCharsetHeaderTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class UndefinedCharsetHeaderTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture undefined_charset_header.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture(): void {
|
||||
$message = $this->getFixture("undefined_charset_header.eml");
|
||||
|
||||
self::assertEquals("<monitor@bla.bla>", $message->get("x-real-to"));
|
||||
self::assertEquals("1.0", $message->get("mime-version"));
|
||||
self::assertEquals("Mon, 27 Feb 2017 13:21:44 +0930", $message->get("Resent-Date"));
|
||||
self::assertEquals("<postmaster@bla.bla>", $message->get("Resent-From"));
|
||||
self::assertEquals("BlaBla", $message->get("X-Stored-In"));
|
||||
self::assertSame([
|
||||
'personal' => '',
|
||||
'mailbox' => 'info',
|
||||
'host' => 'bla.bla',
|
||||
'mail' => 'info@bla.bla',
|
||||
'full' => 'info@bla.bla',
|
||||
], $message->get("Return-Path")->first()->toArray());
|
||||
self::assertEquals([
|
||||
'from <postmaster@bla.bla> by bla.bla (CommuniGate Pro RULE 6.1.13) with RULE id 14057804; Mon, 27 Feb 2017 13:21:44 +0930',
|
||||
], $message->get("Received")->all());
|
||||
self::assertEquals(")", $message->getHTMLBody());
|
||||
self::assertFalse($message->hasTextBody());
|
||||
self::assertEquals("2017-02-27 03:51:29", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
|
||||
$from = $message->from->first();
|
||||
self::assertInstanceOf(Address::class, $from);
|
||||
|
||||
self::assertEquals("myGov", $from->personal);
|
||||
self::assertEquals("info", $from->mailbox);
|
||||
self::assertEquals("bla.bla", $from->host);
|
||||
self::assertEquals("info@bla.bla", $from->mail);
|
||||
self::assertEquals("myGov <info@bla.bla>", $from->full);
|
||||
|
||||
self::assertEquals("sales@bla.bla", $message->to->first()->mail);
|
||||
self::assertEquals("Submit your tax refund | Australian Taxation Office.", $message->subject);
|
||||
self::assertEquals("201702270351.BGF77614@bla.bla", $message->message_id);
|
||||
}
|
||||
}
|
||||
42
plugins/vendor/webklex/php-imap/tests/fixtures/UndisclosedRecipientsMinusTest.php
vendored
Normal file
42
plugins/vendor/webklex/php-imap/tests/fixtures/UndisclosedRecipientsMinusTest.php
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
/*
|
||||
* File: PlainOnlyTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class PlainOnlyTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class UndisclosedRecipientsMinusTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture undisclosed_recipients_minus.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("undisclosed_recipients_minus.eml");
|
||||
|
||||
self::assertEquals("test", $message->subject);
|
||||
self::assertEquals("Hi!", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertEquals("2017-09-27 10:48:51", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from);
|
||||
self::assertEquals([
|
||||
"undisclosed-recipients",
|
||||
""
|
||||
], $message->to->map(function ($item) {
|
||||
return $item->mailbox;
|
||||
}));
|
||||
}
|
||||
}
|
||||
42
plugins/vendor/webklex/php-imap/tests/fixtures/UndisclosedRecipientsSpaceTest.php
vendored
Normal file
42
plugins/vendor/webklex/php-imap/tests/fixtures/UndisclosedRecipientsSpaceTest.php
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
/*
|
||||
* File: UndisclosedRecipientsSpaceTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class UndisclosedRecipientsSpaceTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class UndisclosedRecipientsSpaceTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture undisclosed_recipients_space.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("undisclosed_recipients_space.eml");
|
||||
|
||||
self::assertEquals("test", $message->subject);
|
||||
self::assertEquals("Hi!", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertEquals("2017-09-27 10:48:51", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from);
|
||||
self::assertEquals([
|
||||
"Undisclosed recipients",
|
||||
""
|
||||
], $message->to->map(function ($item) {
|
||||
return $item->mailbox;
|
||||
}));
|
||||
}
|
||||
}
|
||||
42
plugins/vendor/webklex/php-imap/tests/fixtures/UndisclosedRecipientsTest.php
vendored
Normal file
42
plugins/vendor/webklex/php-imap/tests/fixtures/UndisclosedRecipientsTest.php
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
/*
|
||||
* File: UndisclosedRecipientsTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class UndisclosedRecipientsTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class UndisclosedRecipientsTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture undisclosed_recipients.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("undisclosed_recipients.eml");
|
||||
|
||||
self::assertEquals("test", $message->subject);
|
||||
self::assertEquals("Hi!", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertEquals("2017-09-27 10:48:51", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from);
|
||||
self::assertEquals([
|
||||
"Undisclosed Recipients",
|
||||
""
|
||||
], $message->to->map(function ($item) {
|
||||
return $item->mailbox;
|
||||
}));
|
||||
}
|
||||
}
|
||||
37
plugins/vendor/webklex/php-imap/tests/fixtures/UnknownEncodingTest.php
vendored
Normal file
37
plugins/vendor/webklex/php-imap/tests/fixtures/UnknownEncodingTest.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* File: UnknownEncodingTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class UnknownEncodingTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class UnknownEncodingTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture unknown_encoding.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("unknown_encoding.eml");
|
||||
|
||||
self::assertEquals("test", $message->getSubject());
|
||||
self::assertEquals("MyPlain", $message->getTextBody());
|
||||
self::assertEquals("MyHtml", $message->getHTMLBody());
|
||||
self::assertEquals("2017-09-27 10:48:51", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from->first()->mail);
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
}
|
||||
}
|
||||
37
plugins/vendor/webklex/php-imap/tests/fixtures/WithoutCharsetPlainOnlyTest.php
vendored
Normal file
37
plugins/vendor/webklex/php-imap/tests/fixtures/WithoutCharsetPlainOnlyTest.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* File: WithoutCharsetPlainOnlyTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class WithoutCharsetPlainOnlyTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class WithoutCharsetPlainOnlyTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture without_charset_plain_only.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("without_charset_plain_only.eml");
|
||||
|
||||
self::assertEquals("Nuu", $message->getSubject());
|
||||
self::assertEquals("Hi", $message->getTextBody());
|
||||
self::assertFalse($message->hasHTMLBody());
|
||||
self::assertEquals("2017-09-13 11:05:45", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from->first()->mail);
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
}
|
||||
}
|
||||
37
plugins/vendor/webklex/php-imap/tests/fixtures/WithoutCharsetSimpleMultipartTest.php
vendored
Normal file
37
plugins/vendor/webklex/php-imap/tests/fixtures/WithoutCharsetSimpleMultipartTest.php
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
/*
|
||||
* File: WithoutCharsetSimpleMultipartTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 09.03.23 02:24
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\fixtures;
|
||||
|
||||
/**
|
||||
* Class WithoutCharsetSimpleMultipartTest
|
||||
*
|
||||
* @package Tests\fixtures
|
||||
*/
|
||||
class WithoutCharsetSimpleMultipartTest extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* Test the fixture without_charset_simple_multipart.eml
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFixture() : void {
|
||||
$message = $this->getFixture("without_charset_simple_multipart.eml");
|
||||
|
||||
self::assertEquals("test", $message->getSubject());
|
||||
self::assertEquals("MyPlain", $message->getTextBody());
|
||||
self::assertEquals("MyHtml", $message->getHTMLBody());
|
||||
self::assertEquals("2017-09-27 10:48:51", $message->date->first()->setTimezone('UTC')->format("Y-m-d H:i:s"));
|
||||
self::assertEquals("from@there.com", $message->from->first()->mail);
|
||||
self::assertEquals("to@here.com", $message->to->first()->mail);
|
||||
}
|
||||
}
|
||||
38
plugins/vendor/webklex/php-imap/tests/issues/Issue275Test.php
vendored
Normal file
38
plugins/vendor/webklex/php-imap/tests/issues/Issue275Test.php
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue355Test.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 10.01.23 10:48
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
|
||||
class Issue275Test extends TestCase {
|
||||
|
||||
public function testIssueEmail1() {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, "..", "messages", "issue-275.eml"]);
|
||||
$message = Message::fromFile($filename);
|
||||
|
||||
self::assertSame("Testing 123", (string)$message->subject);
|
||||
self::assertSame("Asdf testing123 this is a body", $message->getTextBody());
|
||||
}
|
||||
|
||||
public function testIssueEmail2() {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, "..", "messages", "issue-275-2.eml"]);
|
||||
$message = Message::fromFile($filename);
|
||||
|
||||
$body = "Test\r\n\r\nMed venlig hilsen\r\nMartin Larsen\r\nFeline Holidays A/S\r\nTlf 78 77 04 12";
|
||||
|
||||
self::assertSame("Test 1017", (string)$message->subject);
|
||||
self::assertSame($body, $message->getTextBody());
|
||||
}
|
||||
|
||||
}
|
||||
30
plugins/vendor/webklex/php-imap/tests/issues/Issue355Test.php
vendored
Normal file
30
plugins/vendor/webklex/php-imap/tests/issues/Issue355Test.php
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue355Test.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 10.01.23 10:48
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Config;
|
||||
use Webklex\PHPIMAP\Header;
|
||||
|
||||
class Issue355Test extends TestCase {
|
||||
|
||||
public function testIssue() {
|
||||
$raw_header = "Subject: =?UTF-8?Q?Re=3A_Uppdaterat_=C3=A4rende_=28447899=29=2C_kostnader_f=C3=B6r_hj=C3=A4?= =?UTF-8?Q?lp_med_stadge=C3=A4ndring_enligt_ny_lagstiftning?=\r\n";
|
||||
|
||||
$header = new Header($raw_header, Config::make());
|
||||
$subject = $header->get("subject");
|
||||
|
||||
$this->assertEquals("Re: Uppdaterat ärende (447899), kostnader för hjälp med stadgeändring enligt ny lagstiftning", $subject->toString());
|
||||
}
|
||||
|
||||
}
|
||||
61
plugins/vendor/webklex/php-imap/tests/issues/Issue379Test.php
vendored
Normal file
61
plugins/vendor/webklex/php-imap/tests/issues/Issue379Test.php
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue355Test.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 10.01.23 10:48
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use Tests\live\LiveMailboxTestCase;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\EventNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\FolderFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageFlagException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageHeaderFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
|
||||
class Issue379Test extends LiveMailboxTestCase {
|
||||
|
||||
/**
|
||||
* Test issue #379 - Message::getSize() added
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws MessageFlagException
|
||||
* @throws MessageHeaderFetchingException
|
||||
* @throws MessageNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testIssue(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
|
||||
$message = $this->appendMessageTemplate($folder, "plain.eml");
|
||||
$this->assertEquals(214, $message->getSize());
|
||||
|
||||
// Clean up
|
||||
$this->assertTrue($message->delete(true));
|
||||
}
|
||||
|
||||
}
|
||||
33
plugins/vendor/webklex/php-imap/tests/issues/Issue382Test.php
vendored
Normal file
33
plugins/vendor/webklex/php-imap/tests/issues/Issue382Test.php
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue382Test.php
|
||||
* Category: Test
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 24.06.23 00:41
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
|
||||
class Issue382Test extends TestCase {
|
||||
|
||||
public function testIssueEmail() {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, "..", "messages", "issue-382.eml"]);
|
||||
$message = Message::fromFile($filename);
|
||||
|
||||
$from = $message->from->first();
|
||||
|
||||
self::assertSame("Mail Delivery System", $from->personal);
|
||||
self::assertSame("MAILER-DAEMON", $from->mailbox);
|
||||
self::assertSame("mta-09.someserver.com", $from->host);
|
||||
self::assertSame("MAILER-DAEMON@mta-09.someserver.com", $from->mail);
|
||||
self::assertSame("Mail Delivery System <MAILER-DAEMON@mta-09.someserver.com>", $from->full);
|
||||
}
|
||||
|
||||
}
|
||||
69
plugins/vendor/webklex/php-imap/tests/issues/Issue383Test.php
vendored
Normal file
69
plugins/vendor/webklex/php-imap/tests/issues/Issue383Test.php
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue355Test.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 10.01.23 10:48
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use Tests\live\LiveMailboxTestCase;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\EventNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\FolderFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Folder;
|
||||
|
||||
class Issue383Test extends LiveMailboxTestCase {
|
||||
|
||||
/**
|
||||
* Test issue #383 - Does not work when a folder name contains umlauts: Entwürfe
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testIssue(): void {
|
||||
$client = $this->getClient();
|
||||
$client->connect();
|
||||
|
||||
$delimiter = $this->getManager()->getConfig()->get("options.delimiter");
|
||||
$folder_path = implode($delimiter, ['INBOX', 'Entwürfe+']);
|
||||
|
||||
$folder = $client->getFolder($folder_path);
|
||||
$this->deleteFolder($folder);
|
||||
|
||||
$folder = $client->createFolder($folder_path, false);
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$folder = $this->getFolder($folder_path);
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$this->assertEquals('Entwürfe+', $folder->name);
|
||||
$this->assertEquals($folder_path, $folder->full_name);
|
||||
|
||||
$folder_path = implode($delimiter, ['INBOX', 'Entw&APw-rfe+']);
|
||||
$this->assertEquals($folder_path, $folder->path);
|
||||
|
||||
// Clean up
|
||||
if ($this->deleteFolder($folder) === false) {
|
||||
$this->fail("Could not delete folder: " . $folder->path);
|
||||
}
|
||||
}
|
||||
}
|
||||
62
plugins/vendor/webklex/php-imap/tests/issues/Issue393Test.php
vendored
Normal file
62
plugins/vendor/webklex/php-imap/tests/issues/Issue393Test.php
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue393Test.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 10.01.23 10:48
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use Tests\live\LiveMailboxTestCase;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\EventNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\FolderFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Folder;
|
||||
|
||||
class Issue393Test extends LiveMailboxTestCase {
|
||||
|
||||
/**
|
||||
* Test issue #393 - "Empty response" when calling getFolders()
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testIssue(): void {
|
||||
$client = $this->getClient();
|
||||
$client->connect();
|
||||
|
||||
$delimiter = $this->getManager()->getConfig()->get("options.delimiter");
|
||||
$pattern = implode($delimiter, ['doesnt_exist', '%']);
|
||||
|
||||
$folder = $client->getFolder('doesnt_exist');
|
||||
$this->deleteFolder($folder);
|
||||
|
||||
$folders = $client->getFolders(true, $pattern, true);
|
||||
self::assertCount(0, $folders);
|
||||
|
||||
try {
|
||||
$client->getFolders(true, $pattern, false);
|
||||
$this->fail('Expected FolderFetchingException::class exception not thrown');
|
||||
} catch (FolderFetchingException $e) {
|
||||
self::assertInstanceOf(FolderFetchingException::class, $e);
|
||||
}
|
||||
}
|
||||
}
|
||||
27
plugins/vendor/webklex/php-imap/tests/issues/Issue401Test.php
vendored
Normal file
27
plugins/vendor/webklex/php-imap/tests/issues/Issue401Test.php
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue401Test.php
|
||||
* Category: Test
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 23.06.23 22:48
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
|
||||
class Issue401Test extends TestCase {
|
||||
|
||||
public function testIssueEmail() {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, "..", "messages", "issue-401.eml"]);
|
||||
$message = Message::fromFile($filename);
|
||||
|
||||
self::assertSame("1;00pm Client running few minutes late", (string)$message->subject);
|
||||
}
|
||||
|
||||
}
|
||||
57
plugins/vendor/webklex/php-imap/tests/issues/Issue407Test.php
vendored
Normal file
57
plugins/vendor/webklex/php-imap/tests/issues/Issue407Test.php
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue407Test.php
|
||||
* Category: Test
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 23.06.23 21:40
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Tests\live\LiveMailboxTestCase;
|
||||
use Webklex\PHPIMAP\Folder;
|
||||
use Webklex\PHPIMAP\IMAP;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
|
||||
class Issue407Test extends LiveMailboxTestCase {
|
||||
|
||||
/**
|
||||
* @return void
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\AuthFailedException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\ConnectionFailedException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\EventNotFoundException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\FolderFetchingException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\ImapBadRequestException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\ImapServerErrorException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\InvalidMessageDateException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\MaskNotFoundException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\MessageContentFetchingException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\MessageFlagException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\MessageHeaderFetchingException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\ResponseException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\RuntimeException
|
||||
*/
|
||||
public function testIssue() {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$message = $this->appendMessageTemplate($folder, "plain.eml");
|
||||
self::assertInstanceOf(Message::class, $message);
|
||||
|
||||
$message->setFlag("Seen");
|
||||
|
||||
$flags = $this->getClient()->getConnection()->flags($message->uid, IMAP::ST_UID)->validatedData();
|
||||
|
||||
self::assertIsArray($flags);
|
||||
self::assertSame(1, count($flags));
|
||||
self::assertSame("\\Seen", $flags[$message->uid][0]);
|
||||
|
||||
$message->delete();
|
||||
}
|
||||
|
||||
}
|
||||
74
plugins/vendor/webklex/php-imap/tests/issues/Issue40Test.php
vendored
Normal file
74
plugins/vendor/webklex/php-imap/tests/issues/Issue40Test.php
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue410Test.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 23.06.23 20:41
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Tests\fixtures\FixtureTestCase;
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
use Webklex\PHPIMAP\ClientManager;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Exceptions\SpoofingAttemptDetectedException;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
|
||||
class Issue40Test extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* @throws RuntimeException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws \ReflectionException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws AuthFailedException
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testIssueEmail() {
|
||||
$message = $this->getFixture("issue-40.eml");
|
||||
|
||||
self::assertSame("Zly from", (string)$message->subject);
|
||||
self::assertSame([
|
||||
'personal' => '',
|
||||
'mailbox' => 'faked_sender',
|
||||
'host' => 'sender_domain.pl',
|
||||
'mail' => 'faked_sender@sender_domain.pl',
|
||||
'full' => 'faked_sender@sender_domain.pl',
|
||||
], $message->from->first()->toArray());
|
||||
self::assertSame([
|
||||
'personal' => '<real_sender@sender_domain.pl>',
|
||||
'mailbox' => 'real_sender',
|
||||
'host' => 'sender_domain.pl',
|
||||
'mail' => 'real_sender@sender_domain.pl',
|
||||
'full' => '<real_sender@sender_domain.pl> <real_sender@sender_domain.pl>',
|
||||
], (array)$message->return_path->first());
|
||||
self::assertSame(true, $message->spoofed->first());
|
||||
|
||||
$config = $message->getConfig();
|
||||
self::assertSame(false, $config->get("security.detect_spoofing_exception"));
|
||||
$config->set("security.detect_spoofing_exception", true);
|
||||
self::assertSame(true, $config->get("security.detect_spoofing_exception"));
|
||||
|
||||
$this->expectException(SpoofingAttemptDetectedException::class);
|
||||
$this->getFixture("issue-40.eml", $config);
|
||||
}
|
||||
|
||||
}
|
||||
111
plugins/vendor/webklex/php-imap/tests/issues/Issue410Test.php
vendored
Normal file
111
plugins/vendor/webklex/php-imap/tests/issues/Issue410Test.php
vendored
Normal file
@@ -0,0 +1,111 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue410Test.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 23.06.23 20:41
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Tests\fixtures\FixtureTestCase;
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
use Webklex\PHPIMAP\ClientManager;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
|
||||
class Issue410Test extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* @throws RuntimeException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws \ReflectionException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws AuthFailedException
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testIssueEmail() {
|
||||
$message = $this->getFixture("issue-410.eml");
|
||||
|
||||
self::assertSame("☆第132号 「ガーデン&エクステリア」専門店のためのQ&Aサロン 【月刊エクステリア・ワーク】", (string)$message->subject);
|
||||
|
||||
$attachments = $message->getAttachments();
|
||||
|
||||
self::assertSame(1, $attachments->count());
|
||||
|
||||
$attachment = $attachments->first();
|
||||
self::assertSame("☆第132号 「ガーデン&エクステリア」専門店のためのQ&Aサロン 【月刊エクステリア・ワーク】", $attachment->filename);
|
||||
self::assertSame("☆第132号 「ガーデン&エクステリア」専門店のためのQ&Aサロン 【月刊エクステリア・ワーク】", $attachment->name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws RuntimeException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws \ReflectionException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws AuthFailedException
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testIssueEmailB() {
|
||||
$message = $this->getFixture("issue-410b.eml");
|
||||
|
||||
self::assertSame("386 - 400021804 - 19., Heiligenstädter Straße 80 - 0819306 - Anfrage Vergabevorschlag", (string)$message->subject);
|
||||
|
||||
$attachments = $message->getAttachments();
|
||||
|
||||
self::assertSame(1, $attachments->count());
|
||||
|
||||
$attachment = $attachments->first();
|
||||
self::assertSame("2021_Mängelliste_0819306.xlsx", $attachment->description);
|
||||
self::assertSame("2021_Mängelliste_0819306.xlsx", $attachment->filename);
|
||||
self::assertSame("2021_Mängelliste_0819306.xlsx", $attachment->name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws RuntimeException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws AuthFailedException
|
||||
* @throws \ReflectionException
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testIssueEmailSymbols() {
|
||||
$message = $this->getFixture("issue-410symbols.eml");
|
||||
|
||||
$attachments = $message->getAttachments();
|
||||
|
||||
self::assertSame(1, $attachments->count());
|
||||
|
||||
/** @var Attachment $attachment */
|
||||
$attachment = $attachments->first();
|
||||
self::assertSame("Checkliste 10.,DAVIDGASSE 76-80;2;2.pdf", $attachment->description);
|
||||
self::assertSame("Checkliste 10.,DAVIDGASSE 76-80;2;2.pdf", $attachment->name);
|
||||
self::assertSame("Checkliste 10.,DAVIDGASSE 76-80;2;2.pdf", $attachment->filename);
|
||||
}
|
||||
|
||||
}
|
||||
31
plugins/vendor/webklex/php-imap/tests/issues/Issue412Test.php
vendored
Normal file
31
plugins/vendor/webklex/php-imap/tests/issues/Issue412Test.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue413Test.php
|
||||
* Category: Test
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 23.06.23 21:09
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Config;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
|
||||
class Issue412Test extends TestCase {
|
||||
|
||||
public function testIssueEmail() {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, "..", "messages", "issue-412.eml"]);
|
||||
$message = Message::fromFile($filename);
|
||||
|
||||
self::assertSame("RE: TEST MESSAGE", (string)$message->subject);
|
||||
self::assertSame("64254d63e92a36ee02c760676351e60a", md5($message->getTextBody()));
|
||||
self::assertSame("2e4de288f6a1ed658548ed11fcdb1d79", md5($message->getHTMLBody()));
|
||||
self::assertSame(0, $message->attachments()->count());
|
||||
}
|
||||
|
||||
}
|
||||
82
plugins/vendor/webklex/php-imap/tests/issues/Issue413Test.php
vendored
Normal file
82
plugins/vendor/webklex/php-imap/tests/issues/Issue413Test.php
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue413Test.php
|
||||
* Category: Test
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 23.06.23 21:09
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Tests\live\LiveMailboxTestCase;
|
||||
use Webklex\PHPIMAP\Config;
|
||||
use Webklex\PHPIMAP\Folder;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
|
||||
class Issue413Test extends LiveMailboxTestCase {
|
||||
|
||||
/**
|
||||
* Live server test
|
||||
*
|
||||
* @return void
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\AuthFailedException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\ConnectionFailedException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\EventNotFoundException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\FolderFetchingException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\GetMessagesFailedException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\ImapBadRequestException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\ImapServerErrorException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\InvalidMessageDateException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\MaskNotFoundException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\MessageContentFetchingException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\MessageFlagException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\MessageHeaderFetchingException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\MessageNotFoundException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\ResponseException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\RuntimeException
|
||||
*/
|
||||
public function testLiveIssueEmail() {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
/** @var Message $message */
|
||||
$_message = $this->appendMessageTemplate($folder, 'issue-413.eml');
|
||||
|
||||
$message = $folder->messages()->getMessageByMsgn($_message->msgn);
|
||||
self::assertEquals($message->uid, $_message->uid);
|
||||
|
||||
self::assertSame("Test Message", (string)$message->subject);
|
||||
self::assertSame("This is just a test, so ignore it (if you can!)\r\n\r\nTony Marston", $message->getTextBody());
|
||||
|
||||
$message->delete();
|
||||
}
|
||||
|
||||
/**
|
||||
* Static parsing test
|
||||
*
|
||||
* @return void
|
||||
* @throws \ReflectionException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\AuthFailedException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\ConnectionFailedException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\ImapBadRequestException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\ImapServerErrorException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\InvalidMessageDateException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\MaskNotFoundException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\MessageContentFetchingException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\ResponseException
|
||||
* @throws \Webklex\PHPIMAP\Exceptions\RuntimeException
|
||||
*/
|
||||
public function testIssueEmail() {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, "..", "messages", "issue-413.eml"]);
|
||||
$message = Message::fromFile($filename);
|
||||
|
||||
self::assertSame("Test Message", (string)$message->subject);
|
||||
self::assertSame("This is just a test, so ignore it (if you can!)\r\n\r\nTony Marston", $message->getTextBody());
|
||||
}
|
||||
|
||||
}
|
||||
43
plugins/vendor/webklex/php-imap/tests/issues/Issue414Test.php
vendored
Normal file
43
plugins/vendor/webklex/php-imap/tests/issues/Issue414Test.php
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue410Test.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 23.06.23 20:41
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
|
||||
class Issue414Test extends TestCase {
|
||||
|
||||
public function testIssueEmail() {
|
||||
$filename = implode(DIRECTORY_SEPARATOR, [__DIR__, "..", "messages", "issue-414.eml"]);
|
||||
$message = Message::fromFile($filename);
|
||||
|
||||
self::assertSame("Test", (string)$message->subject);
|
||||
|
||||
$attachments = $message->getAttachments();
|
||||
|
||||
self::assertSame(2, $attachments->count());
|
||||
|
||||
$attachment = $attachments->first();
|
||||
self::assertEmpty($attachment->description);
|
||||
self::assertSame("exampleMyFile.txt", $attachment->filename);
|
||||
self::assertSame("exampleMyFile.txt", $attachment->name);
|
||||
self::assertSame("be62f7e6", $attachment->id);
|
||||
|
||||
$attachment = $attachments->last();
|
||||
self::assertEmpty($attachment->description);
|
||||
self::assertSame("phpfoo", $attachment->filename);
|
||||
self::assertSame("phpfoo", $attachment->name);
|
||||
self::assertSame("12e1d38b", $attachment->hash);
|
||||
}
|
||||
|
||||
}
|
||||
31
plugins/vendor/webklex/php-imap/tests/issues/Issue420Test.php
vendored
Normal file
31
plugins/vendor/webklex/php-imap/tests/issues/Issue420Test.php
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue355Test.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 10.01.23 10:48
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Config;
|
||||
use Webklex\PHPIMAP\Header;
|
||||
|
||||
class Issue420Test extends TestCase {
|
||||
|
||||
public function testIssue() {
|
||||
$raw_header = "Subject: =?UTF-8?B?VGlja2V0IE5vOiBb7aC97bOpMTddIE1haWxib3ggSW5ib3ggLSAoMTcpIEluY29taW5nIGZhaWxlZCBtZXNzYWdlcw==?=\r\n";
|
||||
|
||||
$header = new Header($raw_header, Config::make());
|
||||
$subject = $header->get("subject");
|
||||
|
||||
// Ticket No: [<5B><>17] Mailbox Inbox - (17) Incoming failed messages
|
||||
$this->assertEquals('Ticket No: [??17] Mailbox Inbox - (17) Incoming failed messages', utf8_decode($subject->toString()));
|
||||
}
|
||||
|
||||
}
|
||||
48
plugins/vendor/webklex/php-imap/tests/issues/Issue462Test.php
vendored
Normal file
48
plugins/vendor/webklex/php-imap/tests/issues/Issue462Test.php
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue462Test.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 23.06.23 20:41
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use Tests\fixtures\FixtureTestCase;
|
||||
use Webklex\PHPIMAP\Config;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
|
||||
class Issue462Test extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* @throws RuntimeException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws \ReflectionException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws AuthFailedException
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testIssueEmail() {
|
||||
$config = Config::make();
|
||||
$config->set('options.rfc822', false);
|
||||
$message = $this->getFixture("issue-462.eml", $config);
|
||||
self::assertSame("Undeliverable: Some subject", (string)$message->subject);
|
||||
self::assertSame("postmaster@ <sending_domain.tld postmaster@sending_domain.tld>", (string)$message->from->first());
|
||||
}
|
||||
}
|
||||
42
plugins/vendor/webklex/php-imap/tests/issues/Issue469Test.php
vendored
Normal file
42
plugins/vendor/webklex/php-imap/tests/issues/Issue469Test.php
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Client;
|
||||
use Webklex\PHPIMAP\Folder;
|
||||
|
||||
class Issue469Test extends TestCase {
|
||||
|
||||
/**
|
||||
* Test issue #469 - Case sensitive \NoSelect flag check doesn't work for Gmail
|
||||
*/
|
||||
public function testIssue(): void {
|
||||
$client = $this->createStub(Client::class);
|
||||
$folder_name = '[Gmail]';
|
||||
$delimiter = '/';
|
||||
|
||||
$attributes = [
|
||||
'\NoInferiors',
|
||||
'\NoSelect',
|
||||
];
|
||||
$folder = new Folder($client, $folder_name, $delimiter, $attributes);
|
||||
|
||||
$attributes_lowercase = [
|
||||
'\Noinferiors',
|
||||
'\Noselect',
|
||||
];
|
||||
$folder_lowercase = new Folder($client, $folder_name, $delimiter, $attributes_lowercase);
|
||||
|
||||
self::assertSame(
|
||||
$folder->no_inferiors,
|
||||
$folder_lowercase->no_inferiors,
|
||||
'The parsed "\NoInferiors" attribute does not match the parsed "\Noinferiors" attribute'
|
||||
);
|
||||
self::assertSame(
|
||||
$folder->no_select,
|
||||
$folder_lowercase->no_select,
|
||||
'The parsed "\NoSelect" attribute does not match the parsed "\Noselect" attribute'
|
||||
);
|
||||
}
|
||||
}
|
||||
50
plugins/vendor/webklex/php-imap/tests/issues/Issue511Test.php
vendored
Normal file
50
plugins/vendor/webklex/php-imap/tests/issues/Issue511Test.php
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue410Test.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 23.06.23 20:41
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Tests\fixtures\FixtureTestCase;
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
use Webklex\PHPIMAP\ClientManager;
|
||||
use Webklex\PHPIMAP\EncodingAliases;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
|
||||
class Issue511Test extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* @throws RuntimeException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws \ReflectionException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws AuthFailedException
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testIssueEmail() {
|
||||
$message = $this->getFixture("issue-511.eml");
|
||||
self::assertSame("RE: [EXTERNAL] Re: Lorem Ipsum /40 one", (string)$message->subject);
|
||||
self::assertSame("COMPANYNAME | usługi <sender@sender_domain.tld>", (string)$message->from->first());
|
||||
}
|
||||
}
|
||||
61
plugins/vendor/webklex/php-imap/tests/issues/Issue544Test.php
vendored
Normal file
61
plugins/vendor/webklex/php-imap/tests/issues/Issue544Test.php
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
/*
|
||||
* File: Issue410Test.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 23.06.23 20:41
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\issues;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Tests\fixtures\FixtureTestCase;
|
||||
use Webklex\PHPIMAP\Attachment;
|
||||
use Webklex\PHPIMAP\ClientManager;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
|
||||
class Issue544Test extends FixtureTestCase {
|
||||
|
||||
/**
|
||||
* @throws RuntimeException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws \ReflectionException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws AuthFailedException
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testIssueEmail() {
|
||||
$message = $this->getFixture("issue-544.eml");
|
||||
|
||||
self::assertSame("Test bad boundary", (string)$message->subject);
|
||||
|
||||
$attachments = $message->getAttachments();
|
||||
|
||||
self::assertSame(1, $attachments->count());
|
||||
|
||||
/** @var Attachment $attachment */
|
||||
$attachment = $attachments->first();
|
||||
self::assertSame("file.pdf", $attachment->name);
|
||||
self::assertSame("file.pdf", $attachment->filename);
|
||||
self::assertStringStartsWith("%PDF-1.4", $attachment->content);
|
||||
self::assertStringEndsWith("%%EOF\n", $attachment->content);
|
||||
self::assertSame(14938, $attachment->size);
|
||||
}
|
||||
}
|
||||
318
plugins/vendor/webklex/php-imap/tests/live/ClientTest.php
vendored
Normal file
318
plugins/vendor/webklex/php-imap/tests/live/ClientTest.php
vendored
Normal file
@@ -0,0 +1,318 @@
|
||||
<?php
|
||||
/*
|
||||
* File: ClientTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 04.03.23 03:52
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\live;
|
||||
|
||||
use Webklex\PHPIMAP\Client;
|
||||
use Webklex\PHPIMAP\Connection\Protocols\ProtocolInterface;
|
||||
use Webklex\PHPIMAP\EncodingAliases;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\FolderFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Folder;
|
||||
use Webklex\PHPIMAP\Support\Masks\AttachmentMask;
|
||||
use Webklex\PHPIMAP\Support\Masks\MessageMask;
|
||||
|
||||
/**
|
||||
* Class ClientTest
|
||||
*
|
||||
* @package Tests
|
||||
*/
|
||||
class ClientTest extends LiveMailboxTestCase {
|
||||
|
||||
/**
|
||||
* Test if the connection is working
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
public function testConnect(): void {
|
||||
self::assertNotNull($this->getClient()->connect());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if the connection is working
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testIsConnected(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
self::assertTrue($client->isConnected());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if the connection state can be determined
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testDisconnect(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
self::assertFalse($client->disconnect()->isConnected());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test to get the default inbox folder
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
* @throws FolderFetchingException
|
||||
*/
|
||||
public function testGetFolder(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
$folder = $client->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test to get the default inbox folder by name
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testGetFolderByName(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
$folder = $client->getFolderByName('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test to get the default inbox folder by path
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testGetFolderByPath(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
$folder = $client->getFolderByPath('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test to get all folders
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testGetFolders(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
$folders = $client->getFolders(false);
|
||||
self::assertTrue($folders->count() > 0);
|
||||
}
|
||||
|
||||
public function testGetFoldersWithStatus(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
$folders = $client->getFoldersWithStatus(false);
|
||||
self::assertTrue($folders->count() > 0);
|
||||
}
|
||||
|
||||
public function testOpenFolder(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
$status = $client->openFolder("INBOX");
|
||||
self::assertTrue(isset($status["flags"]) && count($status["flags"]) > 0);
|
||||
self::assertTrue(($status["uidnext"] ?? 0) > 0);
|
||||
self::assertTrue(($status["uidvalidity"] ?? 0) > 0);
|
||||
self::assertTrue(($status["recent"] ?? -1) >= 0);
|
||||
self::assertTrue(($status["exists"] ?? -1) >= 0);
|
||||
}
|
||||
|
||||
public function testCreateFolder(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
$delimiter = $this->getManager()->getConfig()->get("options.delimiter");
|
||||
$folder_path = implode($delimiter, ['INBOX', $this->getSpecialChars()]);
|
||||
|
||||
$folder = $client->getFolder($folder_path);
|
||||
|
||||
$this->deleteFolder($folder);
|
||||
|
||||
$folder = $client->createFolder($folder_path, false);
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$folder = $this->getFolder($folder_path);
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$this->assertEquals($this->getSpecialChars(), $folder->name);
|
||||
$this->assertEquals($folder_path, $folder->full_name);
|
||||
|
||||
$folder_path = implode($delimiter, ['INBOX', EncodingAliases::convert($this->getSpecialChars(), "utf-8", "utf7-imap")]);
|
||||
$this->assertEquals($folder_path, $folder->path);
|
||||
|
||||
// Clean up
|
||||
if ($this->deleteFolder($folder) === false) {
|
||||
$this->fail("Could not delete folder: " . $folder->path);
|
||||
}
|
||||
}
|
||||
|
||||
public function testCheckFolder(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
$status = $client->checkFolder("INBOX");
|
||||
self::assertTrue(isset($status["flags"]) && count($status["flags"]) > 0);
|
||||
self::assertTrue(($status["uidnext"] ?? 0) > 0);
|
||||
self::assertTrue(($status["uidvalidity"] ?? 0) > 0);
|
||||
self::assertTrue(($status["recent"] ?? -1) >= 0);
|
||||
self::assertTrue(($status["exists"] ?? -1) >= 0);
|
||||
}
|
||||
|
||||
public function testGetFolderPath(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
self::assertIsArray($client->openFolder("INBOX"));
|
||||
self::assertEquals("INBOX", $client->getFolderPath());
|
||||
}
|
||||
|
||||
public function testId(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
$info = $client->Id();
|
||||
self::assertIsArray($info);
|
||||
$valid = false;
|
||||
foreach ($info as $value) {
|
||||
if (str_starts_with($value, "OK")) {
|
||||
$valid = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
self::assertTrue($valid);
|
||||
}
|
||||
|
||||
public function testGetQuotaRoot(): void {
|
||||
if (!getenv("LIVE_MAILBOX_QUOTA_SUPPORT")) {
|
||||
$this->markTestSkipped("Quota support is not enabled");
|
||||
}
|
||||
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
$quota = $client->getQuotaRoot("INBOX");
|
||||
self::assertIsArray($quota);
|
||||
self::assertTrue(count($quota) > 1);
|
||||
self::assertIsArray($quota[0]);
|
||||
self::assertEquals("INBOX", $quota[0][1]);
|
||||
self::assertIsArray($quota[1]);
|
||||
self::assertIsArray($quota[1][2]);
|
||||
self::assertTrue($quota[1][2][2] > 0);
|
||||
}
|
||||
|
||||
public function testSetTimeout(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
self::assertInstanceOf(ProtocolInterface::class, $client->setTimeout(57));
|
||||
self::assertEquals(57, $client->getTimeout());
|
||||
}
|
||||
|
||||
public function testExpunge(): void {
|
||||
$client = $this->getClient()->connect();
|
||||
|
||||
$client->openFolder("INBOX");
|
||||
$status = $client->expunge();
|
||||
|
||||
self::assertIsArray($status);
|
||||
self::assertIsArray($status[0]);
|
||||
self::assertEquals("OK", $status[0][0]);
|
||||
}
|
||||
|
||||
public function testGetDefaultMessageMask(): void {
|
||||
$client = $this->getClient();
|
||||
|
||||
self::assertEquals(MessageMask::class, $client->getDefaultMessageMask());
|
||||
}
|
||||
|
||||
public function testGetDefaultEvents(): void {
|
||||
$client = $this->getClient();
|
||||
|
||||
self::assertIsArray($client->getDefaultEvents("message"));
|
||||
}
|
||||
|
||||
public function testSetDefaultMessageMask(): void {
|
||||
$client = $this->getClient();
|
||||
|
||||
self::assertInstanceOf(Client::class, $client->setDefaultMessageMask(AttachmentMask::class));
|
||||
self::assertEquals(AttachmentMask::class, $client->getDefaultMessageMask());
|
||||
|
||||
$client->setDefaultMessageMask(MessageMask::class);
|
||||
}
|
||||
|
||||
public function testGetDefaultAttachmentMask(): void {
|
||||
$client = $this->getClient();
|
||||
|
||||
self::assertEquals(AttachmentMask::class, $client->getDefaultAttachmentMask());
|
||||
}
|
||||
|
||||
public function testSetDefaultAttachmentMask(): void {
|
||||
$client = $this->getClient();
|
||||
|
||||
self::assertInstanceOf(Client::class, $client->setDefaultAttachmentMask(MessageMask::class));
|
||||
self::assertEquals(MessageMask::class, $client->getDefaultAttachmentMask());
|
||||
|
||||
$client->setDefaultAttachmentMask(AttachmentMask::class);
|
||||
}
|
||||
}
|
||||
447
plugins/vendor/webklex/php-imap/tests/live/FolderTest.php
vendored
Normal file
447
plugins/vendor/webklex/php-imap/tests/live/FolderTest.php
vendored
Normal file
@@ -0,0 +1,447 @@
|
||||
<?php
|
||||
/*
|
||||
* File: FolderTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 04.03.23 03:52
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\live;
|
||||
|
||||
use Webklex\PHPIMAP\Client;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\EventNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\FolderFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageFlagException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageHeaderFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Folder;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
use Webklex\PHPIMAP\Query\WhereQuery;
|
||||
use Webklex\PHPIMAP\Support\FolderCollection;
|
||||
|
||||
/**
|
||||
* Class FolderTest
|
||||
*
|
||||
* @package Tests
|
||||
*/
|
||||
class FolderTest extends LiveMailboxTestCase {
|
||||
|
||||
/**
|
||||
* Try to create a new query instance
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testQuery(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
self::assertInstanceOf(WhereQuery::class, $folder->query());
|
||||
self::assertInstanceOf(WhereQuery::class, $folder->search());
|
||||
self::assertInstanceOf(WhereQuery::class, $folder->messages());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Folder::hasChildren()
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
* @throws EventNotFoundException
|
||||
*/
|
||||
public function testHasChildren(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$delimiter = $this->getManager()->getConfig()->get("options.delimiter");
|
||||
$child_path = implode($delimiter, ['INBOX', 'test']);
|
||||
if ($folder->getClient()->getFolder($child_path) === null) {
|
||||
$folder->getClient()->createFolder($child_path, false);
|
||||
$folder = $this->getFolder('INBOX');
|
||||
}
|
||||
|
||||
self::assertTrue($folder->hasChildren());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Folder::setChildren()
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testSetChildren(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$delimiter = $this->getManager()->getConfig()->get("options.delimiter");
|
||||
$child_path = implode($delimiter, ['INBOX', 'test']);
|
||||
if ($folder->getClient()->getFolder($child_path) === null) {
|
||||
$folder->getClient()->createFolder($child_path, false);
|
||||
$folder = $this->getFolder('INBOX');
|
||||
}
|
||||
self::assertTrue($folder->hasChildren());
|
||||
|
||||
$folder->setChildren(new FolderCollection());
|
||||
self::assertTrue($folder->getChildren()->isEmpty());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Folder::getChildren()
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testGetChildren(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$delimiter = $this->getManager()->getConfig()->get("options.delimiter");
|
||||
$child_path = implode($delimiter, ['INBOX', 'test']);
|
||||
if ($folder->getClient()->getFolder($child_path) === null) {
|
||||
$folder->getClient()->createFolder($child_path, false);
|
||||
}
|
||||
|
||||
$folder = $folder->getClient()->getFolders()->where('name', 'INBOX')->first();
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
self::assertTrue($folder->hasChildren());
|
||||
self::assertFalse($folder->getChildren()->isEmpty());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Folder::move()
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testMove(): void {
|
||||
$client = $this->getClient();
|
||||
|
||||
$delimiter = $this->getManager()->getConfig()->get("options.delimiter");
|
||||
$folder_path = implode($delimiter, ['INBOX', 'test']);
|
||||
|
||||
$folder = $client->getFolder($folder_path);
|
||||
if ($folder === null) {
|
||||
$folder = $client->createFolder($folder_path, false);
|
||||
}
|
||||
$new_folder_path = implode($delimiter, ['INBOX', 'other']);
|
||||
$new_folder = $client->getFolder($new_folder_path);
|
||||
$new_folder?->delete(false);
|
||||
|
||||
$status = $folder->move($new_folder_path, false);
|
||||
self::assertIsArray($status);
|
||||
self::assertTrue(str_starts_with($status[0], 'OK'));
|
||||
|
||||
$new_folder = $client->getFolder($new_folder_path);
|
||||
self::assertEquals($new_folder_path, $new_folder->path);
|
||||
self::assertEquals('other', $new_folder->name);
|
||||
|
||||
if ($this->deleteFolder($new_folder) === false) {
|
||||
$this->fail("Could not delete folder: " . $new_folder->path);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Folder::delete()
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testDelete(): void {
|
||||
$client = $this->getClient();
|
||||
|
||||
$delimiter = $this->getManager()->getConfig()->get("options.delimiter");
|
||||
$folder_path = implode($delimiter, ['INBOX', 'test']);
|
||||
|
||||
$folder = $client->getFolder($folder_path);
|
||||
if ($folder === null) {
|
||||
$folder = $client->createFolder($folder_path, false);
|
||||
}
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
if ($this->deleteFolder($folder) === false) {
|
||||
$this->fail("Could not delete folder: " . $folder->path);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Folder::overview()
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws MessageFlagException
|
||||
* @throws MessageHeaderFetchingException
|
||||
* @throws MessageNotFoundException
|
||||
*/
|
||||
public function testOverview(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$folder->select();
|
||||
|
||||
// Test empty overview
|
||||
$overview = $folder->overview();
|
||||
self::assertIsArray($overview);
|
||||
self::assertCount(0, $overview);
|
||||
|
||||
$message = $this->appendMessageTemplate($folder, "plain.eml");
|
||||
|
||||
$overview = $folder->overview();
|
||||
|
||||
self::assertIsArray($overview);
|
||||
self::assertCount(1, $overview);
|
||||
|
||||
self::assertEquals($message->from->first()->full, end($overview)["from"]->toString());
|
||||
|
||||
self::assertTrue($message->delete());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Folder::appendMessage()
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws MessageFlagException
|
||||
* @throws MessageHeaderFetchingException
|
||||
* @throws MessageNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testAppendMessage(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$message = $this->appendMessageTemplate($folder, "plain.eml");
|
||||
self::assertInstanceOf(Message::class, $message);
|
||||
|
||||
self::assertEquals("Example", $message->subject);
|
||||
self::assertEquals("to@someone-else.com", $message->to);
|
||||
self::assertEquals("from@someone.com", $message->from);
|
||||
|
||||
// Clean up
|
||||
$this->assertTrue($message->delete(true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Folder::subscribe()
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testSubscribe(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$status = $folder->subscribe();
|
||||
self::assertIsArray($status);
|
||||
self::assertTrue(str_starts_with($status[0], 'OK'));
|
||||
|
||||
// Clean up
|
||||
$folder->unsubscribe();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Folder::unsubscribe()
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testUnsubscribe(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$folder->subscribe();
|
||||
|
||||
$status = $folder->subscribe();
|
||||
self::assertIsArray($status);
|
||||
self::assertTrue(str_starts_with($status[0], 'OK'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Folder::status()
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testStatus(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$status = $folder->status();
|
||||
self::assertEquals(0, $status['messages']);
|
||||
self::assertEquals(0, $status['recent']);
|
||||
self::assertEquals(0, $status['unseen']);
|
||||
self::assertGreaterThan(0, $status['uidnext']);
|
||||
self::assertGreaterThan(0, $status['uidvalidity']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Folder::examine()
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testExamine(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$status = $folder->examine();
|
||||
self::assertTrue(isset($status["flags"]) && count($status["flags"]) > 0);
|
||||
self::assertTrue(($status["uidnext"] ?? 0) > 0);
|
||||
self::assertTrue(($status["uidvalidity"] ?? 0) > 0);
|
||||
self::assertTrue(($status["recent"] ?? -1) >= 0);
|
||||
self::assertTrue(($status["exists"] ?? -1) >= 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Folder::getClient()
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testGetClient(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
self::assertInstanceOf(Client::class, $folder->getClient());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test Folder::setDelimiter()
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testSetDelimiter(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$folder->setDelimiter("/");
|
||||
self::assertEquals("/", $folder->delimiter);
|
||||
|
||||
$folder->setDelimiter(".");
|
||||
self::assertEquals(".", $folder->delimiter);
|
||||
|
||||
$default_delimiter = $this->getManager()->getConfig()->get("options.delimiter", "/");
|
||||
$folder->setDelimiter(null);
|
||||
self::assertEquals($default_delimiter, $folder->delimiter);
|
||||
}
|
||||
|
||||
}
|
||||
475
plugins/vendor/webklex/php-imap/tests/live/LegacyTest.php
vendored
Normal file
475
plugins/vendor/webklex/php-imap/tests/live/LegacyTest.php
vendored
Normal file
@@ -0,0 +1,475 @@
|
||||
<?php
|
||||
/*
|
||||
* File: LegacyTest.php
|
||||
* Category: Test
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 23.06.23 18:25
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\live;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Client;
|
||||
use Webklex\PHPIMAP\ClientManager;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\EventNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\FolderFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\GetMessagesFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidWhereQueryCriteriaException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageFlagException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageHeaderFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageSearchValidationException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Folder;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
use Webklex\PHPIMAP\Query\WhereQuery;
|
||||
|
||||
/**
|
||||
* Class LegacyTest
|
||||
*
|
||||
* @package Tests
|
||||
*/
|
||||
class LegacyTest extends TestCase {
|
||||
|
||||
/**
|
||||
* Client
|
||||
*/
|
||||
protected static Client $client;
|
||||
|
||||
/**
|
||||
* Create a new LegacyTest instance.
|
||||
* @param string|null $name
|
||||
* @param array $data
|
||||
* @param int|string $dataName
|
||||
*/
|
||||
public function __construct(?string $name = null, array $data = [], int|string $dataName = '') {
|
||||
if (!getenv("LIVE_MAILBOX") ?? false) {
|
||||
$this->markTestSkipped("This test requires a live mailbox. Please set the LIVE_MAILBOX environment variable to run this test.");
|
||||
}
|
||||
|
||||
parent::__construct($name, $data, $dataName);
|
||||
$manager = new ClientManager([
|
||||
'options' => [
|
||||
"debug" => $_ENV["LIVE_MAILBOX_DEBUG"] ?? false,
|
||||
],
|
||||
'accounts' => [
|
||||
'legacy' => [
|
||||
'host' => getenv("LIVE_MAILBOX_HOST"),
|
||||
'port' => getenv("LIVE_MAILBOX_PORT"),
|
||||
'encryption' => getenv("LIVE_MAILBOX_ENCRYPTION"),
|
||||
'validate_cert' => getenv("LIVE_MAILBOX_VALIDATE_CERT"),
|
||||
'username' => getenv("LIVE_MAILBOX_USERNAME"),
|
||||
'password' => getenv("LIVE_MAILBOX_PASSWORD"),
|
||||
'protocol' => 'legacy-imap',
|
||||
],
|
||||
],
|
||||
]);
|
||||
self::$client = $manager->account('legacy');
|
||||
self::$client->connect();
|
||||
self::assertInstanceOf(Client::class, self::$client->connect());
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws RuntimeException
|
||||
* @throws MessageFlagException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws EventNotFoundException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws AuthFailedException
|
||||
* @throws MessageHeaderFetchingException
|
||||
*/
|
||||
public function testSizes(): void {
|
||||
|
||||
$delimiter = self::$client->getConfig()->get("options.delimiter");
|
||||
$child_path = implode($delimiter, ['INBOX', 'test']);
|
||||
if (self::$client->getFolder($child_path) === null) {
|
||||
self::$client->createFolder($child_path, false);
|
||||
}
|
||||
$folder = $this->getFolder($child_path);
|
||||
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$message = $this->appendMessageTemplate($folder, "plain.eml");
|
||||
self::assertInstanceOf(Message::class, $message);
|
||||
|
||||
self::assertEquals(214, $message->size);
|
||||
self::assertEquals(214, self::$client->getConnection()->sizes($message->uid)->array()[$message->uid]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to create a new query instance
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testQuery(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
self::assertInstanceOf(WhereQuery::class, $folder->query());
|
||||
self::assertInstanceOf(WhereQuery::class, $folder->search());
|
||||
self::assertInstanceOf(WhereQuery::class, $folder->messages());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a folder
|
||||
* @param string $folder_path
|
||||
*
|
||||
* @return Folder
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
* @throws FolderFetchingException
|
||||
*/
|
||||
final protected function getFolder(string $folder_path = "INDEX"): Folder {
|
||||
$folder = self::$client->getFolderByPath($folder_path);
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
return $folder;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Append a message to a folder
|
||||
* @param Folder $folder
|
||||
* @param string $message
|
||||
*
|
||||
* @return Message
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws MessageFlagException
|
||||
* @throws MessageHeaderFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
final protected function appendMessage(Folder $folder, string $message): Message {
|
||||
$status = $folder->select();
|
||||
if (!isset($status['uidnext'])) {
|
||||
$this->fail("No UIDNEXT returned");
|
||||
}
|
||||
|
||||
$response = $folder->appendMessage($message);
|
||||
$valid_response = false;
|
||||
foreach ($response as $line) {
|
||||
if (str_starts_with($line, 'OK')) {
|
||||
$valid_response = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$valid_response) {
|
||||
$this->fail("Failed to append message: ".implode("\n", $response));
|
||||
}
|
||||
|
||||
$message = $folder->messages()->getMessageByUid($status['uidnext']);
|
||||
self::assertInstanceOf(Message::class, $message);
|
||||
|
||||
return $message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a message template to a folder
|
||||
* @param Folder $folder
|
||||
* @param string $template
|
||||
*
|
||||
* @return Message
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws MessageFlagException
|
||||
* @throws MessageHeaderFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
final protected function appendMessageTemplate(Folder $folder, string $template): Message {
|
||||
$content = file_get_contents(implode(DIRECTORY_SEPARATOR, [__DIR__, "..", "messages", $template]));
|
||||
return $this->appendMessage($folder, $content);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a folder if it is given
|
||||
* @param Folder|null $folder
|
||||
*
|
||||
* @return bool
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
final protected function deleteFolder(?Folder $folder = null): bool {
|
||||
$response = $folder?->delete(false);
|
||||
if (is_array($response)) {
|
||||
$valid_response = false;
|
||||
foreach ($response as $line) {
|
||||
if (str_starts_with($line, 'OK')) {
|
||||
$valid_response = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$valid_response) {
|
||||
$this->fail("Failed to delete mailbox: ".implode("\n", $response));
|
||||
}
|
||||
return $valid_response;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to create a new query instance with a where clause
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws MessageFlagException
|
||||
* @throws MessageHeaderFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
* @throws GetMessagesFailedException
|
||||
* @throws InvalidWhereQueryCriteriaException
|
||||
* @throws MessageSearchValidationException
|
||||
*/
|
||||
public function testQueryWhere(): void {
|
||||
$delimiter = self::$client->getConfig()->get("options.delimiter");
|
||||
$folder_path = implode($delimiter, ['INBOX', 'search']);
|
||||
|
||||
$folder = self::$client->getFolder($folder_path);
|
||||
if ($folder !== null) {
|
||||
self::assertTrue($this->deleteFolder($folder));
|
||||
}
|
||||
$folder = self::$client->createFolder($folder_path, false);
|
||||
|
||||
$messages = [
|
||||
$this->appendMessageTemplate($folder, '1366671050@github.com.eml'),
|
||||
$this->appendMessageTemplate($folder, 'attachment_encoded_filename.eml'),
|
||||
$this->appendMessageTemplate($folder, 'attachment_long_filename.eml'),
|
||||
$this->appendMessageTemplate($folder, 'attachment_no_disposition.eml'),
|
||||
$this->appendMessageTemplate($folder, 'bcc.eml'),
|
||||
$this->appendMessageTemplate($folder, 'boolean_decoded_content.eml'),
|
||||
$this->appendMessageTemplate($folder, 'email_address.eml'),
|
||||
$this->appendMessageTemplate($folder, 'embedded_email.eml'),
|
||||
$this->appendMessageTemplate($folder, 'embedded_email_without_content_disposition.eml'),
|
||||
$this->appendMessageTemplate($folder, 'embedded_email_without_content_disposition-embedded.eml'),
|
||||
$this->appendMessageTemplate($folder, 'example_attachment.eml'),
|
||||
$this->appendMessageTemplate($folder, 'example_bounce.eml'),
|
||||
$this->appendMessageTemplate($folder, 'four_nested_emails.eml'),
|
||||
$this->appendMessageTemplate($folder, 'gbk_charset.eml'),
|
||||
$this->appendMessageTemplate($folder, 'html_only.eml'),
|
||||
$this->appendMessageTemplate($folder, 'imap_mime_header_decode_returns_false.eml'),
|
||||
$this->appendMessageTemplate($folder, 'inline_attachment.eml'),
|
||||
$this->appendMessageTemplate($folder, 'issue-275.eml'),
|
||||
$this->appendMessageTemplate($folder, 'issue-275-2.eml'),
|
||||
$this->appendMessageTemplate($folder, 'issue-348.eml'),
|
||||
$this->appendMessageTemplate($folder, 'ks_c_5601-1987_headers.eml'),
|
||||
$this->appendMessageTemplate($folder, 'mail_that_is_attachment.eml'),
|
||||
$this->appendMessageTemplate($folder, 'missing_date.eml'),
|
||||
$this->appendMessageTemplate($folder, 'missing_from.eml'),
|
||||
$this->appendMessageTemplate($folder, 'mixed_filename.eml'),
|
||||
$this->appendMessageTemplate($folder, 'multipart_without_body.eml'),
|
||||
$this->appendMessageTemplate($folder, 'multiple_html_parts_and_attachments.eml'),
|
||||
$this->appendMessageTemplate($folder, 'multiple_nested_attachments.eml'),
|
||||
$this->appendMessageTemplate($folder, 'nestes_embedded_with_attachment.eml'),
|
||||
$this->appendMessageTemplate($folder, 'null_content_charset.eml'),
|
||||
$this->appendMessageTemplate($folder, 'pec.eml'),
|
||||
$this->appendMessageTemplate($folder, 'plain.eml'),
|
||||
$this->appendMessageTemplate($folder, 'plain_only.eml'),
|
||||
$this->appendMessageTemplate($folder, 'plain_text_attachment.eml'),
|
||||
$this->appendMessageTemplate($folder, 'references.eml'),
|
||||
$this->appendMessageTemplate($folder, 'simple_multipart.eml'),
|
||||
$this->appendMessageTemplate($folder, 'structured_with_attachment.eml'),
|
||||
$this->appendMessageTemplate($folder, 'thread_my_topic.eml'),
|
||||
$this->appendMessageTemplate($folder, 'thread_re_my_topic.eml'),
|
||||
$this->appendMessageTemplate($folder, 'thread_unrelated.eml'),
|
||||
$this->appendMessageTemplate($folder, 'undefined_charset_header.eml'),
|
||||
$this->appendMessageTemplate($folder, 'undisclosed_recipients_minus.eml'),
|
||||
$this->appendMessageTemplate($folder, 'undisclosed_recipients_space.eml'),
|
||||
$this->appendMessageTemplate($folder, 'unknown_encoding.eml'),
|
||||
$this->appendMessageTemplate($folder, 'without_charset_plain_only.eml'),
|
||||
$this->appendMessageTemplate($folder, 'without_charset_simple_multipart.eml'),
|
||||
];
|
||||
|
||||
$folder->getClient()->expunge();
|
||||
|
||||
$query = $folder->query()->all();
|
||||
self::assertEquals(count($messages), $query->count());
|
||||
|
||||
$query = $folder->query()->whereSubject("test");
|
||||
self::assertEquals(11, $query->count());
|
||||
|
||||
$query = $folder->query()->whereOn(Carbon::now());
|
||||
self::assertEquals(count($messages), $query->count());
|
||||
|
||||
self::assertTrue($this->deleteFolder($folder));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test query where criteria
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidWhereQueryCriteriaException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testQueryWhereCriteria(): void {
|
||||
self::$client->reconnect();
|
||||
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$this->assertWhereSearchCriteria($folder, 'SUBJECT', 'Test');
|
||||
$this->assertWhereSearchCriteria($folder, 'BODY', 'Test');
|
||||
$this->assertWhereSearchCriteria($folder, 'TEXT', 'Test');
|
||||
$this->assertWhereSearchCriteria($folder, 'KEYWORD', 'Test');
|
||||
$this->assertWhereSearchCriteria($folder, 'UNKEYWORD', 'Test');
|
||||
$this->assertWhereSearchCriteria($folder, 'FLAGGED', 'Seen');
|
||||
$this->assertWhereSearchCriteria($folder, 'UNFLAGGED', 'Seen');
|
||||
$this->assertHeaderSearchCriteria($folder, 'Message-ID', 'Seen');
|
||||
$this->assertHeaderSearchCriteria($folder, 'In-Reply-To', 'Seen');
|
||||
$this->assertWhereSearchCriteria($folder, 'BCC', 'test@example.com');
|
||||
$this->assertWhereSearchCriteria($folder, 'CC', 'test@example.com');
|
||||
$this->assertWhereSearchCriteria($folder, 'FROM', 'test@example.com');
|
||||
$this->assertWhereSearchCriteria($folder, 'TO', 'test@example.com');
|
||||
$this->assertWhereSearchCriteria($folder, 'UID', '1');
|
||||
$this->assertWhereSearchCriteria($folder, 'UID', '1,2');
|
||||
$this->assertWhereSearchCriteria($folder, 'ALL');
|
||||
$this->assertWhereSearchCriteria($folder, 'NEW');
|
||||
$this->assertWhereSearchCriteria($folder, 'OLD');
|
||||
$this->assertWhereSearchCriteria($folder, 'SEEN');
|
||||
$this->assertWhereSearchCriteria($folder, 'UNSEEN');
|
||||
$this->assertWhereSearchCriteria($folder, 'RECENT');
|
||||
$this->assertWhereSearchCriteria($folder, 'ANSWERED');
|
||||
$this->assertWhereSearchCriteria($folder, 'UNANSWERED');
|
||||
$this->assertWhereSearchCriteria($folder, 'DELETED');
|
||||
$this->assertWhereSearchCriteria($folder, 'UNDELETED');
|
||||
$this->assertHeaderSearchCriteria($folder, 'Content-Language','en_US');
|
||||
$this->assertWhereSearchCriteria($folder, 'CUSTOM X-Spam-Flag NO');
|
||||
$this->assertWhereSearchCriteria($folder, 'CUSTOM X-Spam-Flag YES');
|
||||
$this->assertWhereSearchCriteria($folder, 'NOT');
|
||||
$this->assertWhereSearchCriteria($folder, 'OR');
|
||||
$this->assertWhereSearchCriteria($folder, 'AND');
|
||||
$this->assertWhereSearchCriteria($folder, 'BEFORE', '01-Jan-2020', true);
|
||||
$this->assertWhereSearchCriteria($folder, 'BEFORE', Carbon::now()->subDays(1), true);
|
||||
$this->assertWhereSearchCriteria($folder, 'ON', '01-Jan-2020', true);
|
||||
$this->assertWhereSearchCriteria($folder, 'ON', Carbon::now()->subDays(1), true);
|
||||
$this->assertWhereSearchCriteria($folder, 'SINCE', '01-Jan-2020', true);
|
||||
$this->assertWhereSearchCriteria($folder, 'SINCE', Carbon::now()->subDays(1), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Assert where search criteria
|
||||
* @param Folder $folder
|
||||
* @param string $criteria
|
||||
* @param string|Carbon|null $value
|
||||
* @param bool $date
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidWhereQueryCriteriaException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
protected function assertWhereSearchCriteria(Folder $folder, string $criteria, Carbon|string|null $value = null, bool $date = false): void {
|
||||
$query = $folder->query()->where($criteria, $value);
|
||||
self::assertInstanceOf(WhereQuery::class, $query);
|
||||
|
||||
$item = $query->getQuery()->first();
|
||||
$criteria = str_replace("CUSTOM ", "", $criteria);
|
||||
$expected = $value === null ? [$criteria] : [$criteria, $value];
|
||||
if ($date === true && $value instanceof Carbon) {
|
||||
$date_format = $folder->getClient()->getConfig()->get('date_format', 'd M y');
|
||||
$expected[1] = $value->format($date_format);
|
||||
}
|
||||
|
||||
self::assertIsArray($item);
|
||||
self::assertIsString($item[0]);
|
||||
if($value !== null) {
|
||||
self::assertCount(2, $item);
|
||||
self::assertIsString($item[1]);
|
||||
}else{
|
||||
self::assertCount(1, $item);
|
||||
}
|
||||
self::assertSame($expected, $item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Assert header search criteria
|
||||
* @param Folder $folder
|
||||
* @param string $criteria
|
||||
* @param mixed|null $value
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidWhereQueryCriteriaException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
protected function assertHeaderSearchCriteria(Folder $folder, string $criteria, mixed $value = null): void {
|
||||
$query = $folder->query()->whereHeader($criteria, $value);
|
||||
self::assertInstanceOf(WhereQuery::class, $query);
|
||||
|
||||
$item = $query->getQuery()->first();
|
||||
|
||||
self::assertIsArray($item);
|
||||
self::assertIsString($item[0]);
|
||||
self::assertCount(1, $item);
|
||||
self::assertSame(['HEADER '.$criteria.' '.$value], $item);
|
||||
}
|
||||
}
|
||||
220
plugins/vendor/webklex/php-imap/tests/live/LiveMailboxTestCase.php
vendored
Normal file
220
plugins/vendor/webklex/php-imap/tests/live/LiveMailboxTestCase.php
vendored
Normal file
@@ -0,0 +1,220 @@
|
||||
<?php
|
||||
/*
|
||||
* File: LiveMailboxTestCase.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 04.03.23 03:43
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\live;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Webklex\PHPIMAP\Client;
|
||||
use Webklex\PHPIMAP\ClientManager;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\EventNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\FolderFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageFlagException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageHeaderFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Folder;
|
||||
use Webklex\PHPIMAP\Message;
|
||||
|
||||
/**
|
||||
* Class LiveMailboxTestCase
|
||||
*
|
||||
* @package Tests
|
||||
*/
|
||||
abstract class LiveMailboxTestCase extends TestCase {
|
||||
|
||||
/**
|
||||
* Special chars
|
||||
*/
|
||||
const SPECIAL_CHARS = 'A_\\|!"£$%&()=?àèìòùÀÈÌÒÙ<>-@#[]_ß_б_π_€_✔_你_يد_Z_';
|
||||
|
||||
/**
|
||||
* Client manager
|
||||
* @var ClientManager $manager
|
||||
*/
|
||||
protected static ClientManager $manager;
|
||||
|
||||
/**
|
||||
* Get the client manager
|
||||
*
|
||||
* @return ClientManager
|
||||
*/
|
||||
final protected function getManager(): ClientManager {
|
||||
if (!isset(self::$manager)) {
|
||||
self::$manager = new ClientManager([
|
||||
'options' => [
|
||||
"debug" => $_ENV["LIVE_MAILBOX_DEBUG"] ?? false,
|
||||
],
|
||||
'accounts' => [
|
||||
'default' => [
|
||||
'host' => getenv("LIVE_MAILBOX_HOST"),
|
||||
'port' => getenv("LIVE_MAILBOX_PORT"),
|
||||
'encryption' => getenv("LIVE_MAILBOX_ENCRYPTION"),
|
||||
'validate_cert' => getenv("LIVE_MAILBOX_VALIDATE_CERT"),
|
||||
'username' => getenv("LIVE_MAILBOX_USERNAME"),
|
||||
'password' => getenv("LIVE_MAILBOX_PASSWORD"),
|
||||
'protocol' => 'imap', //might also use imap, [pop3 or nntp (untested)]
|
||||
],
|
||||
],
|
||||
]);
|
||||
}
|
||||
return self::$manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the client
|
||||
*
|
||||
* @return Client
|
||||
* @throws MaskNotFoundException
|
||||
*/
|
||||
final protected function getClient(): Client {
|
||||
if (!getenv("LIVE_MAILBOX") ?? false) {
|
||||
$this->markTestSkipped("This test requires a live mailbox. Please set the LIVE_MAILBOX environment variable to run this test.");
|
||||
}
|
||||
return $this->getManager()->account('default');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get special chars
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
final protected function getSpecialChars(): string {
|
||||
return self::SPECIAL_CHARS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a folder
|
||||
* @param string $folder_path
|
||||
*
|
||||
* @return Folder
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
* @throws FolderFetchingException
|
||||
*/
|
||||
final protected function getFolder(string $folder_path = "INDEX"): Folder {
|
||||
$client = $this->getClient();
|
||||
self::assertInstanceOf(Client::class, $client->connect());
|
||||
|
||||
$folder = $client->getFolderByPath($folder_path);
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
return $folder;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a message to a folder
|
||||
* @param Folder $folder
|
||||
* @param string $message
|
||||
*
|
||||
* @return Message
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws MessageFlagException
|
||||
* @throws MessageHeaderFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
final protected function appendMessage(Folder $folder, string $message): Message {
|
||||
$status = $folder->select();
|
||||
if (!isset($status['uidnext'])) {
|
||||
$this->fail("No UIDNEXT returned");
|
||||
}
|
||||
|
||||
$response = $folder->appendMessage($message);
|
||||
$valid_response = false;
|
||||
foreach ($response as $line) {
|
||||
if (str_starts_with($line, 'OK')) {
|
||||
$valid_response = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$valid_response) {
|
||||
$this->fail("Failed to append message: ".implode("\n", $response));
|
||||
}
|
||||
|
||||
$message = $folder->messages()->getMessageByUid($status['uidnext']);
|
||||
self::assertInstanceOf(Message::class, $message);
|
||||
|
||||
return $message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a message template to a folder
|
||||
* @param Folder $folder
|
||||
* @param string $template
|
||||
*
|
||||
* @return Message
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws MessageFlagException
|
||||
* @throws MessageHeaderFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
final protected function appendMessageTemplate(Folder $folder, string $template): Message {
|
||||
$content = file_get_contents(implode(DIRECTORY_SEPARATOR, [__DIR__, "..", "messages", $template]));
|
||||
return $this->appendMessage($folder, $content);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a folder if it is given
|
||||
* @param Folder|null $folder
|
||||
*
|
||||
* @return bool
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
final protected function deleteFolder(?Folder $folder = null): bool {
|
||||
$response = $folder?->delete(false);
|
||||
if (is_array($response)) {
|
||||
$valid_response = false;
|
||||
foreach ($response as $line) {
|
||||
if (str_starts_with($line, 'OK')) {
|
||||
$valid_response = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$valid_response) {
|
||||
$this->fail("Failed to delete mailbox: ".implode("\n", $response));
|
||||
}
|
||||
return $valid_response;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
2410
plugins/vendor/webklex/php-imap/tests/live/MessageTest.php
vendored
Normal file
2410
plugins/vendor/webklex/php-imap/tests/live/MessageTest.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
283
plugins/vendor/webklex/php-imap/tests/live/QueryTest.php
vendored
Normal file
283
plugins/vendor/webklex/php-imap/tests/live/QueryTest.php
vendored
Normal file
@@ -0,0 +1,283 @@
|
||||
<?php
|
||||
/*
|
||||
* File: QueryTest.php
|
||||
* Category: -
|
||||
* Author: M.Goldenbaum
|
||||
* Created: 04.03.23 03:52
|
||||
* Updated: -
|
||||
*
|
||||
* Description:
|
||||
* -
|
||||
*/
|
||||
|
||||
namespace Tests\live;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Webklex\PHPIMAP\ClientManager;
|
||||
use Webklex\PHPIMAP\Exceptions\AuthFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ConnectionFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\EventNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\FolderFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\GetMessagesFailedException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapBadRequestException;
|
||||
use Webklex\PHPIMAP\Exceptions\ImapServerErrorException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidMessageDateException;
|
||||
use Webklex\PHPIMAP\Exceptions\InvalidWhereQueryCriteriaException;
|
||||
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageContentFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageFlagException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageHeaderFetchingException;
|
||||
use Webklex\PHPIMAP\Exceptions\MessageSearchValidationException;
|
||||
use Webklex\PHPIMAP\Exceptions\ResponseException;
|
||||
use Webklex\PHPIMAP\Exceptions\RuntimeException;
|
||||
use Webklex\PHPIMAP\Folder;
|
||||
use Webklex\PHPIMAP\Query\WhereQuery;
|
||||
|
||||
/**
|
||||
* Class QueryTest
|
||||
*
|
||||
* @package Tests
|
||||
*/
|
||||
class QueryTest extends LiveMailboxTestCase {
|
||||
|
||||
/**
|
||||
* Try to create a new query instance
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testQuery(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
self::assertInstanceOf(WhereQuery::class, $folder->query());
|
||||
self::assertInstanceOf(WhereQuery::class, $folder->search());
|
||||
self::assertInstanceOf(WhereQuery::class, $folder->messages());
|
||||
}
|
||||
|
||||
/**
|
||||
* Try to create a new query instance with a where clause
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws EventNotFoundException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidMessageDateException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws MessageContentFetchingException
|
||||
* @throws MessageFlagException
|
||||
* @throws MessageHeaderFetchingException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
* @throws GetMessagesFailedException
|
||||
* @throws InvalidWhereQueryCriteriaException
|
||||
* @throws MessageSearchValidationException
|
||||
*/
|
||||
public function testQueryWhere(): void {
|
||||
$client = $this->getClient();
|
||||
|
||||
$delimiter = $this->getManager()->getConfig()->get("options.delimiter");
|
||||
$folder_path = implode($delimiter, ['INBOX', 'search']);
|
||||
|
||||
$folder = $client->getFolder($folder_path);
|
||||
if ($folder !== null) {
|
||||
self::assertTrue($this->deleteFolder($folder));
|
||||
}
|
||||
$folder = $client->createFolder($folder_path, false);
|
||||
|
||||
$messages = [
|
||||
$this->appendMessageTemplate($folder, '1366671050@github.com.eml'),
|
||||
$this->appendMessageTemplate($folder, 'attachment_encoded_filename.eml'),
|
||||
$this->appendMessageTemplate($folder, 'attachment_long_filename.eml'),
|
||||
$this->appendMessageTemplate($folder, 'attachment_no_disposition.eml'),
|
||||
$this->appendMessageTemplate($folder, 'bcc.eml'),
|
||||
$this->appendMessageTemplate($folder, 'boolean_decoded_content.eml'),
|
||||
$this->appendMessageTemplate($folder, 'email_address.eml'),
|
||||
$this->appendMessageTemplate($folder, 'embedded_email.eml'),
|
||||
$this->appendMessageTemplate($folder, 'embedded_email_without_content_disposition.eml'),
|
||||
$this->appendMessageTemplate($folder, 'embedded_email_without_content_disposition-embedded.eml'),
|
||||
$this->appendMessageTemplate($folder, 'example_attachment.eml'),
|
||||
$this->appendMessageTemplate($folder, 'example_bounce.eml'),
|
||||
$this->appendMessageTemplate($folder, 'four_nested_emails.eml'),
|
||||
$this->appendMessageTemplate($folder, 'gbk_charset.eml'),
|
||||
$this->appendMessageTemplate($folder, 'html_only.eml'),
|
||||
$this->appendMessageTemplate($folder, 'imap_mime_header_decode_returns_false.eml'),
|
||||
$this->appendMessageTemplate($folder, 'inline_attachment.eml'),
|
||||
$this->appendMessageTemplate($folder, 'issue-275.eml'),
|
||||
$this->appendMessageTemplate($folder, 'issue-275-2.eml'),
|
||||
$this->appendMessageTemplate($folder, 'issue-348.eml'),
|
||||
$this->appendMessageTemplate($folder, 'ks_c_5601-1987_headers.eml'),
|
||||
$this->appendMessageTemplate($folder, 'mail_that_is_attachment.eml'),
|
||||
$this->appendMessageTemplate($folder, 'missing_date.eml'),
|
||||
$this->appendMessageTemplate($folder, 'missing_from.eml'),
|
||||
$this->appendMessageTemplate($folder, 'mixed_filename.eml'),
|
||||
$this->appendMessageTemplate($folder, 'multipart_without_body.eml'),
|
||||
$this->appendMessageTemplate($folder, 'multiple_html_parts_and_attachments.eml'),
|
||||
$this->appendMessageTemplate($folder, 'multiple_nested_attachments.eml'),
|
||||
$this->appendMessageTemplate($folder, 'nestes_embedded_with_attachment.eml'),
|
||||
$this->appendMessageTemplate($folder, 'null_content_charset.eml'),
|
||||
$this->appendMessageTemplate($folder, 'pec.eml'),
|
||||
$this->appendMessageTemplate($folder, 'plain.eml'),
|
||||
$this->appendMessageTemplate($folder, 'plain_only.eml'),
|
||||
$this->appendMessageTemplate($folder, 'plain_text_attachment.eml'),
|
||||
$this->appendMessageTemplate($folder, 'references.eml'),
|
||||
$this->appendMessageTemplate($folder, 'simple_multipart.eml'),
|
||||
$this->appendMessageTemplate($folder, 'structured_with_attachment.eml'),
|
||||
$this->appendMessageTemplate($folder, 'thread_my_topic.eml'),
|
||||
$this->appendMessageTemplate($folder, 'thread_re_my_topic.eml'),
|
||||
$this->appendMessageTemplate($folder, 'thread_unrelated.eml'),
|
||||
$this->appendMessageTemplate($folder, 'undefined_charset_header.eml'),
|
||||
$this->appendMessageTemplate($folder, 'undisclosed_recipients_minus.eml'),
|
||||
$this->appendMessageTemplate($folder, 'undisclosed_recipients_space.eml'),
|
||||
$this->appendMessageTemplate($folder, 'unknown_encoding.eml'),
|
||||
$this->appendMessageTemplate($folder, 'without_charset_plain_only.eml'),
|
||||
$this->appendMessageTemplate($folder, 'without_charset_simple_multipart.eml'),
|
||||
];
|
||||
|
||||
$folder->getClient()->expunge();
|
||||
|
||||
$query = $folder->query()->all();
|
||||
self::assertEquals(count($messages), $query->count());
|
||||
|
||||
$query = $folder->query()->whereSubject("test");
|
||||
self::assertEquals(11, $query->count());
|
||||
|
||||
$query = $folder->query()->whereOn(Carbon::now());
|
||||
self::assertEquals(count($messages), $query->count());
|
||||
|
||||
self::assertTrue($this->deleteFolder($folder));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test query where criteria
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws FolderFetchingException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidWhereQueryCriteriaException
|
||||
* @throws MaskNotFoundException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
public function testQueryWhereCriteria(): void {
|
||||
$folder = $this->getFolder('INBOX');
|
||||
self::assertInstanceOf(Folder::class, $folder);
|
||||
|
||||
$this->assertWhereSearchCriteria($folder, 'SUBJECT', 'Test');
|
||||
$this->assertWhereSearchCriteria($folder, 'BODY', 'Test');
|
||||
$this->assertWhereSearchCriteria($folder, 'TEXT', 'Test');
|
||||
$this->assertWhereSearchCriteria($folder, 'KEYWORD', 'Test');
|
||||
$this->assertWhereSearchCriteria($folder, 'UNKEYWORD', 'Test');
|
||||
$this->assertWhereSearchCriteria($folder, 'FLAGGED', 'Seen');
|
||||
$this->assertWhereSearchCriteria($folder, 'UNFLAGGED', 'Seen');
|
||||
$this->assertHeaderSearchCriteria($folder, 'Message-ID', 'Seen');
|
||||
$this->assertHeaderSearchCriteria($folder, 'In-Reply-To', 'Seen');
|
||||
$this->assertWhereSearchCriteria($folder, 'BCC', 'test@example.com');
|
||||
$this->assertWhereSearchCriteria($folder, 'CC', 'test@example.com');
|
||||
$this->assertWhereSearchCriteria($folder, 'FROM', 'test@example.com');
|
||||
$this->assertWhereSearchCriteria($folder, 'TO', 'test@example.com');
|
||||
$this->assertWhereSearchCriteria($folder, 'UID', '1');
|
||||
$this->assertWhereSearchCriteria($folder, 'UID', '1,2');
|
||||
$this->assertWhereSearchCriteria($folder, 'ALL');
|
||||
$this->assertWhereSearchCriteria($folder, 'NEW');
|
||||
$this->assertWhereSearchCriteria($folder, 'OLD');
|
||||
$this->assertWhereSearchCriteria($folder, 'SEEN');
|
||||
$this->assertWhereSearchCriteria($folder, 'UNSEEN');
|
||||
$this->assertWhereSearchCriteria($folder, 'RECENT');
|
||||
$this->assertWhereSearchCriteria($folder, 'ANSWERED');
|
||||
$this->assertWhereSearchCriteria($folder, 'UNANSWERED');
|
||||
$this->assertWhereSearchCriteria($folder, 'DELETED');
|
||||
$this->assertWhereSearchCriteria($folder, 'UNDELETED');
|
||||
$this->assertHeaderSearchCriteria($folder, 'Content-Language','en_US');
|
||||
$this->assertWhereSearchCriteria($folder, 'CUSTOM X-Spam-Flag NO');
|
||||
$this->assertWhereSearchCriteria($folder, 'CUSTOM X-Spam-Flag YES');
|
||||
$this->assertWhereSearchCriteria($folder, 'NOT');
|
||||
$this->assertWhereSearchCriteria($folder, 'OR');
|
||||
$this->assertWhereSearchCriteria($folder, 'AND');
|
||||
$this->assertWhereSearchCriteria($folder, 'BEFORE', '01-Jan-2020', true);
|
||||
$this->assertWhereSearchCriteria($folder, 'BEFORE', Carbon::now()->subDays(1), true);
|
||||
$this->assertWhereSearchCriteria($folder, 'ON', '01-Jan-2020', true);
|
||||
$this->assertWhereSearchCriteria($folder, 'ON', Carbon::now()->subDays(1), true);
|
||||
$this->assertWhereSearchCriteria($folder, 'SINCE', '01-Jan-2020', true);
|
||||
$this->assertWhereSearchCriteria($folder, 'SINCE', Carbon::now()->subDays(1), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Assert where search criteria
|
||||
* @param Folder $folder
|
||||
* @param string $criteria
|
||||
* @param string|Carbon|null $value
|
||||
* @param bool $date
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidWhereQueryCriteriaException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
protected function assertWhereSearchCriteria(Folder $folder, string $criteria, Carbon|string|null $value = null, bool $date = false): void {
|
||||
$query = $folder->query()->where($criteria, $value);
|
||||
self::assertInstanceOf(WhereQuery::class, $query);
|
||||
|
||||
$item = $query->getQuery()->first();
|
||||
$criteria = str_replace("CUSTOM ", "", $criteria);
|
||||
$expected = $value === null ? [$criteria] : [$criteria, $value];
|
||||
if ($date === true && $value instanceof Carbon) {
|
||||
$date_format = $folder->getClient()->getConfig()->get('date_format', 'd M y');
|
||||
$expected[1] = $value->format($date_format);
|
||||
}
|
||||
|
||||
self::assertIsArray($item);
|
||||
self::assertIsString($item[0]);
|
||||
if($value !== null) {
|
||||
self::assertCount(2, $item);
|
||||
self::assertIsString($item[1]);
|
||||
}else{
|
||||
self::assertCount(1, $item);
|
||||
}
|
||||
self::assertSame($expected, $item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Assert header search criteria
|
||||
* @param Folder $folder
|
||||
* @param string $criteria
|
||||
* @param mixed|null $value
|
||||
*
|
||||
* @return void
|
||||
* @throws AuthFailedException
|
||||
* @throws ConnectionFailedException
|
||||
* @throws ImapBadRequestException
|
||||
* @throws ImapServerErrorException
|
||||
* @throws InvalidWhereQueryCriteriaException
|
||||
* @throws ResponseException
|
||||
* @throws RuntimeException
|
||||
*/
|
||||
protected function assertHeaderSearchCriteria(Folder $folder, string $criteria, mixed $value = null): void {
|
||||
$query = $folder->query()->whereHeader($criteria, $value);
|
||||
self::assertInstanceOf(WhereQuery::class, $query);
|
||||
|
||||
$item = $query->getQuery()->first();
|
||||
|
||||
self::assertIsArray($item);
|
||||
self::assertIsString($item[0]);
|
||||
self::assertCount(1, $item);
|
||||
self::assertSame(['HEADER '.$criteria.' '.$value], $item);
|
||||
}
|
||||
}
|
||||
108
plugins/vendor/webklex/php-imap/tests/messages/1366671050@github.com.eml
vendored
Normal file
108
plugins/vendor/webklex/php-imap/tests/messages/1366671050@github.com.eml
vendored
Normal file
@@ -0,0 +1,108 @@
|
||||
Return-Path: <noreply@github.com>
|
||||
Delivered-To: someone@domain.tld
|
||||
Received: from mx.domain.tld
|
||||
by localhost with LMTP
|
||||
id SABVMNfGqWP+PAAA0J78UA
|
||||
(envelope-from <noreply@github.com>)
|
||||
for <someone@domain.tld>; Mon, 26 Dec 2022 17:07:51 +0100
|
||||
Received: from localhost (localhost [127.0.0.1])
|
||||
by mx.domain.tld (Postfix) with ESMTP id C3828140227
|
||||
for <someone@domain.tld>; Mon, 26 Dec 2022 17:07:51 +0100 (CET)
|
||||
X-Virus-Scanned: Debian amavisd-new at mx.domain.tld
|
||||
X-Spam-Flag: NO
|
||||
X-Spam-Score: -4.299
|
||||
X-Spam-Level:
|
||||
X-Spam-Status: No, score=-4.299 required=6.31 tests=[BAYES_00=-1.9,
|
||||
DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
|
||||
DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_IMAGE_ONLY_16=1.092,
|
||||
HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_MED=-2.3,
|
||||
RCVD_IN_MSPIKE_H2=-0.001, T_KAM_HTML_FONT_INVALID=0.01]
|
||||
autolearn=ham autolearn_force=no
|
||||
Received: from mx.domain.tld ([127.0.0.1])
|
||||
by localhost (mx.domain.tld [127.0.0.1]) (amavisd-new, port 10024)
|
||||
with ESMTP id JcIS9RuNBTNx for <someone@domain.tld>;
|
||||
Mon, 26 Dec 2022 17:07:21 +0100 (CET)
|
||||
Received: from smtp.github.com (out-26.smtp.github.com [192.30.252.209])
|
||||
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
|
||||
(No client certificate requested)
|
||||
by mx.domain.tld (Postfix) with ESMTPS id 6410B13FEB2
|
||||
for <someone@domain.tld>; Mon, 26 Dec 2022 17:07:21 +0100 (CET)
|
||||
Received: from github-lowworker-891b8d2.va3-iad.github.net (github-lowworker-891b8d2.va3-iad.github.net [10.48.109.104])
|
||||
by smtp.github.com (Postfix) with ESMTP id 176985E0200
|
||||
for <someone@domain.tld>; Mon, 26 Dec 2022 08:07:14 -0800 (PST)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com;
|
||||
s=pf2014; t=1672070834;
|
||||
bh=v91TPiLpM/cpUb4lgt2NMIUfM4HOIxCEWMR1+JTco+Q=;
|
||||
h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID:
|
||||
List-Archive:List-Post:List-Unsubscribe:From;
|
||||
b=jW4Tac9IjWAPbEImyiYf1bzGLzY3ceohVbBg1V8BlpMTQ+o+yY3YB0eOe20hAsqZR
|
||||
jrDjArx7rKQcslqBFL/b2B1C51rHuCBrz2cccLEERu9l/u0mTGCxTNtCRXHbCKbnR1
|
||||
VLWBeFLjATHth83kK6Kt7lkVuty+G3V1B6ZKPhCI=
|
||||
Date: Mon, 26 Dec 2022 08:07:14 -0800
|
||||
From: Username <notifications@github.com>
|
||||
Reply-To: Webklex/php-imap <reply+aibuo5jooM2quaizuoyae0jeuk9queth@reply.github.com>
|
||||
To: Webklex/php-imap <php-imap@noreply.github.com>
|
||||
Cc: Subscribed <subscribed@noreply.github.com>
|
||||
Message-ID: <Webklex/php-imap/issues/349/1365266070@github.com>
|
||||
In-Reply-To: <Webklex/php-imap/issues/349@github.com>
|
||||
References: <Webklex/php-imap/issues/349@github.com>
|
||||
Subject: Re: [Webklex/php-imap] Read all folders? (Issue #349)
|
||||
Mime-Version: 1.0
|
||||
Content-Type: multipart/alternative;
|
||||
boundary="--==_mimepart_63a9c6b293fe_65b5c71014155a";
|
||||
charset=UTF-8
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Precedence: list
|
||||
X-GitHub-Sender: consigliere23
|
||||
X-GitHub-Recipient: Webklex
|
||||
X-GitHub-Reason: subscribed
|
||||
List-ID: Webklex/php-imap <php-imap.Webklex.github.com>
|
||||
List-Archive: https://github.com/Webklex/php-imap
|
||||
List-Post: <mailto:reply+aibuo5jooM2quaizuoyae0jeuk9queth@reply.github.com>
|
||||
List-Unsubscribe: <mailto:unsub+aibuo5jooM2quaizuoyae0jeuk9queth@reply.github.com>,
|
||||
<https://github.com/notifications/unsubscribe/ooxee3quaequoob4eux3uSe5seehee9o>
|
||||
X-Auto-Response-Suppress: All
|
||||
X-GitHub-Recipient-Address: someone@domain.tld
|
||||
|
||||
|
||||
----==_mimepart_63a9c6b293fe_65b5c71014155a
|
||||
Content-Type: text/plain;
|
||||
charset=UTF-8
|
||||
Content-Transfer-Encoding: 7bit
|
||||
|
||||
Any updates?
|
||||
|
||||
--
|
||||
Reply to this email directly or view it on GitHub:
|
||||
https://github.com/Webklex/php-imap/issues/349#issuecomment-1365266070
|
||||
You are receiving this because you are subscribed to this thread.
|
||||
|
||||
Message ID: <Webklex/php-imap/issues/349/1365266070@github.com>
|
||||
----==_mimepart_63a9c6b293fe_65b5c71014155a
|
||||
Content-Type: text/html;
|
||||
charset=UTF-8
|
||||
Content-Transfer-Encoding: 7bit
|
||||
|
||||
<p></p>
|
||||
<p dir="auto">Any updates?</p>
|
||||
|
||||
<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />Reply to this email directly, <a href="https://github.com/Webklex/php-imap/issues/349#issuecomment-1365266070">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAWAEMH2ZLKHMNNNIBWTUT3WPG7DFANCNFSM6AAAAAATBM42CI">unsubscribe</a>.<br />You are receiving this because you are subscribed to this thread.<img src="https://github.com/notifications/beacon/AAWAEMHVWSHRQDWETTTRYPTWPG7DFA5CNFSM6AAAAAATBM42CKWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTSRMBHJM.gif" height="1" width="1" alt="" /><span style="color: transparent; font-size: 0; display: none; visibility: hidden; overflow: hidden; opacity: 0; width: 0; height: 0; max-width: 0; max-height: 0; mso-hide: all">Message ID: <span><Webklex/php-imap/issues/349/1365266070</span><span>@</span><span>github</span><span>.</span><span>com></span></span></p>
|
||||
<script type="application/ld+json">[
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "EmailMessage",
|
||||
"potentialAction": {
|
||||
"@type": "ViewAction",
|
||||
"target": "https://github.com/Webklex/php-imap/issues/349#issuecomment-1365266070",
|
||||
"url": "https://github.com/Webklex/php-imap/issues/349#issuecomment-1365266070",
|
||||
"name": "View Issue"
|
||||
},
|
||||
"description": "View this Issue on GitHub",
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "GitHub",
|
||||
"url": "https://github.com"
|
||||
}
|
||||
}
|
||||
]</script>
|
||||
----==_mimepart_63a9c6b293fe_65b5c71014155a--
|
||||
10
plugins/vendor/webklex/php-imap/tests/messages/attachment_encoded_filename.eml
vendored
Normal file
10
plugins/vendor/webklex/php-imap/tests/messages/attachment_encoded_filename.eml
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="BOUNDARY"
|
||||
|
||||
--BOUNDARY
|
||||
Content-Type: application/vnd.ms-excel; name="=?UTF-8?Q?Prost=C5=99eno=5F2014=5Fposledn=C3=AD_voln=C3=A9_term=C3=ADny.xls?="; charset="UTF-8"
|
||||
Content-Transfer-Encoding: base64
|
||||
Content-Disposition: attachment; filename="=?UTF-8?Q?Prost=C5=99eno=5F2014=5Fposledn=C3=AD_voln=C3=A9_term=C3=ADny.xls?="
|
||||
|
||||
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAACAAAAwgAAAAAA
|
||||
AAAAEAAA/v///wAAAAD+////AAAAAMAAAADBAAAA////////////////////////////////
|
||||
55
plugins/vendor/webklex/php-imap/tests/messages/attachment_long_filename.eml
vendored
Normal file
55
plugins/vendor/webklex/php-imap/tests/messages/attachment_long_filename.eml
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="BOUNDARY"
|
||||
|
||||
--BOUNDARY
|
||||
Content-Type: text/plain;
|
||||
name*0*=utf-8''Buchungsbest%C3%A4tigung-%20Rechnung-Gesch%C3%A4ftsbedingung;
|
||||
name*1*=en-Nr.B123-45%20-%20XXXX%20xxxxxxxxxxxxxxxxx%20XxxX%2C%20L%C3%BCd;
|
||||
name*2*=xxxxxxxx%20-%20VM%20Klaus%20XXXXXX%20-%20xxxxxxxx.pdf
|
||||
Content-Disposition: attachment;
|
||||
filename*0*=utf-8''Buchungsbest%C3%A4tigung-%20Rechnung-Gesch%C3%A4ftsbedin;
|
||||
filename*1*=gungen-Nr.B123-45%20-%20XXXXX%20xxxxxxxxxxxxxxxxx%20XxxX%2C;
|
||||
filename*2*=%20L%C3%BCxxxxxxxxxx%20-%20VM%20Klaus%20XXXXXX%20-%20xxxxxxxx.p;
|
||||
filename*3*=df
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
SGkh
|
||||
--BOUNDARY
|
||||
Content-Type: text/plain; charset=UTF-8;
|
||||
name="=?UTF-8?B?MDFfQeKCrMOgw6TEhdCx2YrYr0BaLTAxMjM0NTY3ODktcXdlcnR5dWlv?=
|
||||
=?UTF-8?Q?pasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzx?=
|
||||
=?UTF-8?Q?cvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstu?=
|
||||
=?UTF-8?Q?vz.txt?="
|
||||
Content-Transfer-Encoding: base64
|
||||
Content-Disposition: attachment;
|
||||
filename*0*=iso-8859-15''%30%31%5F%41%A4%E0%E4%3F%3F%3F%3F%40%5A%2D%30%31;
|
||||
filename*1*=%32%33%34%35%36%37%38%39%2D%71%77%65%72%74%79%75%69%6F%70%61;
|
||||
filename*2*=%73%64%66%67%68%6A%6B%6C%7A%78%63%76%62%6E%6D%6F%70%71%72%73;
|
||||
filename*3*=%74%75%76%7A%2D%30%31%32%33%34%35%36%37%38%39%2D%71%77%65%72;
|
||||
filename*4*=%74%79%75%69%6F%70%61%73%64%66%67%68%6A%6B%6C%7A%78%63%76%62;
|
||||
filename*5*=%6E%6D%6F%70%71%72%73%74%75%76%7A%2D%30%31%32%33%34%35%36%37;
|
||||
filename*6*=%38%39%2D%71%77%65%72%74%79%75%69%6F%70%61%73%64%66%67%68%6A;
|
||||
filename*7*=%6B%6C%7A%78%63%76%62%6E%6D%6F%70%71%72%73%74%75%76%7A%2E%74;
|
||||
filename*8*=%78%74
|
||||
|
||||
SGkh
|
||||
--BOUNDARY
|
||||
Content-Type: text/plain; charset=UTF-8;
|
||||
name="=?UTF-8?B?MDJfQeKCrMOgw6TEhdCx2YrYr0BaLTAxMjM0NTY3ODktcXdlcnR5dWlv?=
|
||||
=?UTF-8?Q?pasdfghjklzxcvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzx?=
|
||||
=?UTF-8?Q?cvbnmopqrstuvz-0123456789-qwertyuiopasdfghjklzxcvbnmopqrstu?=
|
||||
=?UTF-8?Q?vz.txt?="
|
||||
Content-Transfer-Encoding: base64
|
||||
Content-Disposition: attachment;
|
||||
filename*0*=UTF-8''%30%32%5F%41%E2%82%AC%C3%A0%C3%A4%C4%85%D0%B1%D9%8A%D8;
|
||||
filename*1*=%AF%40%5A%2D%30%31%32%33%34%35%36%37%38%39%2D%71%77%65%72%74;
|
||||
filename*2*=%79%75%69%6F%70%61%73%64%66%67%68%6A%6B%6C%7A%78%63%76%62%6E;
|
||||
filename*3*=%6D%6F%70%71%72%73%74%75%76%7A%2D%30%31%32%33%34%35%36%37%38;
|
||||
filename*4*=%39%2D%71%77%65%72%74%79%75%69%6F%70%61%73%64%66%67%68%6A%6B;
|
||||
filename*5*=%6C%7A%78%63%76%62%6E%6D%6F%70%71%72%73%74%75%76%7A%2D%30%31;
|
||||
filename*6*=%32%33%34%35%36%37%38%39%2D%71%77%65%72%74%79%75%69%6F%70%61;
|
||||
filename*7*=%73%64%66%67%68%6A%6B%6C%7A%78%63%76%62%6E%6D%6F%70%71%72%73;
|
||||
filename*8*=%74%75%76%7A%2E%74%78%74
|
||||
|
||||
SGkh
|
||||
--BOUNDARY--
|
||||
9
plugins/vendor/webklex/php-imap/tests/messages/attachment_no_disposition.eml
vendored
Normal file
9
plugins/vendor/webklex/php-imap/tests/messages/attachment_no_disposition.eml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="BOUNDARY"
|
||||
|
||||
--BOUNDARY
|
||||
Content-Type: application/vnd.ms-excel; name="=?UTF-8?Q?Prost=C5=99eno=5F2014=5Fposledn=C3=AD_voln=C3=A9_term=C3=ADny.xls?="; charset="UTF-8"
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAACAAAAwgAAAAAA
|
||||
AAAAEAAA/v///wAAAAD+////AAAAAMAAAADBAAAA////////////////////////////////
|
||||
12
plugins/vendor/webklex/php-imap/tests/messages/bcc.eml
vendored
Normal file
12
plugins/vendor/webklex/php-imap/tests/messages/bcc.eml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
Return-Path: <return-path@here.com>
|
||||
Subject: test
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain
|
||||
Date: Wed, 27 Sep 2017 12:48:51 +0200
|
||||
From: from@there.com
|
||||
To: to@here.com
|
||||
Bcc: =?UTF-8?B?QV/igqxAe8OoX1o=?= <bcc@here.com>
|
||||
Reply-To: reply-to@here.com
|
||||
Sender: sender@here.com
|
||||
|
||||
Hi!
|
||||
31
plugins/vendor/webklex/php-imap/tests/messages/boolean_decoded_content.eml
vendored
Normal file
31
plugins/vendor/webklex/php-imap/tests/messages/boolean_decoded_content.eml
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
From: from@there.com
|
||||
To: to@here.com
|
||||
Subject: Nuu
|
||||
Date: Wed, 13 Sep 2017 13:05:45 +0200
|
||||
Content-Type: multipart/mixed; boundary="=-vyqYb0SSRwuGFKv/Trdf"
|
||||
|
||||
--=-vyqYb0SSRwuGFKv/Trdf
|
||||
Content-Type: multipart/alternative; boundary="=-ewUvwipK68Y6itClYNpy"
|
||||
|
||||
--=-ewUvwipK68Y6itClYNpy
|
||||
Content-Type: text/plain; charset="us-ascii"
|
||||
|
||||
Here is the problem mail
|
||||
|
||||
Body text
|
||||
--=-ewUvwipK68Y6itClYNpy
|
||||
Content-Type: text/html; charset="us-ascii"
|
||||
|
||||
Here is the problem mail
|
||||
|
||||
Body text
|
||||
--=-ewUvwipK68Y6itClYNpy--
|
||||
|
||||
--=-vyqYb0SSRwuGFKv/Trdf
|
||||
Content-Type: application/pdf; name="Example Domain.pdf"
|
||||
Content-Disposition: attachment; filename="Example Domain.pdf"
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
nnDusSNdG92w6Fuw61fMjAxOF8wMy0xMzMyNTMzMTkzLnBkZg==?=
|
||||
|
||||
--=-vyqYb0SSRwuGFKv/Trdf--
|
||||
8
plugins/vendor/webklex/php-imap/tests/messages/date-template.eml
vendored
Normal file
8
plugins/vendor/webklex/php-imap/tests/messages/date-template.eml
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
Subject: test
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain
|
||||
Date: %date_raw_header%
|
||||
From: from@there.com
|
||||
To: to@here.com
|
||||
|
||||
Hi!
|
||||
9
plugins/vendor/webklex/php-imap/tests/messages/email_address.eml
vendored
Normal file
9
plugins/vendor/webklex/php-imap/tests/messages/email_address.eml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
Message-ID: <123@example.com>
|
||||
From: no_host
|
||||
Cc: "This one: is \"right\"" <ding@dong.com>, No-address
|
||||
Content-Type: text/plain;
|
||||
charset="us-ascii"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
Hi
|
||||
How are you?
|
||||
63
plugins/vendor/webklex/php-imap/tests/messages/embedded_email.eml
vendored
Normal file
63
plugins/vendor/webklex/php-imap/tests/messages/embedded_email.eml
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
Return-Path: demo@cerstor.cz
|
||||
Received: from webmail.my-office.cz (localhost [127.0.0.1])
|
||||
by keira.cofis.cz
|
||||
; Fri, 29 Jan 2016 14:25:40 +0100
|
||||
MIME-Version: 1.0
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="=_5d4b2de51e6aad0435b4bfbd7a23594a"
|
||||
Date: Fri, 29 Jan 2016 14:25:40 +0100
|
||||
From: demo@cerstor.cz
|
||||
To: demo@cerstor.cz
|
||||
Subject: embedded message
|
||||
Message-ID: <7e5798da5747415e5b82fdce042ab2a6@cerstor.cz>
|
||||
X-Sender: demo@cerstor.cz
|
||||
User-Agent: Roundcube Webmail/1.0.0
|
||||
|
||||
--=_5d4b2de51e6aad0435b4bfbd7a23594a
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Type: text/plain; charset=US-ASCII;
|
||||
format=flowed
|
||||
|
||||
email that contains embedded message
|
||||
--=_5d4b2de51e6aad0435b4bfbd7a23594a
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Content-Type: message/rfc822;
|
||||
name=demo.eml
|
||||
Content-Disposition: attachment;
|
||||
filename=demo.eml;
|
||||
size=889
|
||||
|
||||
Return-Path: demo@cerstor.cz
|
||||
Received: from webmail.my-office.cz (localhost [127.0.0.1])
|
||||
by keira.cofis.cz
|
||||
; Fri, 29 Jan 2016 14:22:13 +0100
|
||||
MIME-Version: 1.0
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="=_995890bdbf8bd158f2cbae0e8d966000"
|
||||
Date: Fri, 29 Jan 2016 14:22:13 +0100
|
||||
From: demo-from@cerstor.cz
|
||||
To: demo-to@cerstor.cz
|
||||
Subject: demo
|
||||
Message-ID: <4cbaf57cb00891c53b32e1d63367740c@cerstor.cz>
|
||||
X-Sender: demo@cerstor.cz
|
||||
User-Agent: Roundcube Webmail/1.0.0
|
||||
|
||||
--=_995890bdbf8bd158f2cbae0e8d966000
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Type: text/plain; charset=US-ASCII;
|
||||
format=flowed
|
||||
|
||||
demo text
|
||||
--=_995890bdbf8bd158f2cbae0e8d966000
|
||||
Content-Transfer-Encoding: base64
|
||||
Content-Type: text/plain;
|
||||
name=testfile.txt
|
||||
Content-Disposition: attachment;
|
||||
filename=testfile.txt;
|
||||
size=29
|
||||
|
||||
IHRoaXMgaXMgY29udGVudCBvZiB0ZXN0IGZpbGU=
|
||||
--=_995890bdbf8bd158f2cbae0e8d966000--
|
||||
|
||||
|
||||
--=_5d4b2de51e6aad0435b4bfbd7a23594a--
|
||||
@@ -0,0 +1,61 @@
|
||||
Received: from webmail.my-office.cz (localhost [127.0.0.1])
|
||||
by keira.cofis.cz
|
||||
; Fri, 29 Jan 2016 14:25:40 +0100
|
||||
From: demo@cerstor.cz
|
||||
To: demo@cerstor.cz
|
||||
Date: Fri, 5 Apr 2019 12:10:49 +0200
|
||||
Subject: embedded_message_subject
|
||||
Message-ID: <AC39946EBF5C034B87BABD5343E96979012671D40E38@VM002.cerk.cc>
|
||||
Accept-Language: pl-PL, nl-NL
|
||||
Content-Language: pl-PL
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="_005_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_"
|
||||
MIME-Version: 1.0
|
||||
|
||||
--_005_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_
|
||||
Content-Type: multipart/alternative;
|
||||
boundary="_000_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_"
|
||||
|
||||
--_000_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_
|
||||
Content-Type: text/plain; charset="iso-8859-2"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
some txt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--_000_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_
|
||||
Content-Type: text/html; charset="iso-8859-2"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
<html>
|
||||
<p>some txt</p>
|
||||
</html>
|
||||
|
||||
--_000_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_--
|
||||
|
||||
--_005_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_
|
||||
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;
|
||||
name="file1.xlsx"
|
||||
Content-Description: file1.xlsx
|
||||
Content-Disposition: attachment; filename="file1.xlsx"; size=29;
|
||||
creation-date="Fri, 05 Apr 2019 10:06:01 GMT";
|
||||
modification-date="Fri, 05 Apr 2019 10:10:49 GMT"
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
IHRoaXMgaXMgY29udGVudCBvZiB0ZXN0IGZpbGU=
|
||||
|
||||
--_005_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_
|
||||
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;
|
||||
name="file2.xlsx"
|
||||
Content-Description: file2
|
||||
Content-Disposition: attachment; filename="file2.xlsx"; size=29;
|
||||
creation-date="Fri, 05 Apr 2019 10:10:19 GMT";
|
||||
modification-date="Wed, 03 Apr 2019 11:04:32 GMT"
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
IHRoaXMgaXMgY29udGVudCBvZiB0ZXN0IGZpbGU=
|
||||
|
||||
--_005_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_--
|
||||
141
plugins/vendor/webklex/php-imap/tests/messages/embedded_email_without_content_disposition.eml
vendored
Normal file
141
plugins/vendor/webklex/php-imap/tests/messages/embedded_email_without_content_disposition.eml
vendored
Normal file
@@ -0,0 +1,141 @@
|
||||
Return-Path: demo@cerstor.cz
|
||||
Received: from webmail.my-office.cz (localhost [127.0.0.1])
|
||||
by keira.cofis.cz
|
||||
; Fri, 29 Jan 2016 14:25:40 +0100
|
||||
From: demo@cerstor.cz
|
||||
To: demo@cerstor.cz
|
||||
Date: Fri, 5 Apr 2019 13:48:50 +0200
|
||||
Subject: Subject
|
||||
Message-ID: <AC39946EBF5C034B87BABD5343E96979012671D9F7E4@VM002.cerk.cc>
|
||||
Accept-Language: pl-PL, nl-NL
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="_008_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_"
|
||||
MIME-Version: 1.0
|
||||
|
||||
--_008_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_
|
||||
Content-Type: multipart/related;
|
||||
boundary="_007_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_";
|
||||
type="multipart/alternative"
|
||||
|
||||
--_007_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_
|
||||
Content-Type: multipart/alternative;
|
||||
boundary="_000_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_"
|
||||
|
||||
--_000_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_
|
||||
Content-Type: text/plain; charset="iso-8859-2"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
TexT
|
||||
|
||||
[cid:file.jpg]
|
||||
|
||||
--_000_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_
|
||||
Content-Type: text/html; charset="iso-8859-2"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
<html><p>TexT</p></html>=
|
||||
|
||||
--_000_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_--
|
||||
|
||||
--_007_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_
|
||||
Content-Type: image/jpeg; name=
|
||||
"file.jpg"
|
||||
Content-Description: file.jpg
|
||||
Content-Disposition: inline; filename=
|
||||
"file.jpg";
|
||||
size=54558; creation-date="Fri, 05 Apr 2019 11:48:58 GMT";
|
||||
modification-date="Fri, 05 Apr 2019 11:48:58 GMT"
|
||||
Content-ID: <file.jpg>
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==
|
||||
|
||||
--_007_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_--
|
||||
|
||||
--_008_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_
|
||||
Content-Type: message/rfc822
|
||||
|
||||
Received: from webmail.my-office.cz (localhost [127.0.0.1])
|
||||
by keira.cofis.cz
|
||||
; Fri, 29 Jan 2016 14:25:40 +0100
|
||||
From: demo@cerstor.cz
|
||||
To: demo@cerstor.cz
|
||||
Date: Fri, 5 Apr 2019 12:10:49 +0200
|
||||
Subject: embedded_message_subject
|
||||
Message-ID: <AC39946EBF5C034B87BABD5343E96979012671D40E38@VM002.cerk.cc>
|
||||
Accept-Language: pl-PL, nl-NL
|
||||
Content-Language: pl-PL
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="_005_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_"
|
||||
MIME-Version: 1.0
|
||||
|
||||
--_005_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_
|
||||
Content-Type: multipart/alternative;
|
||||
boundary="_000_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_"
|
||||
|
||||
--_000_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_
|
||||
Content-Type: text/plain; charset="iso-8859-2"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
some txt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--_000_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_
|
||||
Content-Type: text/html; charset="iso-8859-2"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
<html>
|
||||
<p>some txt</p>
|
||||
</html>
|
||||
|
||||
--_000_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_--
|
||||
|
||||
--_005_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_
|
||||
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;
|
||||
name="file1.xlsx"
|
||||
Content-Description: file1.xlsx
|
||||
Content-Disposition: attachment; filename="file1.xlsx"; size=29;
|
||||
creation-date="Fri, 05 Apr 2019 10:06:01 GMT";
|
||||
modification-date="Fri, 05 Apr 2019 10:10:49 GMT"
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
IHRoaXMgaXMgY29udGVudCBvZiB0ZXN0IGZpbGU=
|
||||
|
||||
--_005_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_
|
||||
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;
|
||||
name="file2.xlsx"
|
||||
Content-Description: file2
|
||||
Content-Disposition: attachment; filename="file2.xlsx"; size=29;
|
||||
creation-date="Fri, 05 Apr 2019 10:10:19 GMT";
|
||||
modification-date="Wed, 03 Apr 2019 11:04:32 GMT"
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
IHRoaXMgaXMgY29udGVudCBvZiB0ZXN0IGZpbGU=
|
||||
|
||||
--_005_AC39946EBF5C034B87BABD5343E96979012671D40E38VM002emonsn_--
|
||||
|
||||
--_008_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_
|
||||
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;
|
||||
name="file3.xlsx"
|
||||
Content-Description: file3.xlsx
|
||||
Content-Disposition: attachment; filename="file3.xlsx";
|
||||
size=90672; creation-date="Fri, 05 Apr 2019 11:46:30 GMT";
|
||||
modification-date="Thu, 28 Mar 2019 08:07:58 GMT"
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
IHRoaXMgaXMgY29udGVudCBvZiB0ZXN0IGZpbGU=
|
||||
|
||||
--_008_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_
|
||||
Content-Type: application/x-zip-compressed; name="file4.zip"
|
||||
Content-Description: file4.zip
|
||||
Content-Disposition: attachment; filename="file4.zip"; size=29;
|
||||
creation-date="Fri, 05 Apr 2019 11:48:45 GMT";
|
||||
modification-date="Fri, 05 Apr 2019 11:35:24 GMT"
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
IHRoaXMgaXMgY29udGVudCBvZiB0ZXN0IGZpbGU=
|
||||
|
||||
--_008_AC39946EBF5C034B87BABD5343E96979012671D9F7E4VM002emonsn_--
|
||||
56
plugins/vendor/webklex/php-imap/tests/messages/example_attachment.eml
vendored
Normal file
56
plugins/vendor/webklex/php-imap/tests/messages/example_attachment.eml
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
Return-Path: <someone@domain.tld>
|
||||
Delivered-To: <someone@domain.tld>
|
||||
Received: from mx.domain.tld
|
||||
by localhost (Dovecot) with LMTP id T7mwLn3ddlvKWwAA0J78UA
|
||||
for <someone@domain.tld>; Fri, 17 Aug 2018 16:36:45 +0200
|
||||
Received: from localhost (localhost [127.0.0.1])
|
||||
by mx.domain.tld (Postfix) with ESMTP id B642913BA0BE2
|
||||
for <someone@domain.tld>; Fri, 17 Aug 2018 16:36:45 +0200 (CEST)
|
||||
X-Virus-Scanned: Debian amavisd-new at mx.domain.tld
|
||||
X-Spam-Flag: NO
|
||||
X-Spam-Score: 1.103
|
||||
X-Spam-Level: *
|
||||
X-Spam-Status: No, score=1.103 required=6.31 tests=[ALL_TRUSTED=-1,
|
||||
OBFU_TEXT_ATTACH=1, TRACKER_ID=1.102, TVD_SPACE_RATIO=0.001]
|
||||
autolearn=no autolearn_force=no
|
||||
Received: from mx.domain.tld ([127.0.0.1])
|
||||
by localhost (mx.domain.tld [127.0.0.1]) (amavisd-new, port 10024)
|
||||
with ESMTP id L8E9vyX80d44 for <someone@domain.tld>;
|
||||
Fri, 17 Aug 2018 16:36:39 +0200 (CEST)
|
||||
Received: from [127.0.0.1] (ip.dynamic.domain.tld [192.168.0.24])
|
||||
(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
|
||||
(No client certificate requested)
|
||||
by mx.domain.tld (Postfix) with ESMTPSA id EF01E13BA0BD7
|
||||
for <someone@domain.tld>; Fri, 17 Aug 2018 16:36:38 +0200 (CEST)
|
||||
Sender: testsender <someone@domain.tld>
|
||||
Message-ID: <d3a5e91963cb805cee975687d5acb1c6@swift.generated>
|
||||
Date: Fri, 17 Aug 2018 14:36:24 +0000
|
||||
Subject: ogqMVHhz7swLaq2PfSWsZj0k99w8wtMbrb4RuHdNg53i76B7icIIM0zIWpwGFtnk
|
||||
From: testfrom <someone@domain.tld>
|
||||
Reply-To: testreply_to <someone@domain.tld>
|
||||
To: testnameto <someone@domain.tld>
|
||||
Cc: testnamecc <someone@domain.tld>
|
||||
MIME-Version: 1.0
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="_=_swift_v4_1534516584_32c032a3715d2dfd5cd84c26f84dba8d_=_"
|
||||
X-Priority: 1 (Highest)
|
||||
|
||||
|
||||
|
||||
|
||||
--_=_swift_v4_1534516584_32c032a3715d2dfd5cd84c26f84dba8d_=_
|
||||
Content-Type: text/plain; charset=utf-8
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
n1IaXFkbeqKyg4lYToaJ3u1Ond2EDrN3UWuiLFNjOLJEAabSYagYQaOHtV5QDlZE
|
||||
|
||||
--_=_swift_v4_1534516584_32c032a3715d2dfd5cd84c26f84dba8d_=_
|
||||
Content-Type: application/octet-stream; name=6mfFxiU5Yhv9WYJx.txt
|
||||
Content-Transfer-Encoding: base64
|
||||
Content-Disposition: attachment; filename=6mfFxiU5Yhv9WYJx.txt
|
||||
|
||||
em5rNTUxTVAzVFAzV1BwOUtsMWduTEVycldFZ2tKRkF0dmFLcWtUZ3JrM2RLSThkWDM4WVQ4QmFW
|
||||
eFJjT0VSTg==
|
||||
|
||||
--_=_swift_v4_1534516584_32c032a3715d2dfd5cd84c26f84dba8d_=_--
|
||||
|
||||
96
plugins/vendor/webklex/php-imap/tests/messages/example_bounce.eml
vendored
Normal file
96
plugins/vendor/webklex/php-imap/tests/messages/example_bounce.eml
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
Return-Path: <>
|
||||
Received: from somewhere.your-server.de
|
||||
by somewhere.your-server.de with LMTP
|
||||
id 3TP8LrElAGSOaAAAmBr1xw
|
||||
(envelope-from <>); Thu, 02 Mar 2023 05:27:29 +0100
|
||||
Envelope-to: demo@foo.de
|
||||
Delivery-date: Thu, 02 Mar 2023 05:27:29 +0100
|
||||
Authentication-Results: somewhere.your-server.de;
|
||||
iprev=pass (somewhere06.your-server.de) smtp.remote-ip=1b21:2f8:e0a:50e4::2;
|
||||
spf=none smtp.mailfrom=<>;
|
||||
dmarc=skipped
|
||||
Received: from somewhere06.your-server.de ([1b21:2f8:e0a:50e4::2])
|
||||
by somewhere.your-server.de with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384
|
||||
(Exim 4.94.2)
|
||||
id 1pXaXR-0006xQ-BN
|
||||
for demo@foo.de; Thu, 02 Mar 2023 05:27:29 +0100
|
||||
Received: from [192.168.0.10] (helo=sslproxy01.your-server.de)
|
||||
by somewhere06.your-server.de with esmtps (TLSv1.3:TLS_AES_256_GCM_SHA384:256)
|
||||
(Exim 4.92)
|
||||
id 1pXaXO-000LYP-9R
|
||||
for demo@foo.de; Thu, 02 Mar 2023 05:27:26 +0100
|
||||
Received: from localhost ([127.0.0.1] helo=sslproxy01.your-server.de)
|
||||
by sslproxy01.your-server.de with esmtps (TLSv1.3:TLS_AES_256_GCM_SHA384:256)
|
||||
(Exim 4.92)
|
||||
id 1pXaXO-0008gy-7x
|
||||
for demo@foo.de; Thu, 02 Mar 2023 05:27:26 +0100
|
||||
Received: from Debian-exim by sslproxy01.your-server.de with local (Exim 4.92)
|
||||
id 1pXaXO-0008gb-6g
|
||||
for demo@foo.de; Thu, 02 Mar 2023 05:27:26 +0100
|
||||
X-Failed-Recipients: ding@ding.de
|
||||
Auto-Submitted: auto-replied
|
||||
From: Mail Delivery System <Mailer-Daemon@sslproxy01.your-server.de>
|
||||
To: demo@foo.de
|
||||
Content-Type: multipart/report; report-type=delivery-status; boundary=1677731246-eximdsn-678287796
|
||||
MIME-Version: 1.0
|
||||
Subject: Mail delivery failed
|
||||
Message-Id: <E1pXaXO-0008gb-6g@sslproxy01.your-server.de>
|
||||
Date: Thu, 02 Mar 2023 05:27:26 +0100
|
||||
X-Virus-Scanned: Clear (ClamAV 0.103.8/26827/Wed Mar 1 09:28:49 2023)
|
||||
X-Spam-Score: 0.0 (/)
|
||||
Delivered-To: bar-demo@foo.de
|
||||
|
||||
--1677731246-eximdsn-678287796
|
||||
Content-type: text/plain; charset=us-ascii
|
||||
|
||||
This message was created automatically by mail delivery software.
|
||||
|
||||
A message sent by
|
||||
|
||||
<info@foo.de>
|
||||
|
||||
could not be delivered to one or more of its recipients. The following
|
||||
address(es) failed:
|
||||
|
||||
ding@ding.de
|
||||
host 36.143.65.153 [36.143.65.153]
|
||||
SMTP error from remote mail server after pipelined end of data:
|
||||
550-Verification failed for <info@foo.de>
|
||||
550-Unrouteable address
|
||||
550 Sender verify failed
|
||||
|
||||
--1677731246-eximdsn-678287796
|
||||
Content-type: message/delivery-status
|
||||
|
||||
Reporting-MTA: dns; sslproxy01.your-server.de
|
||||
|
||||
Action: failed
|
||||
Final-Recipient: rfc822;ding@ding.de
|
||||
Status: 5.0.0
|
||||
Remote-MTA: dns; 36.143.65.153
|
||||
Diagnostic-Code: smtp; 550-Verification failed for <info@foo.de>
|
||||
550-Unrouteable address
|
||||
550 Sender verify failed
|
||||
|
||||
--1677731246-eximdsn-678287796
|
||||
Content-type: message/rfc822
|
||||
|
||||
Return-path: <info@foo.de>
|
||||
Received: from [31.18.107.47] (helo=127.0.0.1)
|
||||
by sslproxy01.your-server.de with esmtpsa (TLSv1.3:TLS_AES_256_GCM_SHA384:256)
|
||||
(Exim 4.92)
|
||||
(envelope-from <info@foo.de>)
|
||||
id 1pXaXO-0008eK-11
|
||||
for ding@ding.de; Thu, 02 Mar 2023 05:27:26 +0100
|
||||
Date: Thu, 2 Mar 2023 05:27:25 +0100
|
||||
To: ding <ding@ding.de>
|
||||
From: =?iso-8859-1?Q?S=C3=BCderbar_Foo_=28SI=29_GmbH?= <info@foo.de>
|
||||
Subject: Test
|
||||
Message-ID: <UyVznI5nOyYGnv7Ij0hi6ro4gvxwGT999eQAtc4o@127.0.0.1>
|
||||
X-Mailer: PHPMailer 6.7.1 (https://github.com/PHPMailer/PHPMailer)
|
||||
Return-Path: bounce@foo.de
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/html; charset=iso-8859-1
|
||||
X-Authenticated-Sender: demo@foo.de
|
||||
|
||||
<div class="some_class"><strong>Hallo</strong>, <i>dies</i> ist ein Beispiel-Text.</div>
|
||||
69
plugins/vendor/webklex/php-imap/tests/messages/four_nested_emails.eml
vendored
Normal file
69
plugins/vendor/webklex/php-imap/tests/messages/four_nested_emails.eml
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
To: test@example.com
|
||||
From: test@example.com
|
||||
Subject: 3-third-subject
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="------------2E5D78A17C812FEFF825F7D5"
|
||||
|
||||
This is a multi-part message in MIME format.
|
||||
--------------2E5D78A17C812FEFF825F7D5
|
||||
Content-Type: text/plain; charset=iso-8859-15; format=flowed
|
||||
Content-Transfer-Encoding: 7bit
|
||||
|
||||
3-third-content
|
||||
--------------2E5D78A17C812FEFF825F7D5
|
||||
Content-Type: message/rfc822;
|
||||
name="2-second-email.eml"
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Disposition: attachment;
|
||||
filename="2-second-email.eml"
|
||||
|
||||
To: test@example.com
|
||||
From: test@example.com
|
||||
Subject: 2-second-subject
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="------------9919377E37A03209B057D47F"
|
||||
|
||||
This is a multi-part message in MIME format.
|
||||
--------------9919377E37A03209B057D47F
|
||||
Content-Type: text/plain; charset=iso-8859-15; format=flowed
|
||||
Content-Transfer-Encoding: 7bit
|
||||
|
||||
2-second-content
|
||||
--------------9919377E37A03209B057D47F
|
||||
Content-Type: message/rfc822;
|
||||
name="1-first-email.eml"
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Disposition: attachment;
|
||||
filename="1-first-email.eml"
|
||||
|
||||
To: test@example.com
|
||||
From: test@example.com
|
||||
Subject: 1-first-subject
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="------------0919377E37A03209B057D47A"
|
||||
|
||||
This is a multi-part message in MIME format.
|
||||
--------------0919377E37A03209B057D47A
|
||||
Content-Type: text/plain; charset=iso-8859-15; format=flowed
|
||||
Content-Transfer-Encoding: 7bit
|
||||
|
||||
1-first-content
|
||||
--------------0919377E37A03209B057D47A
|
||||
Content-Type: message/rfc822;
|
||||
name="0-zero-email.eml"
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Content-Disposition: attachment;
|
||||
filename="0-zero-email.eml"
|
||||
|
||||
To: test@example.com
|
||||
From: test@example.com
|
||||
Subject: 0-zero-subject
|
||||
Content-Type: text/plain; charset=iso-8859-15; format=flowed
|
||||
Content-Transfer-Encoding: 7bit
|
||||
|
||||
0-zero-content
|
||||
--------------0919377E37A03209B057D47A--
|
||||
|
||||
--------------9919377E37A03209B057D47F--
|
||||
|
||||
--------------2E5D78A17C812FEFF825F7D5--
|
||||
9
plugins/vendor/webklex/php-imap/tests/messages/gbk_charset.eml
vendored
Normal file
9
plugins/vendor/webklex/php-imap/tests/messages/gbk_charset.eml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
From: from@there.com
|
||||
To: to@here.com
|
||||
Subject: Nuu
|
||||
Date: Wed, 13 Sep 2017 13:05:45 +0200
|
||||
Content-Type: text/plain;
|
||||
charset="X-GBK"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
Hi
|
||||
9
plugins/vendor/webklex/php-imap/tests/messages/html_only.eml
vendored
Normal file
9
plugins/vendor/webklex/php-imap/tests/messages/html_only.eml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
From: from@there.com
|
||||
To: to@here.com
|
||||
Subject: Nuu
|
||||
Date: Wed, 13 Sep 2017 13:05:45 +0200
|
||||
Content-Type: text/html;
|
||||
charset="us-ascii"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
<html><body>Hi</body></html>
|
||||
9
plugins/vendor/webklex/php-imap/tests/messages/imap_mime_header_decode_returns_false.eml
vendored
Normal file
9
plugins/vendor/webklex/php-imap/tests/messages/imap_mime_header_decode_returns_false.eml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
From: from@there.com
|
||||
To: to@here.com
|
||||
Subject: =?UTF-8?B?nnDusSNdG92w6Fuw61fMjAxOF8wMy0xMzMyNTMzMTkzLnBkZg==?=
|
||||
Date: Wed, 13 Sep 2017 13:05:45 +0200
|
||||
Content-Type: text/plain;
|
||||
charset="us-ascii"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
Hi
|
||||
41
plugins/vendor/webklex/php-imap/tests/messages/inline_attachment.eml
vendored
Normal file
41
plugins/vendor/webklex/php-imap/tests/messages/inline_attachment.eml
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="----=_Part_1114403_1160068121.1505882828080"
|
||||
|
||||
------=_Part_1114403_1160068121.1505882828080
|
||||
Content-Type: multipart/related;
|
||||
boundary="----=_Part_1114404_576719783.1505882828080"
|
||||
|
||||
------=_Part_1114404_576719783.1505882828080
|
||||
Content-Type: text/html;charset=UTF-8
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
<img style=3D"height: auto;" src=3D"cid:ii_15f0aad691bb745f" border=3D"0"/>
|
||||
------=_Part_1114404_576719783.1505882828080
|
||||
Content-Type: image/png
|
||||
Content-Disposition: inline
|
||||
Content-Transfer-Encoding: base64
|
||||
Content-ID: <ii_15f0aad691bb745f>
|
||||
|
||||
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAB+FBMVEUAAAA/mUPidDHiLi5Cn0Xk
|
||||
NTPmeUrkdUg/m0Q0pEfcpSbwaVdKskg+lUP4zA/iLi3msSHkOjVAmETdJSjtYFE/lkPnRj3sWUs8
|
||||
kkLeqCVIq0fxvhXqUkbVmSjwa1n1yBLepyX1xxP0xRXqUkboST9KukpHpUbuvRrzrhF/ljbwalju
|
||||
ZFM4jELaoSdLtElJrUj1xxP6zwzfqSU4i0HYnydMtUlIqUfywxb60AxZqEXaoifgMCXptR9MtklH
|
||||
pEY2iUHWnSjvvRr70QujkC+pUC/90glMuEnlOjVMt0j70QriLS1LtEnnRj3qUUXfIidOjsxAhcZF
|
||||
o0bjNDH0xxNLr0dIrUdmntVTkMoyfL8jcLBRuErhJyrgKyb4zA/5zg3tYFBBmUTmQTnhMinruBzv
|
||||
vhnxwxZ/st+Ktt5zp9hqota2vtK6y9FemNBblc9HiMiTtMbFtsM6gcPV2r6dwroseLrMrbQrdLGd
|
||||
yKoobKbo3Zh+ynrgVllZulTsXE3rV0pIqUf42UVUo0JyjEHoS0HmsiHRGR/lmRz/1hjqnxjvpRWf
|
||||
wtOhusaz0LRGf7FEfbDVmqHXlJeW0pbXq5bec3fX0nTnzmuJuWvhoFFhm0FtrziBsjaAaDCYWC+u
|
||||
Si6jQS3FsSfLJiTirCOkuCG1KiG+wSC+GBvgyhTszQ64Z77KAAAARXRSTlMAIQRDLyUgCwsE6ebm
|
||||
5ubg2dLR0byXl4FDQzU1NDEuLSUgC+vr6urq6ubb29vb2tra2tG8vLu7u7uXl5eXgYGBgYGBLiUA
|
||||
LabIAAABsElEQVQoz12S9VPjQBxHt8VaOA6HE+AOzv1wd7pJk5I2adpCC7RUcHd3d3fXf5PvLkxh
|
||||
eD++z+yb7GSRlwD/+Hj/APQCZWxM5M+goF+RMbHK594v+tPoiN1uHxkt+xzt9+R9wnRTZZQpXQ0T
|
||||
5uP1IQxToyOAZiQu5HEpjeA4SWIoksRxNiGC1tRZJ4LNxgHgnU5nJZBDvuDdl8lzQRBsQ+s9PZt7
|
||||
s7Pz8wsL39/DkIfZ4xlB2Gqsq62ta9oxVlVrNZpihFRpGO9fzQw1ms0NDWZz07iGkJmIFH8xxkc3
|
||||
a/WWlubmFkv9AB2SEpDvKxbjidN2faseaNV3zoHXvv7wMODJdkOHAegweAfFPx4G67KluxzottCU
|
||||
9n8CUqXzcIQdXOytAHqXxomvykhEKN9EFutG22p//0rbNvHVxiJywa8yS2KDfV1dfbu31H8jF1RH
|
||||
iTKtWYeHxUvq3bn0pyjCRaiRU6aDO+gb3aEfEeVNsDgm8zzLy9egPa7Qt8TSJdwhjplk06HH43ZN
|
||||
J3s91KKCHQ5x4sw1fRGYDZ0n1L4FKb9/BP5JLYxToheoFCVxz57PPS8UhhEpLBVeAAAAAElFTkSu
|
||||
QmCC
|
||||
------=_Part_1114404_576719783.1505882828080--
|
||||
|
||||
------=_Part_1114403_1160068121.1505882828080--
|
||||
123
plugins/vendor/webklex/php-imap/tests/messages/issue-275-2.eml
vendored
Normal file
123
plugins/vendor/webklex/php-imap/tests/messages/issue-275-2.eml
vendored
Normal file
@@ -0,0 +1,123 @@
|
||||
Received: from AS4PR02MB8234.eurprd02.prod.outlook.com (2603:10a6:20b:4f1::17)
|
||||
by PA4PR02MB7071.eurprd02.prod.outlook.com with HTTPS; Wed, 18 Jan 2023
|
||||
09:17:10 +0000
|
||||
Received: from AS1PR02MB7917.eurprd02.prod.outlook.com (2603:10a6:20b:4a5::5)
|
||||
by AS4PR02MB8234.eurprd02.prod.outlook.com (2603:10a6:20b:4f1::17) with
|
||||
Microsoft SMTP Server (version=TLS1_2,
|
||||
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.19; Wed, 18 Jan
|
||||
2023 09:17:09 +0000
|
||||
Received: from AS1PR02MB7917.eurprd02.prod.outlook.com
|
||||
([fe80::4871:bdde:a499:c0d9]) by AS1PR02MB7917.eurprd02.prod.outlook.com
|
||||
([fe80::4871:bdde:a499:c0d9%9]) with mapi id 15.20.5986.023; Wed, 18 Jan 2023
|
||||
09:17:09 +0000
|
||||
From: =?iso-8859-1?Q?Martin_B=FClow_Larsen?= <xxxxx@feline.dk>
|
||||
To: Cofman Drift <xxxxxxxxx@cofman.com>
|
||||
Subject: Test 1017
|
||||
Thread-Topic: Test 1017
|
||||
Thread-Index: AdkrHaKsy+bUiL/eTIS5W3AP+zzLjQ==
|
||||
Date: Wed, 18 Jan 2023 09:17:09 +0000
|
||||
Message-ID:
|
||||
<AS1PR02MB791721260DE0273A15AFEC3EB5C79@AS1PR02MB7917.eurprd02.prod.outlook.com>
|
||||
Accept-Language: da-DK, en-US
|
||||
Content-Language: en-US
|
||||
X-MS-Exchange-Organization-AuthAs: Internal
|
||||
X-MS-Exchange-Organization-AuthMechanism: 04
|
||||
X-MS-Exchange-Organization-AuthSource: AS1PR02MB7917.eurprd02.prod.outlook.com
|
||||
X-MS-Has-Attach:
|
||||
X-MS-Exchange-Organization-Network-Message-Id:
|
||||
98cea1c9-a497-454a-6606-08daf934c6c4
|
||||
X-MS-Exchange-Organization-SCL: -1
|
||||
X-MS-TNEF-Correlator:
|
||||
X-MS-Exchange-Organization-RecordReviewCfmType: 0
|
||||
x-ms-publictraffictype: Email
|
||||
X-Microsoft-Antispam-Mailbox-Delivery:
|
||||
ucf:0;jmr:0;auth:0;dest:I;ENG:(910001)(944506478)(944626604)(920097)(425001)(930097);
|
||||
X-Microsoft-Antispam-Message-Info:
|
||||
BzqL6hvPyQW0lSkWGop6vQlsIZK48umY74vuKlNgF0pb/H659W+0fuTB+6guqGM0oof00mlzu3gn1pu1R5pUOE2Fb58OqnBEFkB30vVrG6TNsG/6KBtecXkP3FptqO/WRmsxCQx7bK7J2VyS2SbOibqX8mDZhkTrwP1+IA0R9eD0/NvoMqX9GssewUDxSAbaaKdADCuU1dG7qpF8M9tfLDJz+dUL5qZoO+oGINGLLdo2y6Z/F+h3UWv7BXiS4BJKc+jwAng26BUMKmg2VVRdMvc+LbZTovUr9hyEq1orS9fOg1iIV6sPcyIVl3NIEy5bHMYh1d6sUCqvTO1UPSdf7lIvKxSszyKptIPNgioOvFpF9tTHDyKU5p1IiLm5FxW/+kGdPq6ZoTIZVriJoyjx6gWKpPY3vHN6bHUK9mA+LspIYAeuDFFvwkZx2b2Rtw3S99S7zz3eBqv3xlGqJixx/apl4Af7ZaxKFpMj9XZXAQVIv9BA0tIA+1nLByt4dPW4Xzoj3KcBbX5K/HkuR/30Lrq7gRQQDyNYgf5S/MO2MLJqcvnVFPXgVubK6XFu5quDibsZjPjxOUfBTJkJ/n4gB8Z8/TOM0oKD76hszXXoaWd9leUeQ1x88oy+QuXPRxzuLzVec3GiPNMYA42QvvTiWmrrhdceRzhV0J7pJBbi10ik+hXqSeNkldgktd5cWPss5F74yxAaEaPJO9I7MOUpE0XzlRfljPptykrIQt8SARMllykzJNrDt8VAl37ArEZbWxFLm3RuypOI0zgCZMRLf5JeElpCv1ay4wilz4vsYGr4fs3KUQzI1YY43uaDxNMz8k7dH/UkC9Dfg1oyHlNs+w==
|
||||
Content-Type: multipart/alternative;
|
||||
boundary="_000_AS1PR02MB791721260DE0273A15AFEC3EB5C79AS1PR02MB7917eurp_"
|
||||
MIME-Version: 1.0
|
||||
|
||||
--_000_AS1PR02MB791721260DE0273A15AFEC3EB5C79AS1PR02MB7917eurp_
|
||||
Content-Type: text/plain; charset="iso-8859-1"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
Test
|
||||
|
||||
Med venlig hilsen
|
||||
Martin Larsen
|
||||
Feline Holidays A/S
|
||||
Tlf 78 77 04 12
|
||||
|
||||
|
||||
|
||||
--_000_AS1PR02MB791721260DE0273A15AFEC3EB5C79AS1PR02MB7917eurp_
|
||||
Content-Type: text/html; charset="iso-8859-1"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
|
||||
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
|
||||
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
|
||||
//www.w3.org/TR/REC-html40">
|
||||
<head>
|
||||
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
|
||||
1">
|
||||
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
|
||||
<style><!--
|
||||
/* Font Definitions */
|
||||
@font-face
|
||||
{font-family:"Cambria Math";
|
||||
panose-1:2 4 5 3 5 4 6 3 2 4;}
|
||||
@font-face
|
||||
{font-family:Calibri;
|
||||
panose-1:2 15 5 2 2 2 4 3 2 4;}
|
||||
@font-face
|
||||
{font-family:"Lucida Console";
|
||||
panose-1:2 11 6 9 4 5 4 2 2 4;}
|
||||
/* Style Definitions */
|
||||
p.MsoNormal, li.MsoNormal, div.MsoNormal
|
||||
{margin:0cm;
|
||||
font-size:11.0pt;
|
||||
font-family:"Calibri",sans-serif;
|
||||
mso-fareast-language:EN-US;}
|
||||
span.EmailStyle18
|
||||
{mso-style-type:personal-compose;
|
||||
font-family:"Calibri",sans-serif;
|
||||
color:windowtext;}
|
||||
.MsoChpDefault
|
||||
{mso-style-type:export-only;
|
||||
font-family:"Calibri",sans-serif;
|
||||
mso-fareast-language:EN-US;}
|
||||
@page WordSection1
|
||||
{size:612.0pt 792.0pt;
|
||||
margin:3.0cm 2.0cm 3.0cm 2.0cm;}
|
||||
div.WordSection1
|
||||
{page:WordSection1;}
|
||||
--></style><!--[if gte mso 9]><xml>
|
||||
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
|
||||
</xml><![endif]--><!--[if gte mso 9]><xml>
|
||||
<o:shapelayout v:ext=3D"edit">
|
||||
<o:idmap v:ext=3D"edit" data=3D"1" />
|
||||
</o:shapelayout></xml><![endif]-->
|
||||
</head>
|
||||
<body lang=3D"DA" link=3D"#0563C1" vlink=3D"#954F72" style=3D"word-wrap:bre=
|
||||
ak-word">
|
||||
<div class=3D"WordSection1">
|
||||
<p class=3D"MsoNormal">Test<o:p></o:p></p>
|
||||
<p class=3D"MsoNormal"><o:p> </o:p></p>
|
||||
<p class=3D"MsoNormal"><span style=3D"color:black;mso-fareast-language:DA">=
|
||||
Med venlig hilsen<o:p></o:p></span></p>
|
||||
<p class=3D"MsoNormal"><b><span style=3D"color:red;mso-fareast-language:DA"=
|
||||
>Martin Larsen<o:p></o:p></span></b></p>
|
||||
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:black;mso-fareas=
|
||||
t-language:DA">Feline Holidays A/S<o:p></o:p></span></p>
|
||||
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"color:black;mso-fareas=
|
||||
t-language:DA">Tlf 78 77 04 12<o:p></o:p></span></p>
|
||||
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"mso-fareast-language:D=
|
||||
A"><o:p> </o:p></span></p>
|
||||
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p> </o:p></span></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
--_000_AS1PR02MB791721260DE0273A15AFEC3EB5C79AS1PR02MB7917eurp_--
|
||||
208
plugins/vendor/webklex/php-imap/tests/messages/issue-275.eml
vendored
Normal file
208
plugins/vendor/webklex/php-imap/tests/messages/issue-275.eml
vendored
Normal file
@@ -0,0 +1,208 @@
|
||||
Received: from FR0P281MB2649.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:50::12)
|
||||
by BEZP281MB2374.DEUP281.PROD.OUTLOOK.COM with HTTPS; Tue, 17 Jan 2023
|
||||
09:25:19 +0000
|
||||
Received: from DB6P191CA0002.EURP191.PROD.OUTLOOK.COM (2603:10a6:6:28::12) by
|
||||
FR0P281MB2649.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:50::12) with Microsoft
|
||||
SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
|
||||
15.20.5986.23; Tue, 17 Jan 2023 09:25:18 +0000
|
||||
Received: from DB5EUR02FT011.eop-EUR02.prod.protection.outlook.com
|
||||
(2603:10a6:6:28:cafe::3b) by DB6P191CA0002.outlook.office365.com
|
||||
(2603:10a6:6:28::12) with Microsoft SMTP Server (version=TLS1_2,
|
||||
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.19 via Frontend
|
||||
Transport; Tue, 17 Jan 2023 09:25:18 +0000
|
||||
Authentication-Results: spf=pass (sender IP is 80.241.56.171)
|
||||
smtp.mailfrom=*****; dkim=pass (signature was verified)
|
||||
header.d=jankoppe.de;dmarc=pass action=none
|
||||
header.from=jankoppe.de;compauth=pass reason=100
|
||||
Received-SPF: Pass (protection.outlook.com: domain of **** designates
|
||||
80.241.56.171 as permitted sender) receiver=protection.outlook.com;
|
||||
client-ip=80.241.56.171; helo=mout-p-201.mailbox.org; pr=C
|
||||
Received: from ****
|
||||
DB5EUR02FT011.mail.protection.outlook.com (10.13.58.70) with Microsoft SMTP
|
||||
Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id
|
||||
15.20.6002.13 via Frontend Transport; Tue, 17 Jan 2023 09:25:18 +0000
|
||||
Received: from ****
|
||||
(***) with Microsoft SMTP Server (version=TLS1_2,
|
||||
cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.2375.34; Tue, 17
|
||||
Jan 2023 10:25:18 +0100
|
||||
Received: from *****
|
||||
(***) with Microsoft SMTP Server (version=TLS1_2,
|
||||
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.34; Tue, 17 Jan
|
||||
2023 10:25:16 +0100
|
||||
Received: from ****
|
||||
(***) with Microsoft SMTP Server (version=TLS1_2,
|
||||
cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.2375.34 via Frontend
|
||||
Transport; Tue, 17 Jan 2023 10:25:16 +0100
|
||||
Received: from *****
|
||||
(***) with Microsoft SMTP Server (version=TLS1_2,
|
||||
cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521) id 15.1.2375.34; Tue, 17
|
||||
Jan 2023 10:25:18 +0100
|
||||
IronPort-SDR: qF6UeVYj8pb73gXrskSNOtfmUEgr2JLTtqbIK+/6ymuIu+hw8DzzyKrOGqm7zNPwG/4zr+ma5y
|
||||
XERFv6Zyf/cxrWoVjWXswWrkCVjqQuHglLaONZt1Mg4okFzEByeEZsyg3/3n6kI4O+kgViBgLW
|
||||
nNMzGlNLSqYBX+EDhOfE1GEWB/4iRbwDY32SnTr5BYqR0HwgHf+0M0E3b23/NqV6iYrF3KETah
|
||||
cLtLRt/b5JY6f5KvmKoz0Y395r7MwryWR1eLKAU2j3w+ioNYBUw36K/hsIRojcquvQk9w3Qtfu
|
||||
Yz1BUNwOEOwfxr0VjQScHirO
|
||||
X-IRON-External-Mail-Tag: Extern
|
||||
X-IronPort-MID: 60840111
|
||||
X-IPAS-Result: =?us-ascii?q?A0G0CQCSaMZjmKs48VBaglqEBz5Fk0mfZoFqEw8BAQEBA?=
|
||||
=?us-ascii?q?QEBAQEJRAQBAQQDihcCJToEDQECBAEBAQEDAgMBAQEBBQEBAQQBAQECAQEGA?=
|
||||
=?us-ascii?q?wEBAQIQAQEBAQEBAQEVCRkFDhAFLw1XDV0LgUQLgXQLAzENgjgiggQsgXYnA?=
|
||||
=?us-ascii?q?QE4hE6DIwetVIEBgggBAQaCY5xECYFBi12ESYEhHD8BgU2EP4VPhXKaXIE7f?=
|
||||
=?us-ascii?q?IEnDoFIgSk3A0QdQAMLbQpANRZKKxobB4EJKigVAwQEAwIGEwMiAg0oMRQEK?=
|
||||
=?us-ascii?q?RMNJyZpCQIDImYDAwQoLQkgHwcmJDwHVj0CDx83BgMJAwIhToEgJAUDCxUqR?=
|
||||
=?us-ascii?q?wQINgUGUhICCA8SDyxDDkI3NBMGgQYLDhEDUIFOBIENfwpXxUKgLYIqgVChG?=
|
||||
=?us-ascii?q?oNmAZMikiGXS6gMgXwKFoFcTSQUgyJPAQIBAQENAQIBAQMBAgEBAQkBAQEBj?=
|
||||
=?us-ascii?q?jaEDIosQzE7AgcLAQEDCYwjAQE?=
|
||||
IronPort-PHdr: A9a23:3aIm3RBfYL78XRTcz0LxUyQUT0MY04WdBeb1wqQuh78GSKm/5ZOqZ
|
||||
BWZua8wygaRAM6CsKgMotGVmp6jcFRI2YyGvnEGfc4EfD4+ouJSoTYdBtWYA1bwNv/gYn9yN
|
||||
s1DUFh44yPzahANS47xaFLIv3K98yMZFAnhOgppPOT1HZPZg9iq2+yo9JDffQVFiCCgbb9uL
|
||||
Bi6ohjdu8cIjYB/Nqs/1xzFr2dHdOhR2W5mP0+YkQzm5se38p5j8iBQtOwk+sVdT6j0fLk2Q
|
||||
KJBAjg+PG87+MPktR/YTQuS/XQcSXkZkgBJAwfe8h73WIr6vzbguep83CmaOtD2TawxVD+/4
|
||||
apnVAPkhSEaPDM/7WrZiNF/jLhDrRyiuhJxw5Dab52aOvRwcazQZs8aSGhbU8pNSyBNHp+wY
|
||||
o0SBOQBJ+ZYqIz9qkMKoxSkAwmnGebhyjhQhn/uw6IxzuMsERnB3Aw7A9IDq3bUo8/zNKcRV
|
||||
uC11LHIwivZY/xLxzjw8Y7FeQ0urv+QR7x/a9bRyVUxGAPfiFWdsZDpMjKV2OkTvWWV7+RtW
|
||||
OOhhmMmqAx8oDuiy8Uih4fGh48Y1FPJ+Th4zYs6J9C0VFJ3bN64HZZftiyXKoR7Tt4kTmp1u
|
||||
yg60qULtJ2ncCQQ1pgqyAPTZ+aHfoWJ+B7vSeScLSp+iXl4YrywnQyy/lKlyuDkVsm7zlJKr
|
||||
i1dn9nJsXANygDT5tGfSvdk4EutxSuD2xrW6u5eIEA0kbHUK5kuw7IqkZoTq0vDEjf3mEXwk
|
||||
qCWal0p9+u05+j9fLnrqYKQO5V0hwz/KKgih86yDfkgPggLRWeb+OC81LP5/U3+RbVHluU2k
|
||||
q7CsJDGPskbpLS2AwlW0oYk8xa/Fymp3M4FknYZNF5FfgmIgJDzO17SOPD4Eeu/g1O0nTt23
|
||||
/zGJKHuAo3RLnjfl7fsZbJ960lTyAoyy9BT/olUCqwZIPLrXU/xrsDYAwQiPAyp2eboFc9y2
|
||||
poQWWKIGK+YPrndsUWV6e41PuaDetxdhDGoL/8q5virlmIhgVgHYYGjwIEbYTW2Ge55Kl+VJ
|
||||
3bh0fkbFmJfnAM4BM/tkEWPGWpLYG2ud6A14DI8EJqrS4vOENP+yIed1Tu2S8UFLltNDUqBR
|
||||
C+ASg==
|
||||
IronPort-Data: A9a23:VhC+4aKGZF33Q9F0FE+RvpMlxSXFcZb7ZxGr2PjKsXjdYENS1zBVm
|
||||
zYfDDuGOvjcMGT0etAkYN6x8kwD7MLQm9Q3G1ForCE8RH9jl5HIVI+TRqvSF3rJd5WcFiqLz
|
||||
Cm/hv3odp1coqr0/E/F3oAMLhCQ7InQLlbGILes1htZGEk1F0/NtTo5w7Ri2tcx3oDga++wk
|
||||
YqaT/P3aQfNNwFcbzp8B5Kr8HuDa9yr5Vv0FnRnDRx6lAe2e0s9VfrzFonoR5fMebS4K8bhL
|
||||
wr15ODjpz2Bp3/BPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9
|
||||
DlCnZWXSl0jF72Qo9YUcCEfFTpSP4Rt/KCSdBBTseTLp6HHW37r3ukrFARsZdRe/+92BWtJ5
|
||||
bofMj9lghKr17rwmu7iDLQywJ18daEHP6tH0p1k5SneFuoOQ5nFQKLS/dIe0DpYasVmQ66OO
|
||||
5JAMGMHgBLoWwRwMVsFObICo/qFn1bzdyRihGDOnP9ii4TU5Fcojeaxb4O9lsaxbcFSkUee4
|
||||
3nb53z+GA0yPsGFxTPA/HW2mebVkWX3Veov+KaQ8/l3nBiLgzZLUVsTXFq/q/6pzEmkVLqzN
|
||||
nD45AIniqto/mW7EuLPVj6A53ifkhw1cN5PRrhSBB629oLY5AOQB24hRzFHacA7uMJeeQHGx
|
||||
mNljPu0X2E06uT9pWa1r+zI9WroUcQABTVaDRLoWzfp9PHPjenfZDrlQ8xnEajdYjbdQGmpm
|
||||
mHiQMQWo7wVgYYh2r+//Favvt5Bjp3OUxJw/kCNBjvj6wp4YISid8qv81ezARd8wGSxEQXpU
|
||||
JsswZL2AAUy4XelyHzlrAIlQejB2hp9GGeA6WOD5rF4n9hXx1atfJpL/BZ1L1pzP8APdFfBO
|
||||
RGM4lMAv88JYiL6Ncebhr5d7ex0ncAM8vy6DpjpgiZmO/CdiSfcrH02DaJu9zmyziDAbp3Ty
|
||||
b/AKJvyUSlDYUiW5Dq7RuEZ3L4tgzsj3XvUX4yzwBGt0dKjiI29Ft843K+1Rrlhtsus+VyNm
|
||||
/4Gbpfi40gBDIXWP3eGmaZNdgpiBSZgWvjLRzl/K7TrzvxOQj9xUpc8ANoJJuRYokiivryZo
|
||||
S/lAxEGmAGXaL+uAVziV02PoYjHBf5XxU/X9wR1Vbpx83R8M4up8okFcJ47Iesu+OB5lKcmT
|
||||
fADeMKYGvkJRjmeo2YRapz0rYpDchW3hFvQYHP+PWViJsBtF17T59vpXgrz7y1SXCC5gs1v8
|
||||
bSv2zTSTYcHWwk/Xt3db+iizg3tsHVEwLByUkLEL8N9YkLp9IQ2eSX9guVuepMOIBPAwSOC2
|
||||
kCaDE5A9+XKpoY09vjPhLyF9tn2SrAjQxcDQWSCtOS4LyjX+Gan0LRsaufQcGCPTn7w9YWje
|
||||
f5Rk6P2PsoBzQRDvIdLGrp2yb4zuon0rLhAwwU6QHjGYgj5Cr5kJXXaj8BDurcXnO1cvhaqH
|
||||
1rKoIEDf7CAOcfvF05XIxAqN7zR2fYRkzjUzPI0PESjunAup+faDBwMMknekjFZIZt0LJghn
|
||||
bUrtvkQul62hRcdO9qbijxZqjaXJXsaXqR56pwXXN3xhgwwxg0QaJDQEHWsspSIdskJKgxwe
|
||||
mbSgaPDg75b1gzFaXVqTSrB2u9UhJIvvhFWzQZceA3Sx4eY36E6jE9L7DA6bgVJ1REbgeh9D
|
||||
W46ZUR6KJKH8ypsmMUeDXunHBtMBUPF90H8o7fTeLY1k6V1uqfxwKHR9ApDEI31M46RQ9SDw
|
||||
Iyl9Q==
|
||||
IronPort-HdrOrdr: A9a23:8y8NqqHssZLZ5JoIpLqE88eALOsnbusQ8zAXPidKKSC9E/b4qy
|
||||
nKpp4mPHDP+VUssR0b9uxoW5PwI080l6QZ3WB5B97LNzUO01HFEGgN1+Xf/wE=
|
||||
X-IronPort-Anti-Spam-Filtered: true
|
||||
X-IronPort-AV: E=Sophos;i="5.97,222,1669071600";
|
||||
d="scan'208";a="60840111"
|
||||
X-Amp-Result: SKIPPED(no attachment in message)
|
||||
Received: from mout-p-201.mailbox.org ([80.241.56.171])
|
||||
by maila.burda.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jan 2023 10:25:16 +0100
|
||||
Received: from smtp1.mailbox.org (smtp1.mailbox.org [10.196.197.1])
|
||||
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
|
||||
key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256)
|
||||
(No client certificate requested)
|
||||
by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4Nx3QJ6GdJz9sQp
|
||||
for <***>; Tue, 17 Jan 2023 10:25:12 +0100 (CET)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=****; s=MBO0001;
|
||||
t=1673947512;
|
||||
h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
|
||||
to:to:cc:mime-version:mime-version:content-type:content-type:
|
||||
content-transfer-encoding:content-transfer-encoding;
|
||||
bh=OMh+Pfp7SvIiDJjyXg53DevMPfaJRBhjQUkokwQIgDY=;
|
||||
b=m3nM2KPbJdO7D+Vq/fMLLCXpkeDgvLs/JRzGTzWO4OoQhSaXLp76/vkBGPCU7BSGxir2Fu
|
||||
g6e9Ggnrf0l8vL7rpvTgttta64wImaP9wOmJ0fOjzHcg/PX7sYjlUjyVyfThqZ7M5qg6/P
|
||||
E9wItt4lQoUeQRVc6EoUlUaL7S+2R4P2WsQ6HCjulmpC3fmZdPOTXph/a1YfGvSfSj0pjp
|
||||
LauH2n6EURKFmtMv8MbDcvTVKcq7o1bLGnK/RAjkLmRAORt+eC08IEAb5stVE6T6UPZ14Q
|
||||
GUqrK2HEm5THS9vlH/11LwxwmnAdqUm8nl+Ymo3n1UNF9r8wkh8BUndGQFOQqQ==
|
||||
Message-ID: <****>
|
||||
Subject: Testing 123
|
||||
From: ****
|
||||
To: ***
|
||||
Content-Type: text/plain
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Date: Tue, 17 Jan 2023 10:25:11 +0100
|
||||
Return-Path: ***
|
||||
X-OrganizationHeadersPreserved: ***
|
||||
X-MS-Exchange-Organization-ExpirationStartTime: 17 Jan 2023 09:25:18.2389
|
||||
(UTC)
|
||||
X-MS-Exchange-Organization-ExpirationStartTimeReason: OriginalSubmit
|
||||
X-MS-Exchange-Organization-ExpirationInterval: 1:00:00:00.0000000
|
||||
X-MS-Exchange-Organization-ExpirationIntervalReason: OriginalSubmit
|
||||
X-MS-Exchange-Organization-Network-Message-Id:
|
||||
ca3e116b-7c15-4efe-897e-08daf86cbfae
|
||||
X-EOPAttributedMessage: 0
|
||||
X-MS-Exchange-Organization-MessageDirectionality: Originating
|
||||
X-MS-Exchange-SkipListedInternetSender:
|
||||
ip=[80.241.56.171];domain=mout-p-201.mailbox.org
|
||||
X-MS-Exchange-ExternalOriginalInternetSender:
|
||||
ip=[80.241.56.171];domain=mout-p-201.mailbox.org
|
||||
X-CrossPremisesHeadersPromoted:
|
||||
DB5EUR02FT011.eop-EUR02.prod.protection.outlook.com
|
||||
X-CrossPremisesHeadersFiltered:
|
||||
DB5EUR02FT011.eop-EUR02.prod.protection.outlook.com
|
||||
X-MS-PublicTrafficType: Email
|
||||
X-MS-TrafficTypeDiagnostic: DB5EUR02FT011:EE_|FR0P281MB2649:EE_
|
||||
X-MS-Exchange-Organization-AuthSource: ****
|
||||
X-MS-Exchange-Organization-AuthAs: Anonymous
|
||||
X-OriginatorOrg: ***
|
||||
X-MS-Office365-Filtering-Correlation-Id: ca3e116b-7c15-4efe-897e-08daf86cbfae
|
||||
X-MS-Exchange-Organization-SCL: 1
|
||||
X-Microsoft-Antispam: BCL:0;
|
||||
X-Forefront-Antispam-Report:
|
||||
CIP:193.26.100.144;CTRY:DE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mout-p-201.mailbox.org;PTR:mout-p-201.mailbox.org;CAT:NONE;SFS:(13230022)(4636009)(451199015)(6916009)(82310400005)(558084003)(2616005)(7116003)(6266002)(36005)(8676002)(86362001)(36756003)(5660300002)(1096003)(336012)(8936002)(156005)(7636003)(7596003);DIR:INB;
|
||||
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2023 09:25:18.1452
|
||||
(UTC)
|
||||
X-MS-Exchange-CrossTenant-Network-Message-Id: ca3e116b-7c15-4efe-897e-08daf86cbfae
|
||||
X-MS-Exchange-CrossTenant-Id: 0a3106bb-aab1-42df-9639-39f349ecd2a0
|
||||
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0a3106bb-aab1-42df-9639-39f349ecd2a0****
|
||||
X-MS-Exchange-CrossTenant-AuthSource: ***
|
||||
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
|
||||
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
|
||||
X-MS-Exchange-Transport-CrossTenantHeadersStamped: FR0P281MB2649
|
||||
X-MS-Exchange-Transport-EndToEndLatency: 00:00:01.4839051
|
||||
X-MS-Exchange-Processed-By-BccFoldering: 15.20.6002.012
|
||||
X-Microsoft-Antispam-Mailbox-Delivery:
|
||||
ucf:0;jmr:0;auth:0;dest:I;ENG:(910001)(944506478)(944626604)(920097)(930097);
|
||||
X-Microsoft-Antispam-Message-Info:
|
||||
=?iso-8859-1?Q?DN6oyY29jzFhRK1BGCOfg1yFnX4ACBaHBh9nbhnIoNZ4DGdi6zN+tIXnUR?=
|
||||
=?iso-8859-1?Q?AY3F6SV1doOncexZBgqeE70YqvkB0xmo97NgnkQFb48xPvmZwoiAqkmIrS?=
|
||||
=?iso-8859-1?Q?EbPesMMRL/pVX22Pde2C0KNThL0e02Li5ZCNvDxq+mEt0T9cww7HhoY6SS?=
|
||||
=?iso-8859-1?Q?vMbDIBDA4c6Gyvb+34A6rYNFyHtZFVMas8S1KP4bV7QtI2WooRBzL1tOgM?=
|
||||
=?iso-8859-1?Q?gyRVbzR69Mk++hTLhqTK7kBIkGMFhUC1McOMGMTOuUh9Ay7vMeY/oNGwOG?=
|
||||
=?iso-8859-1?Q?WEFVsQjOz6lY4FIc3A+U5t3LMxkHtxRCql//ZhfKfjy78hPR7FCzYk70+T?=
|
||||
=?iso-8859-1?Q?iCLlDZNF73KjvxH82FFKOersAl26L1kb2x5F/d1XJxAJe7BTG20/LXuMmx?=
|
||||
=?iso-8859-1?Q?wGJs7s+C69LYa4cliwtGTMEuS6Rd7bOLihXnIy6hn8UhjVhNBv0+yGjint?=
|
||||
=?iso-8859-1?Q?hbwBnQJ4Ny2jeS42bJYmKw+7Dnol+pphbvhjhtsDvKifo4Xx7xM45eV2s3?=
|
||||
=?iso-8859-1?Q?wfKtSfeNGIR3Oi0VwreHTtsCOfvY8jbP+T2Z6KOFtQRvlUyutOFnOB2x1J?=
|
||||
=?iso-8859-1?Q?BVgSblJzekltOB7gCAmZiCQnZuUMOtVVqRfURwUhOuQ47I/2LDJzi/NQnf?=
|
||||
=?iso-8859-1?Q?XiqeHojof9SfngGas5TNx9tuQxmFqw4AWJE7iy4hxJo2ehSt4ReEvPzyt9?=
|
||||
=?iso-8859-1?Q?1DTwLNYbyZ8Ub7Uq3EtUDE5vn3jY2thuVBo8eemdrjOvsx+hdH9RxcFwYz?=
|
||||
=?iso-8859-1?Q?qU8NIflZ0TMRHTT2M2aBdzB9zsR3Kda+I8tNi7T6DCWve+MEEmLeRa4lU6?=
|
||||
=?iso-8859-1?Q?XAFgPATiTR9BGrBBrwqKLye2Pnn6Bx8Hs+R7sFsv6HnQkS8B585+mjXV0A?=
|
||||
=?iso-8859-1?Q?jXMm+5KDT/IUTiTAeJPwBTNEAG6Yo8gDg+6/9EMuZtQYAYZnM4tMefCwBm?=
|
||||
=?iso-8859-1?Q?oV/M1vLbCGr7m1BDeRerH34C/2SWa0XnU9zOzqvm6/ery2Cv81aakjQr+S?=
|
||||
=?iso-8859-1?Q?FdFwyYhZi96v0+HHAeT1Ncyrb84GZVp0kb1VYOBI0JH7TTZy88PMtFfbXQ?=
|
||||
=?iso-8859-1?Q?nrSZ/VgrVa7hCvBOf2VQnj6iMnNqaJlmnI+E/yXvDNQJn2JDhor7QrClSA?=
|
||||
=?iso-8859-1?Q?rrCXMDZyWWZhhDrf+VkN7ePKkju46/dqh0NRjqz6571xFdftnXx/b9dli1?=
|
||||
=?iso-8859-1?Q?+XoZOiqbV8FyrJNCWDLuZRc1gIr0KVbbxN9nggMGa5c8tslnJvW/OTImm7?=
|
||||
=?iso-8859-1?Q?SEKOX/bZx/aOe9bLlgzQhqdtwBkOJurGSWeDajB/ko2pFUcIYWyMaB6dFW?=
|
||||
=?iso-8859-1?Q?RcQgdjWDgNNqiUnyvY585ZCFJCfiMaWj8hglJWADRQdLHNSqFAtuZdVCc1?=
|
||||
=?iso-8859-1?Q?HPXeZDkLqPP+0VfD8EO3A1Fmp+E3kIrykjPJtNslbzwmtL3ATsC8e2mcob?=
|
||||
=?iso-8859-1?Q?NGBKDmktRjDYG3mhya2XCCiFWaYiig6J/s1ePtuRp3TbBojEAUg2E5xItx?=
|
||||
=?iso-8859-1?Q?gRGc6bNfg9Rihie4+BZSN+l+ynuYJQ/FGK3CvQYA9gXp00ZtfPwlHx7mXA?=
|
||||
=?iso-8859-1?Q?gaDydNv1CyuYCOgUeTxo4Bi7N4Rrz72tn9pYxoZ7okujjzLWuiK7etRoRz?=
|
||||
=?iso-8859-1?Q?JwOHGQklwT4VgMwwLQdXxNR+WMLbOyXjt6bfrKSUHq34oLx6ZVk2F6r9HI?=
|
||||
=?iso-8859-1?Q?5uaCMLO8dLt3O9rb8FdV3EfLGg+zThKobHlrVJ2WFZLm0xtSsbzC04WLdR?=
|
||||
=?iso-8859-1?Q?Oqf0F2GVBbFjulBFs9mvdhDXD33oUn5atsgLnkAitzWZH8qgeTOKgCbZD4?=
|
||||
=?iso-8859-1?Q?WIXnz+DQx0g6sgmqGwa5fkPzRn+NfdGnwNwRyjXcAw7jW5DVkAnzd2OkEc?=
|
||||
=?iso-8859-1?Q?WrVWN1eIbPedT77yCWDwLAjGBWSrpmI1bZkqI=3D?=
|
||||
MIME-Version: 1.0
|
||||
|
||||
Asdf testing123 this is a body
|
||||
1261
plugins/vendor/webklex/php-imap/tests/messages/issue-348.eml
vendored
Normal file
1261
plugins/vendor/webklex/php-imap/tests/messages/issue-348.eml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
9
plugins/vendor/webklex/php-imap/tests/messages/issue-382.eml
vendored
Normal file
9
plugins/vendor/webklex/php-imap/tests/messages/issue-382.eml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
From: MAILER-DAEMON@mta-09.someserver.com (Mail Delivery System)
|
||||
To: to@here.com
|
||||
Subject: Test
|
||||
Date: Wed, 13 Sep 2017 13:05:45 +0200
|
||||
Content-Type: text/plain;
|
||||
charset="us-ascii"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
Hi
|
||||
39
plugins/vendor/webklex/php-imap/tests/messages/issue-40.eml
vendored
Normal file
39
plugins/vendor/webklex/php-imap/tests/messages/issue-40.eml
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
Return-Path: <real_sender@sender_domain.pl>
|
||||
Delivered-To: receipent@receipent_domain.pl
|
||||
Received: from h2.server.pl
|
||||
\tby h2.server.pl with LMTP
|
||||
\tid 4IDTIEUkm18ZSSkA87l24w
|
||||
\t(envelope-from <real_sender@sender_domain.pl>)
|
||||
\tfor <receipent@receipent_domain.pl>; Thu, 29 Oct 2020 21:21:25 +0100
|
||||
Return-path: <real_sender@sender_domain.pl>
|
||||
Envelope-to: receipent@receipent_domain.pl
|
||||
Delivery-date: Thu, 29 Oct 2020 21:21:25 +0100
|
||||
Received: from sender_domain.pl ([server ip])
|
||||
\tby h2.server.pl with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
|
||||
\t(Exim 4.94)
|
||||
\t(envelope-from <real_sender@sender_domain.pl>)
|
||||
\tid 1kYEQG-00BPgD-S0
|
||||
\tfor receipent@receipent_domain.pl; Thu, 29 Oct 2020 21:21:25 +0100
|
||||
Received: by sender_domain.pl (Postfix, from userid 1000)
|
||||
\tid 57DADAB; Thu, 29 Oct 2020 21:21:23 +0100 (CET)
|
||||
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=sender_domain.pl; s=default;
|
||||
\tt=1604002883; bh=CsZufJouWdjY/W12No6MSSMwbp0VaS8EOMGg9WptEaI=;
|
||||
\th=From:To:Subject:Date;
|
||||
\tb=v0NAncnNT/w+gInANxAkMt20ktM4LZquuwlokUmLpPyO3++8dy112olu63Dkn9L2E
|
||||
\t GwfHGqW+8f7g494UK6asUKqTx8fHxlEJbHqAiEV5QrlynSeZDFXsKvGDW8XNMFBKop
|
||||
\t sAjvp8NTUiNcA4MTbFaZ7RX15A/9d9QVEynU8MaNP2ZYKnq9J/JXgUjjMnx+FiULqf
|
||||
\t xJN/5rjwHRx7f6JQoXXUxuck6Zh4tSDiLLnDFasrSxed6sTNfnZMAggCyb1++estNk
|
||||
\t q6HNBwp85Az3ELo10RbBF/WM2FhxxFz1khncRtCyLXLUZ2lzhjan765KXpeYg7FUa9
|
||||
\t zItPWVTaTzTEg==
|
||||
From: faked_sender@sender_domain.pl
|
||||
To: receipent@receipent_domain.pl
|
||||
Subject: Zly from
|
||||
Message-Id: <20201029202123.57DADAB@sender_domain.pl>
|
||||
Date: Thu, 29 Oct 2020 21:21:01 +0100 (CET)
|
||||
Forward-Confirmed-ReverseDNS: Reverse and forward lookup success on server ip, -10 Spam score
|
||||
SPFCheck: Server passes SPF test, -30 Spam score
|
||||
X-DKIM: signer='sender_domain.pl' status='pass' reason=''
|
||||
DKIMCheck: Server passes DKIM test, -20 Spam score
|
||||
X-Spam-Score: -0.2 (/)
|
||||
|
||||
Test message
|
||||
9
plugins/vendor/webklex/php-imap/tests/messages/issue-401.eml
vendored
Normal file
9
plugins/vendor/webklex/php-imap/tests/messages/issue-401.eml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
From: from@there.com
|
||||
To: to@here.com
|
||||
Subject: 1;00pm Client running few minutes late
|
||||
Date: Wed, 13 Sep 2017 13:05:45 +0200
|
||||
Content-Type: text/plain;
|
||||
charset="us-ascii"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
|
||||
Hi
|
||||
16
plugins/vendor/webklex/php-imap/tests/messages/issue-410.eml
vendored
Normal file
16
plugins/vendor/webklex/php-imap/tests/messages/issue-410.eml
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
From: from@there.com
|
||||
To: to@here.com
|
||||
Subject: =?ISO-2022-JP?B?GyRCIXlCaBsoQjEzMhskQjlmISEhViUsITwlRyVzGyhCJhskQiUoJS8lOSVGJWolIiFXQGxMZ0U5JE4kPyRhJE4jURsoQiYbJEIjQSU1JW0lcyEhIVo3bjQpJSglLyU5JUYlaiUiISYlbyE8JS8hWxsoQg==?=
|
||||
Date: Wed, 13 Sep 2017 13:05:45 +0200
|
||||
MIME-Version: 1.0
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="------------B832AF745285AEEC6D5AEE42"
|
||||
|
||||
Hi
|
||||
--------------B832AF745285AEEC6D5AEE42
|
||||
Content-Transfer-Encoding: base64
|
||||
Content-Disposition: attachment;
|
||||
filename="=?ISO-2022-JP?B?GyRCIXlCaBsoQjEzMhskQjlmISEhViUsITwlRyVzGyhCJhskQiUoJS8lOSVGJWolIiFXQGxMZ0U5JE4kPyRhJE4jURsoQiYbJEIjQSU1JW0lcyEhIVo3bjQpJSglLyU5JUYlaiUiISYlbyE8JS8hWxsoQg==?="
|
||||
|
||||
SGkh
|
||||
--------------B832AF745285AEEC6D5AEE42--
|
||||
22
plugins/vendor/webklex/php-imap/tests/messages/issue-410b.eml
vendored
Normal file
22
plugins/vendor/webklex/php-imap/tests/messages/issue-410b.eml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
From: from@there.com
|
||||
To: to@here.com
|
||||
Subject: =?iso-8859-1?Q?386_-_400021804_-_19.,_Heiligenst=E4dter_Stra=DFe_80_-_081?=
|
||||
=?iso-8859-1?Q?9306_-_Anfrage_Vergabevorschlag?=
|
||||
Date: Wed, 13 Sep 2017 13:05:45 +0200
|
||||
MIME-Version: 1.0
|
||||
Content-Type: multipart/mixed;
|
||||
boundary="------------B832AF745285AEEC6D5AEE42"
|
||||
|
||||
Hi
|
||||
--------------B832AF745285AEEC6D5AEE42
|
||||
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;
|
||||
name="=?iso-8859-1?Q?2021=5FM=E4ngelliste=5F0819306.xlsx?="
|
||||
Content-Description: =?iso-8859-1?Q?2021=5FM=E4ngelliste=5F0819306.xlsx?=
|
||||
Content-Disposition: attachment;
|
||||
filename="=?iso-8859-1?Q?2021=5FM=E4ngelliste=5F0819306.xlsx?="; size=11641;
|
||||
creation-date="Mon, 10 Jan 2022 09:01:00 GMT";
|
||||
modification-date="Mon, 10 Jan 2022 09:01:00 GMT"
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
SGkh
|
||||
--------------B832AF745285AEEC6D5AEE42--
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user