{"id":20677772,"url":"https://github.com/clivern/imap","last_synced_at":"2025-04-06T10:10:35.673Z","repository":{"id":51803216,"uuid":"99675558","full_name":"Clivern/Imap","owner":"Clivern","description":":mailbox_with_mail: Access Mailbox Using PHP IMAP.","archived":false,"fork":false,"pushed_at":"2025-03-23T16:48:22.000Z","size":114,"stargazers_count":31,"open_issues_count":8,"forks_count":14,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-30T09:06:15.324Z","etag":null,"topics":["imap","mail","mailbox","php","php-imap","pop3"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Clivern.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-08T09:30:31.000Z","updated_at":"2023-07-24T03:07:26.000Z","dependencies_parsed_at":"2024-01-12T03:05:54.984Z","dependency_job_id":"081360c2-ad2d-4de7-b226-7e24dfbc77c2","html_url":"https://github.com/Clivern/Imap","commit_stats":{"total_commits":74,"total_committers":4,"mean_commits":18.5,"dds":"0.10810810810810811","last_synced_commit":"33beee395131086aac0ddac3e7974f9ff5235bc4"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clivern%2FImap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clivern%2FImap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clivern%2FImap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clivern%2FImap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Clivern","download_url":"https://codeload.github.com/Clivern/Imap/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247464220,"owners_count":20942970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["imap","mail","mailbox","php","php-imap","pop3"],"created_at":"2024-11-16T21:17:04.298Z","updated_at":"2025-04-06T10:10:35.639Z","avatar_url":"https://github.com/Clivern.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Imap\n====\n:mailbox_with_mail: Access Mailbox Using PHP IMAP.\n\n*Current Version: 1.0.6*\n\n[![Build Status](https://travis-ci.org/Clivern/Imap.svg?branch=master)](https://travis-ci.org/Clivern/Imap)\n\nInstallation\n------------\n\nTo install the package via `composer`, use the following:\n\n```php\ncomposer require clivern/imap\n```\nThis command requires you to have Composer installed globally.\n\n\nUsage\n-----\n\nAfter adding the package as a dependency, Please read the following steps:\n\n### Connect and Authenticate\n\n```php\ninclude_once dirname(__FILE__) . '/vendor/autoload.php';\n\nuse Clivern\\Imap\\Core\\Connection;\n\n$connection = new Connection(\n    \"imap.gmail.com\",\n    \"993\",\n    \"test@clivern.com\",\n    \"my_password\",\n    \"/ssl\",\n    \"INBOX\"\n);\n$connection-\u003econnect();\n```\n\nAfter end of everything, you should close connection\n\n```php\n$connection-\u003edisconnect();\n```\n\n\n#### Connection Options\n\n```php\n$folder = \"INBOX\";\n\n// Reconnect \u0026 Update Mailbox Folder\n$connection-\u003ereconnect($folder);\n// Reopen Connection\n$connection-\u003esurvive($folder);\n// Get Connection Stream\n$connection-\u003egetStream();\n// Get Server String\n$connection-\u003egetServer();\n// Check Connection\n$connection-\u003echeckConnection();\n// Get Quota Array\n$connection-\u003egetQuota($folder);\n// Get Status Array\n$connection-\u003egetStatus($folder);\n// Check MailBox Data\n$connection-\u003echeck();\n// Ping Connection\n$connection-\u003eping();\n// Get Errors\n$connection-\u003egetErrors();\n// Get Alerts\n$connection-\u003egetAlerts();\n// Get Last Error\n$connection-\u003egetLastError();\n// Disconnect\n$connection-\u003edisconnect();\n```\n\n\n### Mailboxes\n\nRetrieve mailboxes (also known as mail folders) from the mail server and iterate over them:\n\n```php\nuse Clivern\\Imap\\MailBox;\n\n$mailbox = new MailBox($connection);\n\n$messages = $mailbox-\u003egetMessages();\n\nforeach ($messages as $message) {\n    echo \"Subject: \" . $message-\u003eheader()-\u003eget('subject');\n    echo \"\u003cbr/\u003e\";\n    echo $message-\u003ebody()-\u003egetMessage();\n}\n\n```\n\n#### Searching\n\nTo add custom search\n\n```php\nuse Clivern\\Imap\\Core\\Search;\nuse Clivern\\Imap\\Core\\Search\\Condition\\All;\nuse Clivern\\Imap\\Core\\Search\\Condition\\Answered;\nuse Clivern\\Imap\\Core\\Search\\Condition\\BCC;\nuse Clivern\\Imap\\Core\\Search\\Condition\\Before;\nuse Clivern\\Imap\\Core\\Search\\Condition\\Body;\nuse Clivern\\Imap\\Core\\Search\\Condition\\CC;\nuse Clivern\\Imap\\Core\\Search\\Condition\\Deleted;\nuse Clivern\\Imap\\Core\\Search\\Condition\\Flagged;\nuse Clivern\\Imap\\Core\\Search\\Condition\\From;\nuse Clivern\\Imap\\Core\\Search\\Condition\\Keyword;\nuse Clivern\\Imap\\Core\\Search\\Condition\\NewFlag;\nuse Clivern\\Imap\\Core\\Search\\Condition\\Old;\nuse Clivern\\Imap\\Core\\Search\\Condition\\On;\nuse Clivern\\Imap\\Core\\Search\\Condition\\Recent;\nuse Clivern\\Imap\\Core\\Search\\Condition\\Seen;\nuse Clivern\\Imap\\Core\\Search\\Condition\\Since;\nuse Clivern\\Imap\\Core\\Search\\Condition\\Subject;\nuse Clivern\\Imap\\Core\\Search\\Condition\\Text;\nuse Clivern\\Imap\\Core\\Search\\Condition\\To;\nuse Clivern\\Imap\\Core\\Search\\Condition\\UnAnswered;\nuse Clivern\\Imap\\Core\\Search\\Condition\\UnDeleted;\nuse Clivern\\Imap\\Core\\Search\\Condition\\UnFlagged;\nuse Clivern\\Imap\\Core\\Search\\Condition\\UnKeyword;\nuse Clivern\\Imap\\Core\\Search\\Condition\\UnSeen;\n\n$search = new Search();\n$search-\u003eaddCondition(new All());\n// $search-\u003eaddCondition(new Answered());\n// $search-\u003eaddCondition(new BCC(\"filter@gmail.com\"));\n// $search-\u003eaddCondition(new Before(date(\"j F Y\")));\n// $search-\u003eaddCondition(new Body(\"search text\"));\n// $search-\u003eaddCondition(new CC(\"filter@gmail.com\"));\n// $search-\u003eaddCondition(new Deleted());\n// $search-\u003eaddCondition(new Flagged());\n// $search-\u003eaddCondition(new From(\"filter@gmail.com\"));\n// $search-\u003eaddCondition(new Keyword(\"test\"));\n// $search-\u003eaddCondition(new NewFlag());\n// $search-\u003eaddCondition(new Old());\n// $search-\u003eaddCondition(new On(date(\"j F Y\")));\n// $search-\u003eaddCondition(new Recent());\n// $search-\u003eaddCondition(new Seen());\n// $search-\u003eaddCondition(new Since(date(\"j F Y\")));\n// $search-\u003eaddCondition(new Subject(\"search text\"));\n// $search-\u003eaddCondition(new Text(\"search text\"));\n// $search-\u003eaddCondition(new To(\"filter@gmail.com\"));\n// $search-\u003eaddCondition(new UnAnswered());\n// $search-\u003eaddCondition(new UnDeleted());\n// $search-\u003eaddCondition(new UnFlagged());\n// $search-\u003eaddCondition(new UnKeyword(\"test\"));\n// $search-\u003eaddCondition(new UnSeen());\n\n// For more info, please check http://php.net/manual/en/function.imap-search.php\n```\n\nThen configure mailbox:\n\n```php\nuse Clivern\\Imap\\MailBox;\n\n$mailbox = new MailBox($connection);\n\n$messages = $mailbox-\u003egetMessages($search);\n\nforeach ($messages as $message) {\n    echo \"Subject: \" . $message-\u003eheader()-\u003eget('subject');\n    echo \"\u003cbr/\u003e\";\n    echo $message-\u003ebody()-\u003egetMessage();\n}\n```\n\n#### Mailbox Option\n\nSome good methods in mailbox\n\n```php\nuse Clivern\\Imap\\MailBox;\n\n$mailbox = new MailBox($connection);\n// Get Folders\n$mailbox-\u003egetFolders();\n// Update Folder\n$mailbox-\u003esetFolder(\"[Gmail]/All Mail\");\n// Count Messages in Current Folder\n$mailbox-\u003ecount();\n\n$messages = $mailbox-\u003egetMessages();\n\nforeach ($messages as $message) {\n    echo \"Subject: \" . $message-\u003eheader()-\u003eget('subject');\n    echo \"\u003cbr/\u003e\";\n    echo $message-\u003ebody()-\u003egetMessage();\n}\n```\n\n#### Messages\n\nTo get message header data:\n\n```php\n$message-\u003eheader()-\u003eget('subject');\n$message-\u003eheader()-\u003eget('from');\n$message-\u003eheader()-\u003eget('to');\n$message-\u003eheader()-\u003eget('date');\n$message-\u003eheader()-\u003eget('message_id');\n$message-\u003eheader()-\u003eget('in_reply_to');\n$message-\u003eheader()-\u003eget('references');\n$message-\u003eheader()-\u003eget('size');\n$message-\u003eheader()-\u003eget('uid');\n$message-\u003eheader()-\u003eget('msgno');\n$message-\u003eheader()-\u003eget('recent');\n$message-\u003eheader()-\u003eget('flagged');\n$message-\u003eheader()-\u003eget('answered');\n$message-\u003eheader()-\u003eget('deleted');\n$message-\u003eheader()-\u003eget('seen');\n$message-\u003eheader()-\u003eget('draft');\n$message-\u003eheader()-\u003eget('udate');\n```\n\nTo get message body\n\n```php\n$message-\u003ebody()-\u003egetMessage();\n$message-\u003ebody()-\u003egetEncoding();\n```\n\nTo get message attachments\n\n```php\n$attachments = $message-\u003eattachments();\nforeach ($attachments as $attachment) {\n    $attachment-\u003egetFilename();\n    $attachment-\u003egetExtension();\n    $attachment-\u003egetSize();\n    $attachment-\u003egetEncoding();\n    $attachment-\u003egetBytes();\n    // get attachment content\n    $attachment-\u003egetPlainBody();\n    // get decoded attachment content\n    $attachment-\u003egetBody();\n    // Store attachment in provided path\n    $attachment-\u003estore(__DIR__ . '/');\n}\n```\n\nTo do actions on message like delete or undelete\n\n```php\n$message-\u003eaction()-\u003edelete();\n$message-\u003eaction()-\u003eundelete();\n// and don't forget to run the following to delete all messages marked for deletion\n$mailbox-\u003eexpunge();\n```\n\n\nMisc\n====\n\nChangelog\n---------\nVersion 1.0.6:\n```\nFix Class Name.\n```\n\nVersion 1.0.5:\n```\nEnhance code style.\nAutomate code fixes and linting.\n```\n\nVersion 1.0.4:\n```\nFix for plain text messages.\n```\n\nVersion 1.0.3:\n```\nFix Attachment Object.\n```\n\nVersion 1.0.2:\n```\nMessage delete \u0026 undelete actions added.\n```\n\nVersion 1.0.1:\n```\nDebug data removed.\n```\n\nVersion 1.0.0:\n```\nInitial Release.\n```\n\nAcknowledgements\n----------------\n\n© 2019, Clivern. Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php).\n\n**Imap** is authored and maintained by [@clivern](http://github.com/clivern).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclivern%2Fimap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclivern%2Fimap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclivern%2Fimap/lists"}