Skip to content

feat(export): add EML email export - #1746

Open
ishaan-jindal wants to merge 2 commits into
floatpane:masterfrom
ishaan-jindal:feature/export-eml
Open

ishaan-jindal wants to merge 2 commits into
floatpane:masterfrom
ishaan-jindal:feature/export-eml

Conversation

@ishaan-jindal

Copy link
Copy Markdown

What?

Adds "Export as EML" to the email palette. The focused message is saved verbatim as raw RFC822 (.eml) through the existing save-file-picker path, alongside the HTML/Markdown options.

Why?

Closes #1537 — there was no quick way to save a single message as a standard .eml file without manually copying raw source.

Signed-off-by: Ishaan Jindal <ishaanjindal2006@gmail.com>
@ishaan-jindal
ishaan-jindal requested a review from a team as a code owner October 19, 2026 10:31
@floatpanebot floatpanebot added enhancement New feature or request area/tui Terminal UI / view layer area/docs Docs site / README size/S Diff: 11–50 lines labels Oct 19, 2026
@floatpanebot

floatpanebot commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Benchmark report — no significant change

Metrics worse: 0 · better: 0 (threshold: ±3%).

benchstat output
goos: linux
goarch: amd64
pkg: github.com/floatpane/matcha/backend
cpu: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
                           │   old.txt    │               new.txt                │
                           │    sec/op    │    sec/op      vs base               │
ParseSearchQuery_Simple-4    2.284µ ± 69%   3.058µ ±  38%        ~ (p=0.589 n=6)
ParseSearchQuery_Complex-4   7.644µ ± 41%   6.735µ ± 117%        ~ (p=0.937 n=6)
TokenizeSearchQuery-4        4.791µ ± 30%   5.493µ ±  41%        ~ (p=0.394 n=6)
geomean                      4.374µ         4.836µ         +10.58%

                           │  old.txt   │              new.txt               │
                           │    B/op    │    B/op     vs base                │
ParseSearchQuery_Simple-4    26.00 ± 0%   26.00 ± 0%       ~ (p=1.000 n=6) ¹
ParseSearchQuery_Complex-4   762.0 ± 0%   762.0 ± 0%       ~ (p=1.000 n=6) ¹
TokenizeSearchQuery-4        176.0 ± 0%   176.0 ± 0%       ~ (p=1.000 n=6) ¹
geomean                      151.6        151.6       +0.00%
¹ all samples are equal

                           │  old.txt   │              new.txt               │
                           │ allocs/op  │ allocs/op   vs base                │
ParseSearchQuery_Simple-4    2.000 ± 0%   2.000 ± 0%       ~ (p=1.000 n=6) ¹
ParseSearchQuery_Complex-4   23.00 ± 0%   23.00 ± 0%       ~ (p=1.000 n=6) ¹
TokenizeSearchQuery-4        9.000 ± 0%   9.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                      7.453        7.453       +0.00%
¹ all samples are equal

pkg: github.com/floatpane/matcha/tui
                    │   old.txt   │              new.txt               │
                    │   sec/op    │    sec/op     vs base              │
LogPanelView-4        146.1µ ± 5%   149.4µ ± 19%       ~ (p=0.394 n=6)
SearchOverlayView-4   159.5µ ± 6%   157.8µ ±  6%       ~ (p=0.937 n=6)
InboxConstruction-4   922.4µ ± 8%   935.7µ ± 13%       ~ (p=0.589 n=6)
geomean               278.1µ        280.5µ        +0.86%

                    │    old.txt    │               new.txt               │
                    │     B/op      │     B/op       vs base              │
LogPanelView-4        44.67Ki ± 51%   44.67Ki ± 51%       ~ (p=1.000 n=6)
SearchOverlayView-4   56.15Ki ± 41%   56.16Ki ±  0%       ~ (p=0.383 n=6)
InboxConstruction-4   874.5Ki ±  0%   874.5Ki ±  0%       ~ (p=0.180 n=6)
geomean               129.9Ki         129.9Ki        +0.00%

                    │   old.txt   │              new.txt              │
                    │  allocs/op  │  allocs/op   vs base              │
LogPanelView-4         714.0 ± 0%    714.0 ± 0%       ~ (p=1.000 n=6)
SearchOverlayView-4    926.0 ± 0%    926.0 ± 0%       ~ (p=0.273 n=6)
InboxConstruction-4   3.483k ± 0%   3.483k ± 0%       ~ (p=0.188 n=6)
geomean               1.321k        1.321k       -0.00%

auto-generated by benchmarks.yml

@andrinoff

Copy link
Copy Markdown
Member

Maybe we can have here also refactoring?

Option "Save as..." which opens and shows all three of the file formats

@ishaan-jindal

Copy link
Copy Markdown
Author

Yeah, that would be nice. Instead of the 3 flat options right now.

Signed-off-by: Ishaan Jindal <ishaanjindal2006@gmail.com>
@ishaan-jindal

Copy link
Copy Markdown
Author
image image Much better?

@floatpanebot floatpanebot added the size/M Diff: 51–200 lines label Oct 19, 2026
@andrinoff

Copy link
Copy Markdown
Member

thank you! will review thoroughly on the weekend

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs Docs site / README area/tui Terminal UI / view layer enhancement New feature or request size/M Diff: 51–200 lines size/S Diff: 11–50 lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

FEAT: Export a single email to .eml file

3 participants