meow7/phpimap

基于webklex/php-imap的PHP IMAP客户端

v1.0.0 2024-09-22 10:40 UTC

This package is auto-updated.

Last update: 2024-09-22 15:20:50 UTC


README

PHP-IMAP是一个对常见IMAP通信的包装器,无需安装/启用php-imap模块。该协议完全集成,因此支持IMAP IDLE操作以及“新”的OAuth身份验证过程。您可以通过启用php-imap模块来处理边缘情况,提高消息解码质量,如果您想使用如pop3之类的旧协议,则必须启用。

官方文档:php-imap.com

Laravel包装器:webklex/laravel-imap

Discord:[discord.gg/rd4cN9h6][link-discord]

目录

文档

兼容性

基本使用示例

这是一个基本示例,将输出所有imap文件夹内的所有邮件,并将每条消息移动到INBOX.read。请注意,这不应该在实际生活中测试,仅用于展示如何工作。

use Meow7\Phpimap\ClientManager;

require_once "vendor/autoload.php";

$cm = new ClientManager('path/to/config/imap.php');

/** @var \Webklex\PHPIMAP\Client $client */
$client = $cm->account('account_identifier');

//Connect to the IMAP Server
$client->connect();

//Get all Mailboxes
/** @var \Webklex\PHPIMAP\Support\FolderCollection $folders */
$folders = $client->getFolders();

//Loop through every Mailbox
/** @var \Webklex\PHPIMAP\Folder $folder */
foreach($folders as $folder){

    //Get all Messages of the current Mailbox $folder
    /** @var \Webklex\PHPIMAP\Support\MessageCollection $messages */
    $messages = $folder->messages()->all()->get();
    
    /** @var \Webklex\PHPIMAP\Message $message */
    foreach($messages as $message){
        echo $message->getSubject().'<br />';
        echo 'Attachments: '.$message->getAttachments()->count().'<br />';
        echo $message->getHTMLBody();
        
        //Move the current Message to 'INBOX.read'
        if($message->move('INBOX.read') == true){
            echo 'Message has been moved';
        }else{
            echo 'Message could not be moved';
        }
    }
}

已知问题

许可证

MIT许可证(MIT)。有关更多信息,请参阅[许可证文件][link-license]。