• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

go-pkgz / email
93%

Build:
DEFAULT BRANCH: master
Repo Added 11 Feb 2022 07:42PM UTC
Files 3
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH master
branch: master
CHANGE BRANCH
x
Reset
  • master
  • attachment-and-message-fixes
  • attachment-filename-header-injection
  • display-name-fix
  • feat/send-context
  • fix-ci-caching
  • helo-host
  • paskal/brush_up
  • paskal/shadow
  • refs/tags/v0.1.0
  • refs/tags/v0.1.1
  • refs/tags/v0.1.2
  • refs/tags/v0.2.0
  • refs/tags/v0.3.0
  • refs/tags/v0.4.0
  • refs/tags/v0.4.1
  • refs/tags/v0.5.0
  • refs/tags/v0.6.0
  • refs/tags/v0.7.0
  • refs/tags/v0.8.0
  • security-and-reliability-fixes

19 Aug 2026 01:26AM UTC coverage: 92.875% (+0.7%) from 92.191%
32204932748

push

github

web-flow
Format attachment file names into mime part headers safely (#31)

Previously, the file name went into the Content-Type name parameter by
plain string concatenation, so a name containing CR or LF ended the header
and injected part headers and a body of its own. Content-Disposition was
built with %q and escaped those, but its quoting was still wrong for names
holding a quote, a semicolon or non-ascii characters.

After this change, both headers are built with mime.FormatMediaType, which
quotes and RFC 2231 encodes the name, and a file name containing CR or LF
is rejected outright, which also keeps Content-ID safe.

The generated headers change shape for every attachment: parameters are no
longer quoted when they don't need to be, so tests assert file names from
the parsed mime tree instead of matching the serialized header text.

14 of 14 new or added lines in 1 file covered. (100.0%)

378 of 407 relevant lines covered (92.87%)

219.73 hits per line

Relevant lines Covered
Build:
Build:
407 RELEVANT LINES 378 COVERED LINES
219.73 HITS PER LINE
Source Files on master
  • Tree
  • List 3
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
32204932748 master Format attachment file names into mime part headers safely (#31) Previously, the file name went into the Content-Type name parameter by plain string concatenation, so a name containing CR or LF ended the header and injected part headers and a bod... push 19 Aug 2026 01:26AM UTC web-flow github
92.87
32195979123 master Add SendContext to bound the whole SMTP transaction (#29) TimeOut applies to the connection setup only, so a server which accepts the connection and stalls afterwards blocks Send forever: greeting, auth, recipients, body and QUIT have no deadline... push 18 Aug 2026 11:10PM UTC web-flow github
92.19
32195276346 master Wrap base64 attachments, accept empty files, build the message in one buffer (#28) * Build the message in a single buffer Previously, buildMessage assembled the headers into a string, the body into a separate buffer, joined the two into another ... push 18 Aug 2026 11:00PM UTC web-flow github
92.82
32195200143 master Reject header injection and report smtp delivery failures (#27) * Reject CR and LF in email header values Previously, From, To, Subject, UnsubscribeLink and InReplyTo were copied into the generated message as is, so a value with CR or LF termina... push 18 Aug 2026 10:59PM UTC web-flow github
94.15
32083671588 master add HELOHost option for SMTP greeting (#26) net/smtp hardcodes the greeting to "localhost" and nothing outside the process can change it, so servers with helo restrictions reject the connection. Unset, `Hello` is never called and the greeting sta... push 18 Aug 2026 12:14AM UTC web-flow github
91.62
29779381978 master test: enable testifylint and adopt its idioms enable the testifylint linter and rewrite the assertions it flags: use assert.Len / assert.Empty instead of Equal on len(), assert.True for bool comparisons, and require for error assertions. push 20 Jul 2026 09:14PM UTC umputun github
88.82
29778234336 master docs: add CLAUDE.md with architecture and commands push 20 Jul 2026 08:57PM UTC umputun github
88.82
19909695321 master Improve extractEmailAddress: use net/mail, apply to recipients, add tests - Replace regex with net/mail.ParseAddress for RFC 5322 compliance - Apply extractEmailAddress to recipients (params.To) for consistency - Add strings.TrimSpace to handle w... push 03 Dec 2025 09:38PM UTC umputun github
88.82
19903548715 master fix CI workflow caching by reordering checkout and setup-go steps (#24) - move checkout step before setup-go to enable proper Go module caching - update actions/checkout to v4 and actions/setup-go to v5 - update golangci-lint-action to v7 with ve... push 03 Dec 2025 05:51PM UTC web-flow github
88.59
14072145986 master Fix golangci-lint shadow This caused golangci-lint config validation errors push 25 Mar 2025 11:34PM UTC umputun github
88.59
See All Builds (101)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc