/** * @test */ public function it_downloads_the_embedded_images() { $connection = $this->getImapConnectionMock(); /** * @var Imap $imap */ $imap = m::mock('Humps\\MailManager\\Contracts\\Imap'); $imap->shouldReceive('getMessageHeaders')->andReturn(ImapMailManagerTestHelper::getMessageHeaders()); $imap->shouldReceive('fetchBody')->andReturn(ImapMailManagerEmbeddedImageHelper::fetchBody()); $imap->shouldReceive('fetchStructure')->andReturn(ImapMailManagerEmbeddedImageHelper::fetchStructure()); $imap->shouldReceive('getFolderName')->andReturn('INBOX'); $imap->shouldReceive('getConnection')->andReturn($connection); /** * @var Message $message */ $message = m::mock('Humps\\MailManager\\Components\\Contracts\\Message'); $message->shouldReceive('getBodyParts')->andReturn(ImapMailManagerEmbeddedImageHelper::getBody()); $message->shouldReceive('getHtmlBody')->andReturn(ImapMailManagerEmbeddedImageHelper::fetchBody()); $message->shouldReceive('getMessageNum')->andReturn(2); $message->shouldReceive('setHtmlBody')->with(m::on(function ($result) { // It has replaced the img src with the saved image path. if (preg_match("/images\\/INBOX\\/2\\/wrench\\.png/", $result) && preg_match("/images\\/INBOX\\/2\\/google_logo\\.png/", $result) && !preg_match("/cid/", $result)) { return true; } return false; })); $messageService = new ImapMessageService($message, $imap); $messageService->downloadEmbeddedImages('images'); // It's saved the images to the correct location $this->assertFileExists('images/INBOX/2/google_logo.png'); $this->assertFileExists('images/INBOX/2/wrench.png'); //Cleanup unlink('images/INBOX/2/wrench.png'); unlink('images/INBOX/2/google_logo.png'); rmdir('images/INBOX/2'); rmdir('images/INBOX'); rmdir('images'); }
background: #fff; } .body { padding: 10px; } </style> </head> <body> <div class="message"> <?php if (!is_null($mid)) { $imap = Imap::create($currentFolder); $message = ImapMessage::create($mid, $imap); $messageService = new ImapMessageService($message, $imap); $messageService->downloadEmbeddedImages('images'); $mailboxService = new ImapMailboxService($imap); $folders = ImapFolderCollectionFactory::create($mailboxService->getAllFolders()); ?> <table class="table table-striped"> <tr> <td>From:</td> <td><?php echo htmlspecialchars($message->getFrom()->implodeEmails()); ?> </td> </tr> <tr> <td>To:</td> <td><?php echo htmlspecialchars($message->getTo()->implodeEmails());