[PR #1497] [MERGED] fix(deps): update module github.com/wneessen/go-mail to v0.7.0 #9300

Closed
opened 2026-04-23 08:52:49 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/go-vikunja/vikunja/pull/1497
Author: @renovate[bot]
Created: 9/12/2025
Status: Merged
Merged: 9/15/2025
Merged by: @kolaente

Base: mainHead: renovate/github.com-wneessen-go-mail-0.x


📝 Commits (1)

  • a607405 fix(deps): update module github.com/wneessen/go-mail to v0.7.0

📊 Changes

2 files changed (+3 additions, -1 deletions)

View changed files

📝 go.mod (+1 -1)
📝 go.sum (+2 -0)

📄 Description

This PR contains the following updates:

Package Change Age Confidence
github.com/wneessen/go-mail v0.6.2 -> v0.7.0 age confidence

Release Notes

wneessen/go-mail (github.com/wneessen/go-mail)

v0.7.0: : Compatiblity changes, EML parser fixes, mail.Address support and more

Compare Source

Welcome to go-mail v0.7.0! 🎉

This release brings important improvements, new features, and fixes to make working with go-mail more reliable and powerful.

[!WARNING]
BREAKING CHANGES! This release introduces some changes that might potentially break your code base, so please review carefully before upgrading.

Change in Supported Go Versions

With this release, go-mail will no longer commit to supporting the last four Go versions. Instead, we will follow the official Go release policy and only support versions that are actively maintained by the Go team.

Why this change?
  • Security and Dependencies
    Even though go-mail currently has very few dependencies, keeping support for outdated Go versions would prevent us from safely updating them in the future. This creates the risk of leaving users exposed to unpatched security vulnerabilities and critical issues.

  • Maintenance Costs
    Supporting unsupported Go versions requires extra workarounds, conditionals, and testing overhead. Every additional version increases maintenance complexity and takes valuable time away from adding new features, improving the code base, and fixing bugs.

  • Alignment with the Go Ecosystem
    The Go team provides two releases per year, and each version receives about one year of official support. By aligning with this policy, go-mail ensures that users always benefit from current language features and security patches.

What this means for you

If you are already on a Go version that is actively maintained (at this point: 1.24 or 1.25), nothing changes. If you are on an older, unsupported version, you will not be able to run go-mail v0.7.0 or higher and we strongly encourage upgrading. This will not only allow you to continue using go-mail but will also ensure you benefit from the security and performance improvements provided by the Go team.

Change Reply-To header from generic header type to address header type

|Breaking change| With PR #​441 we changed Reply-To header to an AddrHeader type. Since Reply-To is actually an address header which formats the mail address accordingly, and not a generic header, this could lead to potential double encoding if the address and name contain special characters. This change is potentially a breaking change, since we are changing a public type, but as long as the user makes use of msg.ReplyTo() or msg.ReplyToFormat() this should not cause any problems.

Fix "short writes" in Base64LineBreaker and make the type private

|Breaking change| With PRs #​445, #​448 and #​443 we address an issue with the Base64LineBreaker.Write implementation which reports an incorrect count of bytes written ("short writes). While those short writes aren't noticed in practice, since we use base64.Encoder.Encode.Write under the hood, which ignores short writes, the issue was still fixed to make it future-proof against potential changes in the base64 package. This issue was reported and fixed by @​dolmen. Thank you very much for your contribution! It was also pointed out, that our Base64LineBreaker was a public type without exposing any public methods, making it unusuable for any 3rd party library. Therefore the Base64LineBreaker type was made private (which in theory is a breaking change, but in practice should not affect any user, given that no public methods were exposed)

EML parsing

The EML parsing was made more robust by introducing several fixes/improvements:

  • Fix nil map assignment in EML parser: PR #​447 fixes a bug in the EML parser which was caused by a non-initialized map. Parsing an email could cause a panic: assignment to entry in nil map. This issue was reported by numerous users (see: #​446, #​462, #​468, #​482 and #​490). Thanks to everybody who reported this issue!
  • Fix multipart header parsing: PR #​458 improves the handling of multipart headers by addressing edge cases where multiple parameters are present.
  • Use the original EML boundary instead of generating a new one : PR #​491 fixes an issue in which parsed multipart messages would hold two boundary headers, which would render the mail broken. This issue was reported and fixed by @​termermc. Thanks for your contribution!
Support for mail.Address types

PR #​472 adds support for directly providing *mail.Address instances by providing a SetAddrHeaderFromMailAddress method. It also provides methods for directly providing *mail.Address instances for all the various address types (From, To, CC, BCC, etc.). Additionally it adds a IsAddrHeader method, which checks if the provided string is an address header.

Error handler registry

PR #​492 introduces ResponseErrorHandler and ErrorHandlerRegistry - an interface that defines a method for handling SMTP responses that do not comply with expected formats or behaviors and would cause errors during the SMTP communication. It is useful for implementing retry logic, logging, provider-specific error handling. It injects itself into the smtp.Client and is called whenever a server response does fail. This feature addresses #​464 and #​463. In our Wiki we will collect a currated list of known providers with issues and corresponding code examples on how to implement the error handler.

What's Changed

CI/CD maintenance changes

New Contributors

Full Changelog: https://github.com/wneessen/go-mail/compare/v0.6.2...v0.7.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/go-vikunja/vikunja/pull/1497 **Author:** [@renovate[bot]](https://github.com/apps/renovate) **Created:** 9/12/2025 **Status:** ✅ Merged **Merged:** 9/15/2025 **Merged by:** [@kolaente](https://github.com/kolaente) **Base:** `main` ← **Head:** `renovate/github.com-wneessen-go-mail-0.x` --- ### 📝 Commits (1) - [`a607405`](https://github.com/go-vikunja/vikunja/commit/a607405f5b57c3955e6033c1761201bb61b2ce5a) fix(deps): update module github.com/wneessen/go-mail to v0.7.0 ### 📊 Changes **2 files changed** (+3 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `go.mod` (+1 -1) 📝 `go.sum` (+2 -0) </details> ### 📄 Description This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [github.com/wneessen/go-mail](https://redirect.github.com/wneessen/go-mail) | `v0.6.2` -> `v0.7.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fwneessen%2fgo-mail/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fwneessen%2fgo-mail/v0.6.2/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>wneessen/go-mail (github.com/wneessen/go-mail)</summary> ### [`v0.7.0`](https://redirect.github.com/wneessen/go-mail/releases/tag/v0.7.0): : Compatiblity changes, EML parser fixes, mail.Address support and more [Compare Source](https://redirect.github.com/wneessen/go-mail/compare/v0.6.2...v0.7.0) Welcome to go-mail v0.7.0! 🎉 This release brings important improvements, new features, and fixes to make working with go-mail more reliable and powerful. > \[!WARNING] > **BREAKING CHANGES!** This release introduces some changes that might potentially break your code base, so please review carefully before upgrading. ##### Change in Supported Go Versions With this release, go-mail will no longer commit to supporting the last four Go versions. Instead, we will follow the [official Go release policy](https://go.dev/doc/devel/release#policy) and only support versions that are actively maintained by the Go team. ##### Why this change? - **Security and Dependencies**\ Even though go-mail currently has very few dependencies, keeping support for outdated Go versions would prevent us from safely updating them in the future. This creates the risk of leaving users exposed to unpatched security vulnerabilities and critical issues. - **Maintenance Costs**\ Supporting unsupported Go versions requires extra workarounds, conditionals, and testing overhead. Every additional version increases maintenance complexity and takes valuable time away from adding new features, improving the code base, and fixing bugs. - **Alignment with the Go Ecosystem**\ The Go team provides two releases per year, and each version receives about one year of official support. By aligning with this policy, go-mail ensures that users always benefit from current language features and security patches. ##### What this means for you If you are already on a Go version that is actively maintained (at this point: 1.24 or 1.25), nothing changes. If you are on an older, unsupported version, you will not be able to run go-mail v0.7.0 or higher and we strongly encourage upgrading. This will not only allow you to continue using go-mail but will also ensure you benefit from the security and performance improvements provided by the Go team. ##### Change Reply-To header from generic header type to address header type **|Breaking change|** With PR [#&#8203;441](https://redirect.github.com/wneessen/go-mail/issues/441) we changed `Reply-To` header to an `AddrHeader` type. Since `Reply-To` is actually an address header which formats the mail address accordingly, and not a generic header, this could lead to potential double encoding if the address and name contain special characters. This change is potentially a breaking change, since we are changing a public type, but as long as the user makes use of `msg.ReplyTo()` or `msg.ReplyToFormat()` this should not cause any problems. ##### Fix "short writes" in Base64LineBreaker and make the type private **|Breaking change|** With PRs [#&#8203;445](https://redirect.github.com/wneessen/go-mail/issues/445), [#&#8203;448](https://redirect.github.com/wneessen/go-mail/issues/448) and [#&#8203;443](https://redirect.github.com/wneessen/go-mail/issues/443) we address an issue with the `Base64LineBreaker.Write` implementation which reports an incorrect count of bytes written ("short writes). While those short writes aren't noticed in practice, since we use `base64.Encoder.Encode.Write` under the hood, which ignores short writes, the issue was still fixed to make it future-proof against potential changes in the `base64` package. This issue was reported and fixed by [@&#8203;dolmen](https://redirect.github.com/dolmen). Thank you very much for your contribution! It was also pointed out, that our `Base64LineBreaker` was a public type without exposing any public methods, making it unusuable for any 3rd party library. Therefore the `Base64LineBreaker` type was made private (which in theory is a **breaking change**, but in practice should not affect any user, given that no public methods were exposed) ##### EML parsing The EML parsing was made more robust by introducing several fixes/improvements: - **Fix nil map assignment in EML parser:** PR [#&#8203;447](https://redirect.github.com/wneessen/go-mail/issues/447) fixes a bug in the EML parser which was caused by a non-initialized map. Parsing an email could cause a `panic: assignment to entry in nil map`. This issue was reported by numerous users (see: [#&#8203;446](https://redirect.github.com/wneessen/go-mail/issues/446), [#&#8203;462](https://redirect.github.com/wneessen/go-mail/issues/462), [#&#8203;468](https://redirect.github.com/wneessen/go-mail/issues/468), [#&#8203;482](https://redirect.github.com/wneessen/go-mail/issues/482) and [#&#8203;490](https://redirect.github.com/wneessen/go-mail/issues/490)). Thanks to everybody who reported this issue! - **Fix multipart header parsing:** PR [#&#8203;458](https://redirect.github.com/wneessen/go-mail/issues/458) improves the handling of multipart headers by addressing edge cases where multiple parameters are present. - **Use the original EML boundary instead of generating a new one :** PR [#&#8203;491](https://redirect.github.com/wneessen/go-mail/issues/491) fixes an issue in which parsed multipart messages would hold two boundary headers, which would render the mail broken. This issue was reported and fixed by [@&#8203;termermc](https://redirect.github.com/termermc). Thanks for your contribution! ##### Support for mail.Address types PR [#&#8203;472](https://redirect.github.com/wneessen/go-mail/issues/472) adds support for directly providing `*mail.Address` instances by providing a `SetAddrHeaderFromMailAddress` method. It also provides methods for directly providing `*mail.Address` instances for all the various address types (From, To, CC, BCC, etc.). Additionally it adds a `IsAddrHeader` method, which checks if the provided string is an address header. ##### Error handler registry PR [#&#8203;492](https://redirect.github.com/wneessen/go-mail/issues/492) introduces `ResponseErrorHandler` and `ErrorHandlerRegistry` - an interface that defines a method for handling SMTP responses that do not comply with expected formats or behaviors and would cause errors during the SMTP communication. It is useful for implementing retry logic, logging, provider-specific error handling. It injects itself into the `smtp.Client` and is called whenever a server response does fail. This feature addresses [#&#8203;464](https://redirect.github.com/wneessen/go-mail/issues/464) and [#&#8203;463](https://redirect.github.com/wneessen/go-mail/issues/463). In our [Wiki](https://redirect.github.com/wneessen/go-mail/wiki) we will collect a [currated list of known providers](https://redirect.github.com/wneessen/go-mail/wiki/Error-Registry) with issues and corresponding code examples on how to implement the error handler. #### What's Changed - BREAKING CHANGE: Refactor Reply-To header handling. by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;441](https://redirect.github.com/wneessen/go-mail/pull/441) - POTENTIAL BREAKING: More Base64LineBreaker fuzzing by [@&#8203;dolmen](https://redirect.github.com/dolmen) in [#&#8203;443](https://redirect.github.com/wneessen/go-mail/pull/443) - Fix assignment to nil map in EML parser by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;447](https://redirect.github.com/wneessen/go-mail/pull/447) - Make Base64LineBreaker private by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;448](https://redirect.github.com/wneessen/go-mail/pull/448) - Fix multipart header parsing and add test for attachments with metadata by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;458](https://redirect.github.com/wneessen/go-mail/pull/458) - Fix "short writes" in Base64LineBreaker.Write by [@&#8203;dolmen](https://redirect.github.com/dolmen) in [#&#8203;445](https://redirect.github.com/wneessen/go-mail/pull/445) - Update TLS test certificates to use 2048-bit RSA keys by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;460](https://redirect.github.com/wneessen/go-mail/pull/460) - Improve PKCS7 test suite by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;423](https://redirect.github.com/wneessen/go-mail/pull/423) - Add support for mail.Address instances by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;472](https://redirect.github.com/wneessen/go-mail/pull/472) - Add support for server responses by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;475](https://redirect.github.com/wneessen/go-mail/pull/475) - Update README compatibility policy for Go versions by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;484](https://redirect.github.com/wneessen/go-mail/pull/484) - Refactor codebase to align with updated Go version support by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;486](https://redirect.github.com/wneessen/go-mail/pull/486) - When decoding a multipart message from EML, use the original EML boundary instead of generating a new one by [@&#8203;termermc](https://redirect.github.com/termermc) in [#&#8203;491](https://redirect.github.com/wneessen/go-mail/pull/491) - smtp: Implement ErrorHandlerRegistry for handling errors in SMTP responses by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;492](https://redirect.github.com/wneessen/go-mail/pull/492) - v0.7.0 release preparation by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;493](https://redirect.github.com/wneessen/go-mail/pull/493) - Removed internal PBKDF2 implementation and replaced with Go's stdlib by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;494](https://redirect.github.com/wneessen/go-mail/pull/494) #### CI/CD maintenance changes - Remove SonarQube integration from CI workflow. by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;442](https://redirect.github.com/wneessen/go-mail/pull/442) - Migrate golangci-lint to v2 by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;461](https://redirect.github.com/wneessen/go-mail/pull/461) - Update CI configuration to support Go 1.25 and disable older versions by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;485](https://redirect.github.com/wneessen/go-mail/pull/485) - Bump golang.org/x/text from 0.22.0 to 0.28.0 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in [#&#8203;481](https://redirect.github.com/wneessen/go-mail/pull/481) - Enable macOS builds in CI test matrix by [@&#8203;wneessen](https://redirect.github.com/wneessen) in [#&#8203;487](https://redirect.github.com/wneessen/go-mail/pull/487) - Bump golang.org/x/text from 0.28.0 to 0.29.0 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in [#&#8203;488](https://redirect.github.com/wneessen/go-mail/pull/488) #### New Contributors - [@&#8203;dolmen](https://redirect.github.com/dolmen) made their first contribution in [#&#8203;443](https://redirect.github.com/wneessen/go-mail/pull/443) - [@&#8203;termermc](https://redirect.github.com/termermc) made their first contribution in [#&#8203;491](https://redirect.github.com/wneessen/go-mail/pull/491) **Full Changelog**: <https://github.com/wneessen/go-mail/compare/v0.6.2...v0.7.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/go-vikunja/vikunja). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45Ny4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjk3LjEwIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=--> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-23 08:52:49 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/vikunja#9300