!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/laravel-crm/vendor/webklex/php-imap/tests/live/   drwxrwxrwx
Free 13.14 GB of 57.97 GB (22.67%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     MessageTest.php (76.03 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/*
* File: MessageTest.php
* Category: -
* Author: M.Goldenbaum
* Created: 07.03.23 20:21
* Updated: -
*
* Description:
*  -
*/


namespace Tests\live;

use 
Carbon\Carbon;
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\GetMessagesFailedException;
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\MessageSizeFetchingException;
use 
Webklex\PHPIMAP\Exceptions\ResponseException;
use 
Webklex\PHPIMAP\Exceptions\RuntimeException;
use 
Webklex\PHPIMAP\Folder;
use 
Webklex\PHPIMAP\Header;
use 
Webklex\PHPIMAP\IMAP;
use 
Webklex\PHPIMAP\Message;
use 
Webklex\PHPIMAP\Structure;
use 
Webklex\PHPIMAP\Support\AttachmentCollection;
use 
Webklex\PHPIMAP\Support\FlagCollection;
use 
Webklex\PHPIMAP\Support\Masks\AttachmentMask;
use 
Webklex\PHPIMAP\Support\Masks\MessageMask;
use 
\ReflectionException;

/**
 * Class MessageTest
 *
 * @package Tests\live
 */
class MessageTest extends LiveMailboxTestCase {

    
/**
     * Get the default message
     *
     * @return Message
     * @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
     */
    
protected function getDefaultMessage() : Message {
        
$folder $this->getFolder('INBOX');

        
$message $this->appendMessageTemplate($folder"plain.eml");
        
self::assertInstanceOf(Message::class, $message);

        return 
$message;
    }

    
/**
     * Test Message::convertEncoding()
     *
     * @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 MessageNotFoundException
     */
    
public function testConvertEncoding(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals("Entwürfe+"$message->convertEncoding("Entw&APw-rfe+""UTF7-IMAP""UTF-8"));

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::thread()
     *
     * @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
     * @throws GetMessagesFailedException
     */
    
public function testThread(): void {
        
$client $this->getClient();

        
$delimiter $this->getManager()->get("options.delimiter");
        
$folder_path implode($delimiter, ['INBOX''thread']);

        
$folder $client->getFolder($folder_path);
        if (
$folder !== null) {
            
self::assertTrue($this->deleteFolder($folder));
        }
        
$folder $client->createFolder($folder_pathfalse);

        
$message1 $this->appendMessageTemplate($folder"thread_my_topic.eml");
        
$message2 $this->appendMessageTemplate($folder"thread_re_my_topic.eml");
        
$message3 $this->appendMessageTemplate($folder"thread_unrelated.eml");

        
$thread $message1->thread($folder);
        
self::assertCount(2$thread);

        
$thread $message2->thread($folder);
        
self::assertCount(2$thread);

        
$thread $message3->thread($folder);
        
self::assertCount(1$thread);

        
// Cleanup
        
self::assertTrue($message1->delete());
        
self::assertTrue($message2->delete());
        
self::assertTrue($message3->delete());
        
$client->expunge();

        
self::assertTrue($this->deleteFolder($folder));
    }

    
/**
     * Test Message::hasAttachments()
     *
     * @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 testHasAttachments(): void {
        
$message $this->getDefaultMessage();
        
self::assertFalse($message->hasAttachments());

        
$folder $message->getFolder();
        
self::assertInstanceOf(Folder::class, $folder);
        
self::assertTrue($message->delete());

        
$message $this->appendMessageTemplate($folder"example_attachment.eml");
        
self::assertInstanceOf(Message::class, $message);
        
self::assertTrue($message->hasAttachments());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getFetchOptions()
     *
     * @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 testGetFetchOptions(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals(IMAP::FT_PEEK$message->getFetchOptions());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getMessageId()
     *
     * @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 testGetMessageId(): void {
        
$folder $this->getFolder('INBOX');
        
$message $this->appendMessageTemplate($folder"example_attachment.eml");
        
self::assertInstanceOf(Message::class, $message);

        
self::assertEquals("d3a5e91963cb805cee975687d5acb1c6@swift.generated"$message->getMessageId());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getReplyTo()
     *
     * @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 testGetReplyTo(): void {
        
$folder $this->getFolder('INBOX');
        
$message $this->appendMessageTemplate($folder"example_attachment.eml");
        
self::assertInstanceOf(Message::class, $message);

        
self::assertEquals("testreply_to <someone@domain.tld>"$message->getReplyTo());
        
self::assertEquals("someone@domain.tld"$message->getReplyTo()->first()->mail);
        
self::assertEquals("testreply_to"$message->getReplyTo()->first()->personal);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setSequence()
     *
     * @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 testSetSequence(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals($message->uid$message->getSequenceId());

        
$message->setSequence(IMAP::ST_MSGN);
        
self::assertEquals($message->msgn$message->getSequenceId());

        
$message->setSequence(null);
        
self::assertEquals($message->uid$message->getSequenceId());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getEvent()
     *
     * @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 testGetEvent(): void {
        
$message $this->getDefaultMessage();

        
$message->setEvent("message""test""test");
        
self::assertEquals("test"$message->getEvent("message""test"));

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::__construct()
     *
     * @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 test__construct(): void {
        
$message $this->getDefaultMessage();

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setFlag()
     *
     * @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 testSetFlag(): void {
        
$message $this->getDefaultMessage();

        
self::assertTrue($message->setFlag("seen"));
        
self::assertTrue($message->getFlags()->has("seen"));

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getMsgn()
     *
     * @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 testGetMsgn(): void {
        
$client $this->getClient();

        
$delimiter $this->getManager()->get("options.delimiter");
        
$folder_path implode($delimiter, ['INBOX''test']);

        
$folder $client->getFolder($folder_path);
        if (
$folder !== null) {
            
self::assertTrue($this->deleteFolder($folder));
        }
        
$folder $client->createFolder($folder_pathfalse);

        
$message $this->appendMessageTemplate($folder"plain.eml");
        
self::assertInstanceOf(Message::class, $message);

        
self::assertEquals(1$message->getMsgn());

        
// Cleanup
        
self::assertTrue($message->delete());
        
self::assertTrue($this->deleteFolder($folder));
    }

    
/**
     * Test Message::peek()
     *
     * @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 testPeek(): void {
        
$message $this->getDefaultMessage();
        
self::assertFalse($message->getFlags()->has("seen"));
        
self::assertEquals(IMAP::FT_PEEK$message->getFetchOptions());
        
$message->peek();
        
self::assertFalse($message->getFlags()->has("seen"));

        
$message->setFetchOption(IMAP::FT_UID);
        
self::assertEquals(IMAP::FT_UID$message->getFetchOptions());
        
$message->peek();
        
self::assertTrue($message->getFlags()->has("seen"));

        
// Cleanup
        
self::assertTrue($message->delete());

    }

    
/**
     * Test Message::unsetFlag()
     *
     * @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 testUnsetFlag(): void {
        
$message $this->getDefaultMessage();

        
self::assertFalse($message->getFlags()->has("seen"));

        
self::assertTrue($message->setFlag("seen"));
        
self::assertTrue($message->getFlags()->has("seen"));

        
self::assertTrue($message->unsetFlag("seen"));
        
self::assertFalse($message->getFlags()->has("seen"));

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setSequenceId()
     *
     * @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 testSetSequenceId(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals($message->uid$message->getSequenceId());

        
$original_sequence $message->getSequenceId();

        
$message->setSequenceId(1IMAP::ST_MSGN);
        
self::assertEquals(1$message->getSequenceId());

        
$message->setSequenceId(1);
        
self::assertEquals(1$message->getSequenceId());

        
$message->setSequenceId($original_sequence);

        
// Cleanup
        
self::assertTrue($message->delete());

    }

    
/**
     * Test Message::getTo()
     *
     * @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 testGetTo(): void {
        
$message $this->getDefaultMessage();
        
$folder $message->getFolder();
        
self::assertInstanceOf(Folder::class, $folder);

        
self::assertEquals("to@someone-else.com"$message->getTo());
        
self::assertTrue($message->delete());

        
$message $this->appendMessageTemplate($folder"example_attachment.eml");
        
self::assertInstanceOf(Message::class, $message);

        
self::assertEquals("testnameto <someone@domain.tld>"$message->getTo());
        
self::assertEquals("testnameto"$message->getTo()->first()->personal);
        
self::assertEquals("someone@domain.tld"$message->getTo()->first()->mail);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setUid()
     *
     * @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 testSetUid(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals($message->uid$message->getSequenceId());

        
$original_sequence $message->getSequenceId();

        
$message->setUid(789);
        
self::assertEquals(789$message->uid);

        
$message->setUid($original_sequence);

        
// Cleanup
        
self::assertTrue($message->delete());

    }

    
/**
     * Test Message::getUid()
     *
     * @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 testGetUid(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals($message->uid$message->getSequenceId());

        
$original_sequence $message->uid;

        
$message->setUid(789);
        
self::assertEquals(789$message->uid);
        
self::assertEquals(789$message->getUid());

        
$message->setUid($original_sequence);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::hasTextBody()
     *
     * @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 testHasTextBody(): void {
        
$message $this->getDefaultMessage();
        
self::assertTrue($message->hasTextBody());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::__get()
     *
     * @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 test__get(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals($message->uid$message->getSequenceId());
        
self::assertEquals("Example"$message->subject);
        
self::assertEquals("to@someone-else.com"$message->to);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getDate()
     *
     * @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 testGetDate(): void {
        
$message $this->getDefaultMessage();
        
self::assertInstanceOf(Carbon::class, $message->getDate()->toDate());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setMask()
     *
     * @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 testSetMask(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals(MessageMask::class, $message->getMask());

        
$message->setMask(AttachmentMask::class);
        
self::assertEquals(AttachmentMask::class, $message->getMask());

        
$message->setMask(MessageMask::class);
        
self::assertEquals(MessageMask::class, $message->getMask());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getSequenceId()
     *
     * @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 testGetSequenceId(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals($message->uid$message->getSequenceId());

        
$original_sequence $message->getSequenceId();

        
$message->setSequenceId(789IMAP::ST_MSGN);
        
self::assertEquals(789$message->getSequenceId());

        
$message->setSequenceId(789);
        
self::assertEquals(789$message->getSequenceId());

        
$message->setSequenceId($original_sequence);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setConfig()
     *
     * @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 testSetConfig(): void {
        
$message $this->getDefaultMessage();

        
$config $message->getConfig();
        
self::assertIsArray($config);

        
$message->setConfig(["foo" => "bar"]);
        
self::assertArrayHasKey("foo"$message->getConfig());

        
$message->setConfig($config);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getEvents()
     *
     * @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 testGetEvents(): void {
        
$message $this->getDefaultMessage();

        
$events $message->getEvents();
        
self::assertIsArray($events);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setFetchOption()
     *
     * @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 testSetFetchOption(): void {
        
$message $this->getDefaultMessage();

        
$fetch_option $message->fetch_options;

        
$message->setFetchOption(IMAP::FT_UID);
        
self::assertEquals(IMAP::FT_UID$message->fetch_options);

        
$message->setFetchOption(IMAP::FT_PEEK);
        
self::assertEquals(IMAP::FT_PEEK$message->fetch_options);

        
$message->setFetchOption(IMAP::FT_UID IMAP::FT_PEEK);
        
self::assertEquals(IMAP::FT_UID IMAP::FT_PEEK$message->fetch_options);

        
$message->setFetchOption($fetch_option);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getMsglist()
     *
     * @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 testGetMsglist(): void {
        
$message $this->getDefaultMessage();

        
self::assertEquals(0, (int)$message->getMsglist()->toString());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::decodeString()
     *
     * @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 testDecodeString(): void {
        
$message $this->getDefaultMessage();

        
$string '<p class=3D"MsoNormal">Test<o:p></o:p></p>';
        
self::assertEquals('<p class="MsoNormal">Test<o:p></o:p></p>'$message->decodeString($stringIMAP::MESSAGE_ENC_QUOTED_PRINTABLE));

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::attachments()
     *
     * @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 testAttachments(): void {
        
$folder $this->getFolder('INBOX');

        
$message $this->appendMessageTemplate($folder"example_attachment.eml");
        
self::assertTrue($message->hasAttachments());
        
self::assertSameSize([1], $message->attachments());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getMask()
     *
     * @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 testGetMask(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals(MessageMask::class, $message->getMask());

        
$message->setMask(AttachmentMask::class);
        
self::assertEquals(AttachmentMask::class, $message->getMask());

        
$message->setMask(MessageMask::class);
        
self::assertEquals(MessageMask::class, $message->getMask());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::hasHTMLBody()
     *
     * @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 testHasHTMLBody(): void {
        
$folder $this->getFolder('INBOX');

        
$message $this->appendMessageTemplate($folder"1366671050@github.com.eml");
        
self::assertTrue($message->hasHTMLBody());

        
// Cleanup
        
self::assertTrue($message->delete());

        
$message $this->getDefaultMessage();
        
self::assertFalse($message->hasHTMLBody());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setEvents()
     *
     * @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 testSetEvents(): void {
        
$message $this->getDefaultMessage();

        
$events $message->getEvents();
        
self::assertIsArray($events);

        
$message->setEvents(["foo" => "bar"]);
        
self::assertArrayHasKey("foo"$message->getEvents());

        
$message->setEvents($events);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::__set()
     *
     * @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 test__set(): void {
        
$message $this->getDefaultMessage();

        
$message->foo "bar";
        
self::assertEquals("bar"$message->getFoo());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getHTMLBody()
     *
     * @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 testGetHTMLBody(): void {
        
$folder $this->getFolder('INBOX');

        
$message $this->appendMessageTemplate($folder"1366671050@github.com.eml");
        
self::assertTrue($message->hasHTMLBody());
        
self::assertIsString($message->getHTMLBody());

        
// Cleanup
        
self::assertTrue($message->delete());

        
$message $this->getDefaultMessage();
        
self::assertFalse($message->hasHTMLBody());
        
self::assertEmpty($message->getHTMLBody());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getSequence()
     *
     * @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 testGetSequence(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals(IMAP::ST_UID$message->getSequence());

        
$original_sequence $message->getSequence();

        
$message->setSequence(IMAP::ST_MSGN);
        
self::assertEquals(IMAP::ST_MSGN$message->getSequence());

        
$message->setSequence($original_sequence);
        
self::assertEquals(IMAP::ST_UID$message->getSequence());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::restore()
     *
     * @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 testRestore(): void {
        
$message $this->getDefaultMessage();

        
$message->setFlag("deleted");
        
self::assertTrue($message->hasFlag("deleted"));

        
$message->restore();
        
self::assertFalse($message->hasFlag("deleted"));

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getPriority()
     *
     * @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 testGetPriority(): void {
        
$folder $this->getFolder('INBOX');

        
$message $this->appendMessageTemplate($folder"example_attachment.eml");
        
self::assertEquals(1$message->getPriority()->first());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setAttachments()
     *
     * @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 testSetAttachments(): void {
        
$message $this->getDefaultMessage();

        
$message->setAttachments(new AttachmentCollection(["foo" => "bar"]));
        
self::assertIsArray($message->attachments()->toArray());
        
self::assertTrue($message->attachments()->has("foo"));

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getFrom()
     *
     * @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 testGetFrom(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals("from@someone.com"$message->getFrom()->first()->mail);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setEvent()
     *
     * @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 testSetEvent(): void {
        
$message $this->getDefaultMessage();

        
$message->setEvent("message""bar""foo");
        
self::assertArrayHasKey("bar"$message->getEvents()["message"]);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getInReplyTo()
     *
     * @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 testGetInReplyTo(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals(""$message->getInReplyTo());

        
// Cleanup
        
self::assertTrue($message->delete());

        
$folder $this->getFolder('INBOX');

        
$message $this->appendMessageTemplate($folder"1366671050@github.com.eml");
        
self::assertEquals("Webklex/php-imap/issues/349@github.com"$message->getInReplyTo());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::copy()
     *
     * @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 testCopy(): void {
        
$message $this->getDefaultMessage();
        
$client $message->getClient();
        
self::assertInstanceOf(Client::class, $client);

        
$delimiter $this->getManager()->get("options.delimiter");
        
$folder_path implode($delimiter, ['INBOX''test']);

        
$folder $client->getFolder($folder_path);
        if (
$folder !== null) {
            
self::assertTrue($this->deleteFolder($folder));
        }
        
$folder $client->createFolder($folder_pathfalse);
        
self::assertInstanceOf(Folder::class, $folder);

        
$new_message $message->copy($folder->pathtrue);
        
self::assertInstanceOf(Message::class, $new_message);
        
self::assertEquals($folder->path$new_message->getFolder()->path);

        
// Cleanup
        
self::assertTrue($message->delete());
        
self::assertTrue($new_message->delete());

    }

    
/**
     * Test Message::getBodies()
     *
     * @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 testGetBodies(): void {
        
$message $this->getDefaultMessage();
        
self::assertIsArray($message->getBodies());
        
self::assertCount(1$message->getBodies());

        
// Cleanup
        
self::assertTrue($message->delete());

    }

    
/**
     * Test Message::getFlags()
     *
     * @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 testGetFlags(): void {
        
$message $this->getDefaultMessage();
        
self::assertIsArray($message->getFlags()->all());

        
self::assertFalse($message->hasFlag("seen"));

        
self::assertTrue($message->setFlag("seen"));
        
self::assertTrue($message->getFlags()->has("seen"));
        
self::assertTrue($message->hasFlag("seen"));

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::addFlag()
     *
     * @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 testAddFlag(): void {
        
$message $this->getDefaultMessage();
        
self::assertFalse($message->hasFlag("seen"));

        
self::assertTrue($message->addFlag("seen"));
        
self::assertTrue($message->hasFlag("seen"));

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getSubject()
     *
     * @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 testGetSubject(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals("Example"$message->getSubject());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getClient()
     *
     * @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 testGetClient(): void {
        
$message $this->getDefaultMessage();
        
self::assertInstanceOf(Client::class, $message->getClient());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setFetchFlagsOption()
     *
     * @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 testSetFetchFlagsOption(): void {
        
$message $this->getDefaultMessage();

        
self::assertTrue($message->getFetchFlagsOption());
        
$message->setFetchFlagsOption(false);
        
self::assertFalse($message->getFetchFlagsOption());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::mask()
     *
     * @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 testMask(): void {
        
$message $this->getDefaultMessage();
        
self::assertInstanceOf(MessageMask::class, $message->mask());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setMsglist()
     *
     * @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 testSetMsglist(): void {
        
$message $this->getDefaultMessage();
        
$message->setMsglist("foo");
        
self::assertEquals("foo"$message->getMsglist());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::flags()
     *
     * @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 testFlags(): void {
        
$message $this->getDefaultMessage();
        
self::assertInstanceOf(FlagCollection::class, $message->flags());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getAttributes()
     *
     * @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 testGetAttributes(): void {
        
$message $this->getDefaultMessage();
        
self::assertIsArray($message->getAttributes());
        
self::assertArrayHasKey("subject"$message->getAttributes());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getAttachments()
     *
     * @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 testGetAttachments(): void {
        
$message $this->getDefaultMessage();
        
self::assertInstanceOf(AttachmentCollection::class, $message->getAttachments());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getRawBody()
     *
     * @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 testGetRawBody(): void {
        
$message $this->getDefaultMessage();
        
self::assertIsString($message->getRawBody());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::is()
     *
     * @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 testIs(): void {
        
$message $this->getDefaultMessage();
        
self::assertTrue($message->is($message));

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setFlags()
     *
     * @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 testSetFlags(): void {
        
$message $this->getDefaultMessage();
        
$message->setFlags(new FlagCollection());
        
self::assertFalse($message->hasFlag("recent"));

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::make()
     *
     * @return void
     * @throws AuthFailedException
     * @throws ConnectionFailedException
     * @throws EventNotFoundException
     * @throws FolderFetchingException
     * @throws ImapBadRequestException
     * @throws ImapServerErrorException
     * @throws InvalidMessageDateException
     * @throws MaskNotFoundException
     * @throws MessageContentFetchingException
     * @throws MessageFlagException
     * @throws ResponseException
     * @throws RuntimeException
     * @throws ReflectionException
     */
    
public function testMake(): void {
        
$folder $this->getFolder('INBOX');
        
$folder->getClient()->openFolder($folder->path);

        
$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($email0strpos($email"\r\n\r\n"));
        
$raw_body substr($emailstrlen($raw_header)+8);

        
$message Message::make(0null$folder->getClient(), $raw_header$raw_body, [=> "\\Seen"], IMAP::ST_UID);
        
self::assertInstanceOf(Message::class, $message);
    }

    
/**
     * Test Message::setAvailableFlags()
     *
     * @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 testSetAvailableFlags(): void {
        
$message $this->getDefaultMessage();

        
$message->setAvailableFlags(["foo"]);
        
self::assertSameSize(["foo"], $message->getAvailableFlags());
        
self::assertEquals("foo"$message->getAvailableFlags()[0]);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getSender()
     *
     * @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 testGetSender(): void {
        
$folder $this->getFolder('INBOX');

        
$message $this->appendMessageTemplate($folder"example_attachment.eml");
        
self::assertEquals("testsender <someone@domain.tld>"$message->getSender());
        
self::assertEquals("testsender"$message->getSender()->first()->personal);
        
self::assertEquals("someone@domain.tld"$message->getSender()->first()->mail);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::fromFile()
     *
     * @return void
     * @throws AuthFailedException
     * @throws ConnectionFailedException
     * @throws ImapBadRequestException
     * @throws ImapServerErrorException
     * @throws InvalidMessageDateException
     * @throws MaskNotFoundException
     * @throws MessageContentFetchingException
     * @throws ReflectionException
     * @throws ResponseException
     * @throws RuntimeException
     */
    
public function testFromFile(): void {
        
$this->getManager();
        
$filename implode(DIRECTORY_SEPARATOR, [__DIR__"..""messages""1366671050@github.com.eml"]);
        
$message Message::fromFile($filename);
        
self::assertInstanceOf(Message::class, $message);
    }

    
/**
     * Test Message::getStructure()
     *
     * @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 testGetStructure(): void {
        
$message $this->getDefaultMessage();
        
self::assertInstanceOf(Structure::class, $message->getStructure());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::get()
     *
     * @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
     * @throws MessageSizeFetchingException
     */
    
public function testGet(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals("Example"$message->get("subject"));

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getSize()
     *
     * @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 testGetSize(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals(214$message->getSize());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getHeader()
     *
     * @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 testGetHeader(): void {
        
$message $this->getDefaultMessage();
        
self::assertInstanceOf(Header::class, $message->getHeader());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getReferences()
     *
     * @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 testGetReferences(): void {
        
$folder $this->getFolder('INBOX');

        
$message $this->appendMessageTemplate($folder"1366671050@github.com.eml");
        
self::assertIsArray($message->getReferences()->all());
        
self::assertEquals("Webklex/php-imap/issues/349@github.com"$message->getReferences()->first());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setFolderPath()
     *
     * @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 testSetFolderPath(): void {
        
$message $this->getDefaultMessage();

        
$folder_path $message->getFolderPath();

        
$message->setFolderPath("foo");
        
self::assertEquals("foo"$message->getFolderPath());

        
$message->setFolderPath($folder_path);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getTextBody()
     *
     * @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 testGetTextBody(): void {
        
$message $this->getDefaultMessage();
        
self::assertIsString($message->getTextBody());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::move()
     *
     * @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 testMove(): void {
        
$message $this->getDefaultMessage();
        
$client $message->getClient();
        
self::assertInstanceOf(Client::class, $client);

        
$delimiter $this->getManager()->get("options.delimiter");
        
$folder_path implode($delimiter, ['INBOX''test']);

        
$folder $client->getFolder($folder_path);
        if (
$folder !== null) {
            
self::assertTrue($this->deleteFolder($folder));
        }
        
$folder $client->createFolder($folder_pathfalse);
        
self::assertInstanceOf(Folder::class, $folder);

        
$message $message->move($folder->pathtrue);
        
self::assertInstanceOf(Message::class, $message);
        
self::assertEquals($folder->path$message->getFolder()->path);

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getFolderPath()
     *
     * @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 testGetFolderPath(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals("INBOX"$message->getFolderPath());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getFolder()
     *
     * @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 testGetFolder(): void {
        
$message $this->getDefaultMessage();
        
self::assertInstanceOf(Folder::class, $message->getFolder());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getFetchBodyOption()
     *
     * @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 testGetFetchBodyOption(): void {
        
$message $this->getDefaultMessage();
        
self::assertTrue($message->getFetchBodyOption());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setFetchBodyOption()
     *
     * @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 testSetFetchBodyOption(): void {
        
$message $this->getDefaultMessage();

        
$message->setFetchBodyOption(false);
        
self::assertFalse($message->getFetchBodyOption());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::getFetchFlagsOption()
     *
     * @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 testGetFetchFlagsOption(): void {
        
$message $this->getDefaultMessage();
        
self::assertTrue($message->getFetchFlagsOption());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::__call()
     *
     * @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 test__call(): void {
        
$message $this->getDefaultMessage();
        
self::assertEquals("Example"$message->getSubject());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setClient()
     *
     * @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 testSetClient(): void {
        
$message $this->getDefaultMessage();
        
$client $message->getClient();
        
self::assertInstanceOf(Client::class, $client);

        
$message->setClient(null);
        
self::assertNull($message->getClient());

        
$message->setClient($client);
        
self::assertInstanceOf(Client::class, $message->getClient());

        
// Cleanup
        
self::assertTrue($message->delete());
    }

    
/**
     * Test Message::setMsgn()
     *
     * @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 testSetMsgn(): void {
        
$message $this->getDefaultMessage();

        
$uid $message->getUid();
        
$message->setMsgn(789);
        
self::assertEquals(789$message->getMsgn());
        
$message->setUid($uid);

        
// Cleanup
        
self::assertTrue($message->delete());
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0136 ]--