kekaadrenalin/yii2-imap

yii2 扩展,用于从 IMAP 和 PHP 读取和处理邮件

资助包维护!
kekaadrenalin

安装次数: 29,620

依赖关系: 0

建议者: 0

安全: 0

星标: 2

关注者: 1

分支: 33

开放问题: 0

类型:yii2-extension

0.5.8 2019-11-19 13:54 UTC

This package is auto-updated.

Last update: 2024-09-17 12:44:29 UTC


README

Total Downloads

该库是基于https://github.com/yiioverflow/yii2-imap的分支。

通过 composer 安装

{
    "require": {
       "kekaadrenalin/yii2-imap": "dev-master"
    }
}

Or

$ composer require kekaadrenalin/yii2-imap "dev-master"

作为组件使用

在组件中定义连接详细信息

'components' => [
    ...
    'imap' => [
        'class' => 'kekaadrenalin\imap\Imap',
        'connection' => [
            'imapPath'       => '{imap.gmail.com:993/imap/ssl}INBOX',
            'imapLogin'      => 'username',
            'imapPassword'   => 'password',
            'serverEncoding' => 'encoding', // utf-8 default.
            'attachmentsDir' => '/',
            'decodeMimeStr'  => true, // Return as is, default -> true
        ],
    ],
    ...
 ],

$mailbox = new kekaadrenalin\imap\Mailbox(Yii::$app->imap->connection);

作为库使用

动态设置连接详细信息

$imapConnection = new kekaadrenalin\imap\ImapConnection;

$imapConnection->imapPath = '{imap.gmail.com:993/imap/ssl}INBOX';
$imapConnection->imapLogin = 'username';
$imapConnection->imapPassword = 'password';
$imapConnection->serverEncoding = 'encoding'; // utf-8 default.
$imapConnection->attachmentsDir = '/';
$imapConnection->decodeMimeStr = true;

$mailbox = new kekaadrenalin\imap\Mailbox($imapConnection);

获取所有邮件及其索引

$mailIds = $mailbox->searchMailBox(); // Gets all Mail ids.
print_r($mailIds);

不读取附件

$mailbox->readMailParts = false;

读取收件箱内容

foreach($mailIds as $mailId)
{
    // Returns Mail contents
    $mail = $mailbox->getMail($mailId); 

    // Read mail parts (plain body, html body and attachments
    $mailObject = $mailbox->getMailParts($mail);
    
    // Array with IncomingMail objects
    print_r($mailObject);

    // Returns mail attachements if any or else empty array
    $attachments = $mailObject->getAttachments(); 
    foreach($attachments as $attachment){
        echo ' Attachment:' . $attachment->name . PHP_EOL;
        
        // Delete attachment file
        unlink($attachment->filePath);
    }
}

从 IMAP 服务器标记并删除邮件。

$mailbox->deleteMail($mailId); // Mark a mail to delete
$mailbox->expungeDeletedMails(); // Deletes all marked mails

贡献

请随时贡献。如果您有示例想法,请将其添加到仓库并提交拉取请求。

感谢

如果您喜欢它,别忘了给我一个“星标”。享受编码!