{"id":21097301,"url":"https://github.com/bashkarev/email","last_synced_at":"2025-05-16T16:31:23.478Z","repository":{"id":62491989,"uuid":"82461496","full_name":"bashkarev/email","owner":"bashkarev","description":"Faster MIME Mail Parser","archived":false,"fork":false,"pushed_at":"2017-11-22T18:50:10.000Z","size":353,"stargazers_count":20,"open_issues_count":7,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-09T12:49:23.885Z","etag":null,"topics":["email","email-parsing","mime-parser","php"],"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/bashkarev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-19T13:37:44.000Z","updated_at":"2023-10-23T01:11:26.000Z","dependencies_parsed_at":"2022-11-02T11:16:39.111Z","dependency_job_id":null,"html_url":"https://github.com/bashkarev/email","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bashkarev%2Femail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bashkarev%2Femail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bashkarev%2Femail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bashkarev%2Femail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bashkarev","download_url":"https://codeload.github.com/bashkarev/email/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225438851,"owners_count":17474484,"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":["email","email-parsing","mime-parser","php"],"created_at":"2024-11-19T22:47:12.944Z","updated_at":"2024-11-19T22:47:13.413Z","avatar_url":"https://github.com/bashkarev.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Faster MIME Mail Parser\n=======================\n\nFaster MIME Mail Parser could be used to parse emails in MIME format.\n \n[![Build Status](https://travis-ci.org/bashkarev/email.svg?branch=master)](https://travis-ci.org/bashkarev/email)\n\n# Usage\n\nBasic usage is the following:\n\n```php\n$file = fopen('path/to/file.eml', 'r');\n$message = \\bashkarev\\email\\Parser::email($file);\n\n$message-\u003etextHtml();\n\n$message-\u003egetParts();\n$message-\u003egetAttachments();\n```\n\n## Settings\n\nThere are settings available. \n\n- `charset` - character set to use. Should be specified in uppercase only.\n  Default is `UTF-8`.\n\n  ```php\n  \\bashkarev\\email\\Parser::$charset = \"WINDOWS-1251\";\n  ```\n\n- `buffer` - read buffer size in bytes. Default is `500000`.\n\n  ```php\n  \\bashkarev\\email\\Parser::$buffer = 4096;\n  ```\n\n## Attachments\n\nThere is attachments parsing support.\n\n### Saving attachments to files\n\nSaving to files could be done as follows:\n\n```php\n$file = fopen('path/to/file.eml', 'rb');\n$message = \\bashkarev\\email\\Parser::email($file);\nforeach ($message-\u003egetAttachments() as $attachment) {\n    $attachment-\u003esave('dir/' . $attachment-\u003egetFileName('undefined'));\n}\n```\n\n### Streaming attachment to output\n\nIn order to stream attachment to output directly you need to do the following:\n\n```php\n$file = fopen('path/to/file.eml', 'rb');\n$message = \\bashkarev\\email\\Parser::email($file);\n$attachment = $message-\u003egetAttachments()[0];\nheader(\"Content-Type: {$attachment-\u003egetMimeType()};\");\nheader(\"Content-Disposition: attachment; filename=\\\"{$attachment-\u003egetFileName('undefined')}\\\"\");\n$attachment-\u003egetStream()-\u003ecopy(fopen('php://output', 'c'));\n```\n\n## message/partial\n\n```php\n$block = \\bashkarev\\email\\Parser::email([\n    fopen('path/to/part.1.eml', 'rb'),\n    fopen('path/to/part.2.eml', 'rb'),\n]);\n$block-\u003egetMessage();\n```\n\n## message/rfc822\n\n```php\n$file = fopen('path/to/file.eml', 'rb');\n$container = \\bashkarev\\email\\Parser::email($file);\n$message = $container-\u003egetAttachments()[0]-\u003egetMessage();\n```\n\n## message/feedback-report\n```php\n$file = fopen('path/to/file.eml', 'rb');\n$container = \\bashkarev\\email\\Parser::email($file);\nforeach ($container-\u003egetAttachments() as $attachment) {\n    if ($attachment-\u003egetMimeType() === 'message/feedback-report') {\n        /**\n         * @var \\bashkarev\\email\\messages\\Feedback $feedback\n         */\n        $feedback = $attachment-\u003egetMessage();\n        $feedback-\u003egetType(); // Feedback::TYPE_ABUSE ...\n    }\n}\n\n```\n\n## message/external-body\n\nSupported types: url, local-file, ftp.\n \n### FTP auth\n```php\n$file = fopen('path/to/file.eml', 'rb');\n$container = \\bashkarev\\email\\Parser::email($file);\nforeach ($container-\u003egetAttachments() as $attachment) {\n    if ($attachment-\u003egetStream() instanceof \\bashkarev\\email\\transports\\Ftp) {\n        /**\n         * @var \\bashkarev\\email\\transports\\Ftp $transport\n         */\n        $transport = $attachment-\u003egetStream();\n        $transport-\u003eusername = 'username';\n        $transport-\u003epassword = '******';\n        $attachment-\u003esave('dir/' . $attachment-\u003egetFileName('undefined'));\n    }\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbashkarev%2Femail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbashkarev%2Femail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbashkarev%2Femail/lists"}