unyii2/yii2-imap

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

安装次数: 41,907

依赖者: 1

建议者: 0

安全: 0

星标: 4

关注者: 2

分支: 33

开放问题: 0

类型:yii2-extension

0.5.4 2019-05-08 16:07 UTC

This package is auto-updated.

Last update: 2024-09-07 20:09:55 UTC


README

Total Downloads

此库是从 https://github.com/yiioverflow/yii2-imap 分支出来的

通过 composer 安装

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

Or

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

作为组件使用

在组件中定义连接详情

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


//4th Param _DIR_ is the location to save attached files 
//Eg: /path/to/application/mail/uploads.
$mailbox = new unyii2\Mailbox(yii::$app->imap->connection);

作为库使用

动态设置连接详情

$imapConnection = new unyii2\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 = '/';


//4th Param _DIR_ is the location to save attached files 
//Eg: /path/to/application/mail/uploads.
$mailbox = new unyii2\Mailbox($imapConnection);

# 获取所有邮件及其索引

$mailbox->searchMailBox(ALL)// Prints all Mail ids.
print_r($mailIds);

# 不读取附件 $mailbox->readMailParts = false;

# 读取收件箱内容

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

    if(alreadyProcesedMessage($mail->messageId)){
        continue;
    }

    // Use, if $mailbox->readMailParts = false; 
    // Read mail parts (plain body, html body and attachments
    $mail = $mailbox->getMailParts($mail);

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

    }
}

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

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

贡献

请随时贡献。如果您有示例想法,请将其添加到存储库中并提交 pull request。

感激

如果喜欢,请不要忘记给我一个“星标”。享受编码!