{"id":51347464,"url":"https://github.com/longstone/eml-viewer-macos","last_synced_at":"2026-07-02T12:40:41.022Z","repository":{"id":354122926,"uuid":"1221805272","full_name":"longstone/eml-viewer-macos","owner":"longstone","description":"eml viewer for mac os","archived":false,"fork":false,"pushed_at":"2026-04-27T07:36:01.000Z","size":364,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-27T09:19:17.818Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","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/longstone.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-26T17:49:14.000Z","updated_at":"2026-04-27T07:32:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/longstone/eml-viewer-macos","commit_stats":null,"previous_names":["longstone/eml-viewer-macos"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/longstone/eml-viewer-macos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longstone%2Feml-viewer-macos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longstone%2Feml-viewer-macos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longstone%2Feml-viewer-macos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longstone%2Feml-viewer-macos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/longstone","download_url":"https://codeload.github.com/longstone/eml-viewer-macos/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/longstone%2Feml-viewer-macos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35048062,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-02T02:00:06.368Z","response_time":173,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-07-02T12:40:40.336Z","updated_at":"2026-07-02T12:40:41.017Z","avatar_url":"https://github.com/longstone.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EML Viewer\n\nDisclaimer: heavly based on ai generated code!\n\nA free, native macOS app to open and preview email files.\n\n- Opens **`.eml`** (RFC 822) and **`.msg`** (Microsoft Outlook / OLE2 compound file)\n- Drag-and-drop welcome window; double-click in Finder also works\n- Headers (From / To / Cc / Subject / Date), full-headers toggle, raw-source toggle\n- Rich HTML rendering via `WKWebView` with a plain-text fallback\n- Attachment list with **Save As…** and **Quick Look**\n- No telemetry, no accounts, no network calls except what HTML in the message itself triggers\n- Distributed **as-is, free of charge**, under the MIT license\n\n---\n\n## Install (Homebrew)\n\nOnce a release is published on GitHub:\n\n```sh\nbrew install --cask longstone/tap/eml-viewer\n```\n### Caveat\n\nDue to the App is not signed it will be put in quarantine:\n\n`find /Applications/eml-viewer.app -exec xattr -d com.apple.quarantine {} \\; 2\u003e/dev/null\nqlmanage -r`\n\n\nTo publish the cask you have two options:\n\n\n **Personal tap** https://github.com/longstone/homebrew-tap\n\n## Build from source\n\nRequires macOS with Xcode 26+ installed (Command Line Tools alone are not\nenough — the build needs the full Xcode).\n\n```sh\n# open in Xcode and press ⌘R\nopen eml-viewer.xcodeproj\n\n# or from the command line\nxcodebuild -project eml-viewer.xcodeproj -scheme eml-viewer \\\n  -configuration Release -destination 'generic/platform=macOS' build\n```\n\n## Cut a release + Homebrew cask\n\n### Locally\n\n```sh\n./scripts/build-release.sh 0.1.0\n```\n\nThis produces:\n\n- `dist/eml-viewer.app` — the signed (ad-hoc) app bundle\n- `dist/eml-viewer-0.1.0.zip` — upload this to a GitHub Release\n- `dist/eml-viewer-0.1.0.zip.sha256` — paste the hash into\n  `Casks/eml-viewer.rb` (l[ongstone/homebrew-tap](https://github.com/longstone/homebrew-tap/blob/main/eml-viewer.rb))\n\nThen update `Casks/eml-viewer.rb`:\n\n```ruby\nversion \"0.1.0\"\nsha256  \"\u003chash from the .sha256 file\u003e\"\n```\n\n…and push it to your `homebrew-tap` repo.\n\n### Via GitHub Actions\n\nThe workflow in `.github/workflows/release.yml` runs on GitHub-hosted macOS\nrunners and automates the full release flow:\n\n1. Push your code to `github.com/longstone/eml-viewer-macos`.\n2. Tag a release and push the tag:\n   ```sh\n   git tag -a v0.1.0 -m \"v0.1.0\"\n   git push origin v0.1.0\n   ```\n3. The workflow runs `test` → `build` → `release`. The `release` job creates\n   a GitHub Release with the `.zip` and `.zip.sha256` attached as assets and\n   the SHA-256 embedded in the release notes.\n4. Copy the SHA-256 from the release notes (or the `.sha256` asset) into\n   `Casks/eml-viewer.rb`, then push the updated cask to your\n   `homebrew-tap` repo.\n\nYou can also trigger the workflow manually via **Run workflow** on the\nActions tab to produce build artifacts without cutting a release.\n\n**Regenerating the app icon**\n\n```sh\nswift scripts/generate-icon.swift\n```\n\nRe-runs the icon generator and overwrites\n`eml-viewer/Assets.xcassets/AppIcon.appiconset/*` plus a 1024×1024 master at\n`scripts/icon-master-1024.png`.\n\n\u003e **Note on signing/notarization.** The build script ad-hoc signs the app so it\n\u003e launches locally. For a cask that doesn't trigger Gatekeeper warnings on\n\u003e other users' machines you'll want a paid Apple Developer ID and\n\u003e `xcrun notarytool`. This repo intentionally does **not** bake that in — the\n\u003e app is free and distributed as-is.\n\n## Running the tests\n\n```sh\nxcodebuild test -project eml-viewer.xcodeproj -scheme eml-viewer \\\n  -destination 'platform=macOS'\n```\n\n## Project layout\n\n```\neml-viewer/\n  eml-viewer/                SwiftUI app sources\n    eml_viewerApp.swift      @main + DocumentGroup\n    ContentView.swift        thin wrapper around EmailView\n    EmailView.swift          header card, body, attachments, WKWebView\n    EMLDocument.swift        FileDocument for .eml\n    EMLParser.swift          self-contained MIME parser (dispatches to MSG on CFB magic)\n    MSGParser.swift          MAPI property decoder for Outlook .msg\n    CFBReader.swift          OLE2 / Compound File Binary container reader\n    WelcomeView.swift        startup drag-and-drop window\n    Info.plist               CFBundleDocumentTypes for .eml + .msg association\n  eml-viewerTests/           Swift Testing unit tests for the parser\n  Casks/eml-viewer.rb        Homebrew cask\n  scripts/build-release.sh   one-shot release build + zip + sha256\n```\n\n## License\n\nMIT — see `LICENSE`. The app is provided free of charge with **no warranty**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flongstone%2Feml-viewer-macos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flongstone%2Feml-viewer-macos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flongstone%2Feml-viewer-macos/lists"}