如何使用(WebKlex)从其他文件夹而不是收件箱中获取特定消息

时间:2018-10-29 13:56:07

标签: php laravel

$oFolder = $oClient->getFolder('INBOX.Drafts');<br>
$oFolder = $oMessage = $oFolder->getMessage($uid = 2);

此功能仅从收件箱中返回或获取特定消息,但不适用于其他文件夹,例如垃圾邮件,草稿,垃圾等, 我正在使用Laravel库https://github.com/Webklex/laravel-imap#folderclass

1 个答案:

答案 0 :(得分:0)

如上所述,埃里亚斯·苏亚雷斯(Elias Soares);使用getFolders()检索有关所有文件夹的信息。然后获取给定文件夹名称的完整路径。

然后使用该文件夹名称来获取您的消息。

您可以使用以下代码作为示例:

$mailBoxes = $oClient->getFolders();
$folder = $request->input("folder");

$folder = getFolderPath($mailBoxes,$folder);

$oFolder = $oClient->getFolder($folder);

以及getFolderPath()的代码:

function getFolderPath($mailBoxes,$folder){

        $flag=0;
        foreach($mailBoxes as $mailBox){
            if(strtolower($folder)==strtolower($mailBox->name)){
                $curFolder = $mailBox->name;
                $flag=1;
            }

            foreach ($mailBox->children as $child){
                if(strtolower($folder)==strtolower($child->name)){
                    $curFolder = $child->full_name;
                    $flag=1;
                    break;
                }
            }

            if($flag==1){
                break;
            }
        }

        if(!empty($curFolder)){
            $folder = $curFolder;
        }

        return $folder;
    }