barbushin / php-imap

Manage mailboxes, filter/get/delete emails in PHP (supports IMAP/POP3/NNTP)
MIT License
1.65k stars 459 forks source link

[BUG] Fatal error: Uncaught Error: Call to undefined method PhpImap\IncomingMailAttachment::setFilePath() #697

Open gdemir opened 1 year ago

gdemir commented 1 year ago

The used code:

// composer packages load
require_once "vendor/autoload.php";
use PhpImap\Exceptions\ConnectionException;
use PhpImap\Mailbox;
$mailbox = new Mailbox(
        '{imap.yandex.com.tr:993/imap/ssl/novalidate-cert}INBOX', // IMAP server and mailbox folder
        'gdemir3327@yandex.com', // Username for the before configured mailbox
        '********', // Password for the before configured username
    __DIR__ . '/upload/', // Directory, where attachments will be saved (optional)
        'UTF-8', // Server encoding (optional)
         true, // Trim leading/ending whitespaces of IMAP path (optional)
         false // Attachment filename mode (optional; false = random filename; true = original filename)
     );
    // Save attachments one by one
    $count_email_attachments = count($email->getAttachments());
    if ($count_email_attachments != 0) {
        $attachments = $email->getAttachments();

        foreach ($attachments as $attachment) {
            echo '--> Saving '.(string) $attachment->name.'...';

            // Set individually filePath for each single attachment
            // In this case, every file will get the current Unix timestamp
            $attachment->setFilePath(__DIR__.'/upload/'. $attachment->name);

            if ($attachment->saveToDisk()) {
                echo "OK, saved!\n";
            } else {
                echo "ERROR, could not save!\n";
            }
        }
    }

Screenshots / Outputs Fatal error: Uncaught Error: Call to undefined method PhpImap\IncomingMailAttachment::setFilePath() in /var/www/vhosts/v9.haberpanelim.com/httpdocs/ir/index.php:57 Stack trace: #0 {main} thrown in /var/www/vhosts/v9.haberpanelim.com/httpdocs/ir/index.php on line 57