如何在 php 中使用 IMAP 显示 Gmail 电子邮件中的所有附件文件

问题描述

我正在尝试构建一个小型网络邮件应用程序。使用这个脚本我必须通过 composer https://github.com/benhall14/php-imap-reader

下载

当我阅读收件箱中的所有电子邮件时,我想显示多个文件,例如图像或 pdf 或其他文件,但问题是当我尝试 echo $attachment->filePath() 时,它只显示一个文件

例如,我的电子邮件附有两张图片,但功能通过该电子邮件向我显示单个图片

但是,该电子邮件附加了多个文件,并且还指导我如何仅使用此脚本获取文件扩展名。

代码

require 'vendor/autoload.PHP';

use benhall14\PHPImapReader\Email;
use benhall14\PHPImapReader\EmailAttachment;
use benhall14\PHPImapReader\Reader;

define('IMAP_USERNAME','');
define('IMAP_PASSWORD','');
define('IMAP_MAILBox','');
define('ATTACHMENT_PATH',__DIR__ . '/attachments/');

try {
    $imap = new Reader(IMAP_MAILBox,IMAP_USERNAME,IMAP_PASSWORD,ATTACHMENT_PATH);
    
    $imap->limit(10)->get();

    foreach ($imap->emails() as $email) {
        echo '<div>';
            
        echo '<div>' . $email->fromEmail() . '</div>';
            
        echo '<div>' . $email->subject() . '</div>';
            
        echo '<div>' . $email->date('Y-m-d H:i:s') . '</div>';

        if ($email->hasAttachments()) {
            foreach ($email->attachments() as $attachment) {
                echo '<div>' . $attachment->filePath() . '</div>';
            }
        }
        
        #print_r($email->plain());
        #print_r($email->html());

        echo '</div><br/><br/><hr />';
    }
} catch (Exception $e) {
    die($e->getMessage());
}

截图

enter image description here

在电子邮件中我附加了两张图片,但功能显示的是单个图片路径?

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)