Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Content-Transfer-Encoding: base64 #17

Open
radenvodka opened this issue Dec 1, 2019 · 6 comments
Open

Content-Transfer-Encoding: base64 #17

radenvodka opened this issue Dec 1, 2019 · 6 comments
Labels

Comments

@radenvodka
Copy link

failed to read Content-Transfer-Encoding: base64 message

@Clivern
Copy link
Owner

Clivern commented Dec 1, 2019

Hi @radenvodka,

Can you please provide the full error message or stacktrace?

@Clivern Clivern added the bug label Dec 1, 2019
@radenvodka
Copy link
Author

radenvodka commented Dec 1, 2019

[SOLVED]

Entire message :

0 - Message header
1 - MULTIPART/ALTERNATIVE
1.1 - TEXT/PLAIN
1.2 - TEXT/HTML
2 - file.ext

https://github.com/Clivern/Imap/blob/0da2fd37d95470f9be1af94d78509a49fb9a30cd/src/Core/Message/Body.php

Entire message default is : 2

using : $message->body()->getMessage('1.1');

@Clivern
Copy link
Owner

Clivern commented Dec 1, 2019

nice 👍 . closing the issue then.

@Clivern Clivern closed this as completed Dec 1, 2019
@radenvodka
Copy link
Author

can you double check?

example:

$messages = $mailbox->getMessages();
foreach ($messages as $message) {
echo "Subject: " . $message->header()->get('subject');

if($message->body()->getMessage() != ''){
    print_r($message->body()->getMessage() );
}
echo "\r\n";
if($message->body()->getMessage('1.1') != ''){
    print_r($message->body()->getMessage() );
}
echo "\r\n";

}

@Clivern Clivern reopened this Dec 2, 2019
@Clivern
Copy link
Owner

Clivern commented Dec 2, 2019

Can you try this

use Clivern\Imap\MailBox;

$mailbox = new MailBox($connection);
// Get Folders
$mailbox->getFolders();
// Update Folder
$mailbox->setFolder("[Gmail]/All Mail");
// Count Messages in Current Folder
$mailbox->count();

$messages = $mailbox->getMessages();

foreach ($messages as $message) {
    echo "Subject: " . $message->header()->get('subject');
    echo "<br/>";
    echo $message->body()->getMessage('1.1');
}

https://github.com/Clivern/Imap/blob/master/src/Core/Message/Body.php#L73

@radenvodka
Copy link
Author

$connection = new Connection( "outlook.office365.com","993","[email protected]","XXXX","/ssl" );
$mailbox    = new MailBox($connection);
$connection->connect();
print_r($connection->check());

$arras      = array('1','1.1','1.2','2');


$mailbox->setFolder("Inbox");
$messages = $mailbox->getMessages();

foreach ($messages as $message) {
    foreach ($arras as $key => $options) {
        echo "[+] Check Message Type ".$options."\r\n";
        preg_match_all('/\[xxx(.*?)\]/m', $message->body()->getMessage($options) , $mau);
        if($mau[1][0]){
            echo "[+][INBOX YAHOO] Subject ".$message->header()->get('subject')."\r\n";
          
            $message->action()->delete();
            break;
        }
        if($options >= 2){
            $message->action()->delete();
        }
    }
}

not all messages are read with Entire message = 2 so the solution is as above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants