{"id":13707982,"url":"https://github.com/bbottema/outlook-message-parser","last_synced_at":"2026-03-09T15:31:39.517Z","repository":{"id":18299343,"uuid":"83971454","full_name":"bbottema/outlook-message-parser","owner":"bbottema","description":"A Java parser for Outlook messages (.msg files)","archived":false,"fork":false,"pushed_at":"2024-06-23T01:07:37.000Z","size":3713,"stargazers_count":79,"open_issues_count":12,"forks_count":36,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-27T01:05:59.075Z","etag":null,"topics":["email","java","outlook"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bbottema.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-2.0.txt","code_of_conduct":null,"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-03-05T13:20:44.000Z","updated_at":"2025-06-07T21:29:20.000Z","dependencies_parsed_at":"2022-07-12T22:30:29.668Z","dependency_job_id":"3dffdc46-9760-4304-9204-823b8c3df9cb","html_url":"https://github.com/bbottema/outlook-message-parser","commit_stats":null,"previous_names":[],"tags_count":49,"template":false,"template_full_name":null,"purl":"pkg:github/bbottema/outlook-message-parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbottema%2Foutlook-message-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbottema%2Foutlook-message-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbottema%2Foutlook-message-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbottema%2Foutlook-message-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bbottema","download_url":"https://codeload.github.com/bbottema/outlook-message-parser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bbottema%2Foutlook-message-parser/sbom","scorecard":{"id":228093,"data":{"date":"2025-08-11","repo":{"name":"github.com/bbottema/outlook-message-parser","commit":"3ea717114d0320ac1f1794053fc121a977c96715"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 2/25 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE-2.0.txt:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-17T04:12:47.739Z","repository_id":18299343,"created_at":"2025-08-17T04:12:47.740Z","updated_at":"2025-08-17T04:12:47.740Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30301109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T14:33:48.460Z","status":"ssl_error","status_checked_at":"2026-03-09T14:33:48.027Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","java","outlook"],"created_at":"2024-08-02T22:01:51.872Z","updated_at":"2026-03-09T15:31:39.486Z","avatar_url":"https://github.com/bbottema.png","language":"Java","readme":"[![APACHE v2 License](https://img.shields.io/badge/license-apachev2-blue.svg?style=flat)](LICENSE-2.0.txt) \n[![Latest Release](https://img.shields.io/maven-central/v/org.simplejavamail/outlook-message-parser.svg?style=flat)](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.simplejavamail%22%20AND%20a%3A%22outlook-message-parser%22) \n[![Javadocs](http://www.javadoc.io/badge/org.simplejavamail/outlook-message-parser.svg)](http://www.javadoc.io/doc/org.simplejavamail/outlook-message-parser) \n[![Codacy](https://img.shields.io/codacy/grade/db23d489d8374704a7a7e145f2dc6129?style=flat)](https://www.codacy.com/app/b-bottema/outlook-message-parser)\n\n# Outlook Message Parser\n*Outlook Message Parser* is a small open source Java library that parses Outlook .msg files.\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.simplejavamail\u003c/groupId\u003e\n  \u003cartifactId\u003eoutlook-message-parser\u003c/artifactId\u003e\n  \u003cversion\u003e1.14.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nOutlook Message Parser is a continuation (or fork if that project independently continues) of [msgparser](https://github.com/bbottema/msgparser). \n\nUnder the hood it uses the [Apache POI - POIFS](http://poi.apache.org/poifs/) library to parse the message files which use the OLE 2 Compound Document format. Thus, it is merely a convenience library that covers the details of the .msg file. The implementation is based on the information provided at [fileformat.info](http://www.fileformat.info/format/outlookmsg/).\n\nv1.14.0 - [v1.14.1](https://search.maven.org/#artifactdetails%7Corg.simplejavamail%7Coutlook-message-parser%7C1.14.1%7Cjar)\n\n- 1.14.1 (08-06-2024): [#64](https://github.com/bbottema/outlook-message-parser/issues/64): [Bug] Parsing lists to HTML has double bullet points\n- 1.14.0 (25-05-2024): [#80](https://github.com/bbottema/outlook-message-parser/issues/80): RTF converted to HTML doesn't always detect charset properly\n\n\nv1.13.0 - [v1.13.4](https://search.maven.org/#artifactdetails%7Corg.simplejavamail%7Coutlook-message-parser%7C1.13.4%7Cjar)\n\n- 1.13.4 (04-May-2024): bumped apache poi to 5.2.5 and managed commons-io to 2.16.1\n- 1.13.3 (04-May-2024): bumped angus-activation from 2.0.2 to 2.0.3\n- 1.13.2 (05-April-2024): [#73 B](https://github.com/bbottema/outlook-message-parser/issues/73): Don't overwrite existing address, but do retain X500 address if available\n- 1.13.1 (04-April-2024): [#73 A](https://github.com/bbottema/outlook-message-parser/issues/73): Further improve X500 addresses detection\n- 1.13.0 (18-January-2024): [#71](https://github.com/bbottema/outlook-message-parser/issues/71): Update to latest Jakarta+Angus dependencies\n\n\n[v1.12.0](https://search.maven.org/#artifactdetails%7Corg.simplejavamail%7Coutlook-message-parser%7C1.12.0%7Cjar) (10-December-2023)\n\n- [#70](https://github.com/bbottema/outlook-message-parser/issues/70): [Enhancement] ignore recipients with null-address\n\n\nv1.11.0 - [v1.11.1](https://search.maven.org/#artifactdetails%7Corg.simplejavamail%7Coutlook-message-parser%7C1.11.1%7Cjar)\n\n- 1.11.1 (08-December-2023): [#69](https://github.com/bbottema/outlook-message-parser/pull/69): Enhancement: instead of ignoring them completely, only ignore for embedded images\n- 1.11.0 (08-December-2023): [#69](https://github.com/bbottema/outlook-message-parser/pull/69): Enhancement: ignore attachment with missing content\n\n\nv1.10.0 - [v1.10.2](https://search.maven.org/#artifactdetails%7Corg.simplejavamail%7Coutlook-message-parser%7C1.10.2%7Cjar)\n\n- 1.10.2 (03-December-2023): [#68](https://github.com/bbottema/outlook-message-parser/pull/68) Improved heuristics for X500 Names\n- 1.10.1 (24-October-2023): [#67](https://github.com/bbottema/outlook-message-parser/pull/67) Fixed \"possibility to parse X500 Names\"\n- 1.10.0 (24-October-2023): [#67](https://github.com/bbottema/outlook-message-parser/pull/67) Adding possibility to parse X500 Names (dont' use this version)\n\n\nv1.9.0 - [v1.9.6](https://search.maven.org/#artifactdetails%7Corg.simplejavamail%7Coutlook-message-parser%7C1.9.6%7Cjar) \n    \n- v1.9.6 (18-July-2022): [#57](https://github.com/bbottema/outlook-message-parser/pull/57) Same, but now with Collection values to support duplicate headers\n- v1.9.5 (18-July-2022): [#57](https://github.com/bbottema/outlook-message-parser/pull/57) Headers should be more accessible, rather than just a big string of text\n- v1.9.x - a bunch of dependency fixes and tries apparently, my release train was not so smooth here, sorry\n- v1.9.0 (13-May-2021): [#55](https://github.com/bbottema/outlook-message-parser/pull/55) CVE issue: Update Apache POI and POI Scratchpad\n\n\nv1.8.0 - [v1.8.1](https://search.maven.org/#artifactdetails%7Corg.simplejavamail%7Coutlook-message-parser%7C1.8.1%7Cjar)\n\n- v1.8.1 (31-January-2022): [#41](https://github.com/bbottema/outlook-message-parser/pull/41) OutlookMessage.getPropertyValue() should be public\n- v1.8.0 (31-January-2022): [#52](https://github.com/bbottema/outlook-message-parser/pull/52) Adjust dependencies and make Java 9+ friendly\n- v1.8.0 (31-January-2022): [#45](https://github.com/bbottema/outlook-message-parser/pull/45) Bump commons-io from 2.6 to 2.7\n\n\nv1.7.10 - v1.7.13 (17-November-2021)\n\n- [#49](https://github.com/bbottema/outlook-message-parser/issues/49) bugfix solved by improved charset handling\n- [#46](https://github.com/bbottema/outlook-message-parser/issues/46) bugfix Rare NPE case of producing empty nested outlook attachment when there should be no attachments\n- [#43](https://github.com/bbottema/outlook-message-parser/issues/43) bugfix bugfix getFromEmailFromHeaders cannot handle \"quoted-name-with@at-sign\"\n- some minor code improvements\n\n\nv1.7.9 (10-October-2020)\n\n- [#28](https://github.com/bbottema/outlook-message-parser/issues/28) / [#36](https://github.com/bbottema/outlook-message-parser/issues/36) bugfix NumberFormatException on parsing .msg files\n\n\nv1.7.8 (4-August-2020)\n\n- [#35](https://github.com/bbottema/outlook-message-parser/issues/35) Clarify permission to publish project using Apache v2 license\n\n\nv1.7.0 - v1.7.7 (9-January-2020 - 17-July-2020)\n \n- v1.7.7 - [#34](https://github.com/bbottema/outlook-message-parser/issues/34) Wrong encoding for bodyHTML\n- v1.7.5 - [#31](https://github.com/bbottema/outlook-message-parser/issues/31) Bugfix for attachments with special characters in the name\n- v1.7.4 - [#27](https://github.com/bbottema/outlook-message-parser/issues/27) Same as 1.7.3, but now also for chinese senders\n- v1.7.3 - [#27](https://github.com/bbottema/outlook-message-parser/issues/27) When from name/address are not available (unsent emails), these fields are filled with binary garbage\n- v1.7.2 - [#26](https://github.com/bbottema/outlook-message-parser/issues/26) To email address is not handled properly when name is omitted\n- v1.7.1 - [#25](https://github.com/bbottema/outlook-message-parser/issues/25) NPE on ClientSubmitTime when original message has not been sent yet\n- v1.7.1 - [#23](https://github.com/bbottema/outlook-message-parser/issues/23) Bug: __nameid_ directory should not be parsed (and causing invalid HTML body)\n- v1.7.0 - [#18](https://github.com/bbottema/outlook-message-parser/issues/18) Upgrade Apache POI 3.9 -\u003e 4.x\n\nNote: Apache POI requires minimum Java 8\n\n\nv1.6.0 (8-January-2020)\n\n- [#21](https://github.com/bbottema/outlook-message-parser/issues/21) Multiple TO recipients are not handles properly\n\n\nv1.5.0 (18-December-2019)\n\n- [#20](https://github.com/bbottema/outlook-message-parser/issues/20) CC and BCC recipients are not parsed properly\n- [#19](https://github.com/bbottema/outlook-message-parser/issues/19) Use real Outlook ContentId Attribute to resolve CID Attachments\n\n\nv1.4.1 (22-October-2019)\n\n- [#17](https://github.com/bbottema/outlook-message-parser/issues/17) Fixed encoding error for UTF-8's Windows legacy name (cp)65001\n\n\nv1.4.0 (13-October-2019)\n\n- [#9](https://github.com/bbottema/outlook-message-parser/issues/9) Replaced the RFC to HTML converter with a brand new RFC-compliant convert! (thanks to @fadeyev!)\n\n\nv1.3.0 (4-October-2019)\n\n- [#14](https://github.com/bbottema/outlook-message-parser/issues/14) Dependency problem with Java9+, missing Jakarta Activation Framework\n- [#13](https://github.com/bbottema/outlook-message-parser/issues/13) HTML start tags with extra space not handled correctly\n- [#11](https://github.com/bbottema/outlook-message-parser/issues/11) SimpleRTF2HTMLConverter inserts too many \u003cbr/\u003e tags\n- [#10](https://github.com/bbottema/outlook-message-parser/issues/10) Embedded images with DOS-like names are classified as attachments\n- [#9](https://github.com/bbottema/outlook-message-parser/issues/9) SimpleRTF2HTMLConverter removes some valid tags during conversion\n\n\nv1.2.1 (12-May-2019)\n\n- Ignore non S/MIME related content types when extracting S/MIME metadata\n- Added toString and equals methods to the S/MIME data classes\n\n\nv1.1.21 (4-May-2019)\n\n- Upgraded mediatype recognition based on file extension for incomplete attachments\n- Added / improved support for public S/MIME meta data \n\n\nv1.1.20 (14-April-2019)\n\n- [#7](https://github.com/bbottema/outlook-message-parser/issues/7) Fix missing S/MIME header details that are needed to determine the type of S/MIME application\n\n\nv1.1.19 (10-April-2019)\n\n- Log rtf compression error, but otherwise ignore it and keep going and extract what we can.\n\n\nv1.1.18 (5-April-2019)\n\n- [#6](https://github.com/bbottema/outlook-message-parser/issues/6) Missing mimeTag for attachments should be guessed based on file extension\n\n\nv1.1.17 (19-August-2018)\n\n- [#3](https://github.com/bbottema/simple-java-mail/issues/3) implemented robust support for character sets / code pages in RTF to HTML \nconversion (fixes chinese support #3)\n- fixed bug where too much text was cleaned up as part of superfluous RTF cleanup step when converting to HTML\n- Performance boost in the RTF -\u003e HTML converter\n\n\nv1.1.16 (~28-Februari-2017)\n\n- First Maven deployment, continuing version number from 1.1.15 of msgparser (https://github.com/bbottema/msgparser)\n\n\nv1.16\n - Added support for replyTo name and address\n - cleaned up code (1st wave)","funding_links":[],"categories":["Java"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbottema%2Foutlook-message-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbbottema%2Foutlook-message-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbbottema%2Foutlook-message-parser/lists"}