clivern / imap
使用PHP IMAP访问邮箱
1.0.6
2019-11-13 11:25 UTC
Requires
- php: >=5.6.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.14
- phpunit/phpunit: ~5.7
- squizlabs/php_codesniffer: ^3.4
This package is auto-updated.
Last update: 2024-09-19 11:09:35 UTC
README
📬 使用PHP IMAP访问邮箱。
当前版本: 1.0.6
安装
要通过 composer
安装此包,请使用以下命令
composer require clivern/imap
此命令要求您全局安装了Composer。
用法
将包添加为依赖项后,请按照以下步骤操作
连接和认证
include_once dirname(__FILE__) . '/vendor/autoload.php'; use Clivern\Imap\Core\Connection; $connection = new Connection( "imap.gmail.com", "993", "test@clivern.com", "my_password", "/ssl", "INBOX" ); $connection->connect();
完成所有操作后,您应关闭连接
$connection->disconnect();
连接选项
$folder = "INBOX"; // Reconnect & Update Mailbox Folder $connection->reconnect($folder); // Reopen Connection $connection->survive($folder); // Get Connection Stream $connection->getStream(); // Get Server String $connection->getServer(); // Check Connection $connection->checkConnection(); // Get Quota Array $connection->getQuota($folder); // Get Status Array $connection->getStatus($folder); // Check MailBox Data $connection->check(); // Ping Connection $connection->ping(); // Get Errors $connection->getErrors(); // Get Alerts $connection->getAlerts(); // Get Last Error $connection->getLastError(); // Disconnect $connection->disconnect();
邮箱
从邮件服务器检索邮箱(也称为邮件文件夹)并遍历它们
use Clivern\Imap\MailBox; $mailbox = new MailBox($connection); $messages = $mailbox->getMessages(); foreach ($messages as $message) { echo "Subject: " . $message->header()->get('subject'); echo "<br/>"; echo $message->body()->getMessage(); }
搜索
添加自定义搜索
use Clivern\Imap\Core\Search; use Clivern\Imap\Core\Search\Condition\All; use Clivern\Imap\Core\Search\Condition\Answered; use Clivern\Imap\Core\Search\Condition\BCC; use Clivern\Imap\Core\Search\Condition\Before; use Clivern\Imap\Core\Search\Condition\Body; use Clivern\Imap\Core\Search\Condition\CC; use Clivern\Imap\Core\Search\Condition\Deleted; use Clivern\Imap\Core\Search\Condition\Flagged; use Clivern\Imap\Core\Search\Condition\From; use Clivern\Imap\Core\Search\Condition\Keyword; use Clivern\Imap\Core\Search\Condition\NewFlag; use Clivern\Imap\Core\Search\Condition\Old; use Clivern\Imap\Core\Search\Condition\On; use Clivern\Imap\Core\Search\Condition\Recent; use Clivern\Imap\Core\Search\Condition\Seen; use Clivern\Imap\Core\Search\Condition\Since; use Clivern\Imap\Core\Search\Condition\Subject; use Clivern\Imap\Core\Search\Condition\Text; use Clivern\Imap\Core\Search\Condition\To; use Clivern\Imap\Core\Search\Condition\UnAnswered; use Clivern\Imap\Core\Search\Condition\UnDeleted; use Clivern\Imap\Core\Search\Condition\UnFlagged; use Clivern\Imap\Core\Search\Condition\UnKeyword; use Clivern\Imap\Core\Search\Condition\UnSeen; $search = new Search(); $search->addCondition(new All()); // $search->addCondition(new Answered()); // $search->addCondition(new BCC("filter@gmail.com")); // $search->addCondition(new Before(date("j F Y"))); // $search->addCondition(new Body("search text")); // $search->addCondition(new CC("filter@gmail.com")); // $search->addCondition(new Deleted()); // $search->addCondition(new Flagged()); // $search->addCondition(new From("filter@gmail.com")); // $search->addCondition(new Keyword("test")); // $search->addCondition(new NewFlag()); // $search->addCondition(new Old()); // $search->addCondition(new On(date("j F Y"))); // $search->addCondition(new Recent()); // $search->addCondition(new Seen()); // $search->addCondition(new Since(date("j F Y"))); // $search->addCondition(new Subject("search text")); // $search->addCondition(new Text("search text")); // $search->addCondition(new To("filter@gmail.com")); // $search->addCondition(new UnAnswered()); // $search->addCondition(new UnDeleted()); // $search->addCondition(new UnFlagged()); // $search->addCondition(new UnKeyword("test")); // $search->addCondition(new UnSeen()); // For more info, please check https://php.ac.cn/manual/en/function.imap-search.php
然后配置邮箱
use Clivern\Imap\MailBox; $mailbox = new MailBox($connection); $messages = $mailbox->getMessages($search); foreach ($messages as $message) { echo "Subject: " . $message->header()->get('subject'); echo "<br/>"; echo $message->body()->getMessage(); }
邮箱选项
邮箱中的一些好方法
use Clivern\Imap\MailBox; $mailbox = new MailBox($connection); // Get Folders $mailbox->getFolders(); // Update Folder $mailbox->setFolder("[Gmail]/All Mail"); // Count Messages in Current Folder $mailbox->count(); $messages = $mailbox->getMessages(); foreach ($messages as $message) { echo "Subject: " . $message->header()->get('subject'); echo "<br/>"; echo $message->body()->getMessage(); }
消息
获取消息头数据
$message->header()->get('subject'); $message->header()->get('from'); $message->header()->get('to'); $message->header()->get('date'); $message->header()->get('message_id'); $message->header()->get('in_reply_to'); $message->header()->get('references'); $message->header()->get('size'); $message->header()->get('uid'); $message->header()->get('msgno'); $message->header()->get('recent'); $message->header()->get('flagged'); $message->header()->get('answered'); $message->header()->get('deleted'); $message->header()->get('seen'); $message->header()->get('draft'); $message->header()->get('udate');
获取消息正文
$message->body()->getMessage(); $message->body()->getEncoding();
获取消息附件
$attachments = $message->attachments(); foreach ($attachments as $attachment) { $attachment->getFilename(); $attachment->getExtension(); $attachment->getSize(); $attachment->getEncoding(); $attachment->getBytes(); // get attachment content $attachment->getPlainBody(); // get decoded attachment content $attachment->getBody(); // Store attachment in provided path $attachment->store(__DIR__ . '/'); }
对消息进行操作,如删除或取消删除
$message->action()->delete(); $message->action()->undelete(); // and don't forget to run the following to delete all messages marked for deletion $mailbox->expunge();
杂项
变更日志
版本 1.0.6
Fix Class Name.
版本 1.0.5
Enhance code style.
Automate code fixes and linting.
版本 1.0.4
Fix for plain text messages.
版本 1.0.3
Fix Attachment Object.
版本 1.0.2
Message delete & undelete actions added.
版本 1.0.1
Debug data removed.
版本 1.0.0
Initial Release.
鸣谢
© 2019, Clivern. 在 MIT许可证 下发布。
Imap 由 @clivern 编写和维护。