The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed issue with invalid email address parsing for
MAIL FROM
andRCPT TO
commands
- Updated development dependencies
- Updated
circleci
config
- Added ability to message purge when retrieving messages,
server.MessagesAndPurge()
. Thanks @mitar for PR - Added
commitspell
linter
- Fixed issue with data race condition between newMessage() and Messages(). Thanks @mitar for PR
- Updated
lefthook
config - Updated project documentation
- Added release build for ARM x64 architecture family
- Added ability to use
localhost
as valid domain name forMAIL FROM
andRCPT TO
commands. Thanks @Deracination for request
- Added ability to use
NOOP
command, following RFC 2821 (section 4.1.1.9). Thanks @rehleinBo for PR
- Updated
CI
scripts (tag/release) - Updated download script
- Updated
CircleCI
config (fixed issue with deploy config location)
- Added
CI
tagging script
- Updated
CI
releasing script - Updated
CircleCI
config - Updated package deployment flow
- Added
cspell
linter - Added
markdownlint
linter - Added
shellcheck
linter - Added
yamllint
linter - Added
lefthook
linters aggregator
- Fixed typos in project's codebase
- Fixed new project's linter issues
- Updated
CircleCI
config
- Fixed wrong link for
ldflags
ingoreleaser
config
- Added ability to use multiple
RCPT TO
commands during one SMTP session, following RFC 2821 (section 4.1.1.3). Thanks @dandare100 for request and provided examples - Added
ConfigurationAttr#MultipleRcptto
,configuration#multipleRcptto
, tests - Added
Message#rcpttoRequestResponse
,Message#isIncludesSuccessfulRcpttoResponse()
, tests - Added
handlerRcptto#resolveMessageStatus()
, tests - Added
Message
public methods, tests - Added
Server
thread-safe getters/setters, tests
- Fixed race conditions with R/W lock in
Server
. Thanks @benjamin-rood for report and pull request - Fixed race conditions with R/W lock in
Message
- Removed
Message#rcpttoRequest
,Message#rcpttoResponse
- Removed
&Message
public methods
- Updated
handlerRcptto#clearMessage()
,handlerRcptto#writeResult()
,handlerData#clearMessage()
, tests - Updated Go reference trigger script
- Updated
Server#Messages()
, returns slice ofMessage
instead&Message
- Updated CircleCI config, added checking for race conditions step
- Updated project documentation
- Ability to use address literal as
HELO
command args, following RFC 5321 (section 4.1.1.1). Thanks @dandare100 for investigation, report and brilliant PR.
- Updated consts
- Updated
handlerHelo
tests - Updated project documentation
- Updated Go reference trigger script
- Ability to trigger Go reference
- Updated CircleCI config
- Removed
yaml.v3
indirect development dependency
- Added
Server#isAbleToEndSession
, tests
- Updated
message
to exported structMessage
- Updated
Server#handleSession
- Updated test helpers
- Updated
golangci
/circleci
configs
- Fixed project's code smells issues
- Ability to use
RSET
SMTP command, following RFC 821 - Ability to configure multiple message receiving flow during one session. Thanks @Pointer666 for report.
- Updated
server
, tests - Updated
message
, tests - Updated
configuration
,configurationAttr
, tests - Updated command handlers, tests
- Updated cmd, consts
- Updated package documentation, changelog
- Removed
message#cleared
,message#isCleared?()
- Updated
yaml.v3
indirect dependency. An issue in theUnmarshal
function in Go-Yaml v3 causes the program to crash when attempting to deserialize invalid input, CVE-2022-28948
- Ability to access to server messages
- Updated package documentation
- Ability to specify session response delay for each SMTP command
- Updated
configuration
,ConfigurationAttr
tests - Updated consts
- Updated
session
structure methods, tests - Updated
server#handleSession
, tests - Updated
handlerHelo#writeResult
, tests - Updated
handlerMailfrom#writeResult
, tests - Updated
handlerRcptto#writeResult
, tests - Updated
handlerData#writeResult
, tests - Updated
handlerMessage#writeResult
, tests - Updated
handlerQuit#writeResult
, tests - Updated
main.attrFromCommandLine()
, tests - Updated package documentation
- Ability to shutdown
smtpmock
server withSIGQUIT
- Updated package documentation
- Updated package documentation
- Fixed version data sequence in
printVersionData()
- Updated package documentation
- Added build data (version, commit, built at time) for compiled
smtpmock
binary - Added
-v
flag
- Updated
goreleaser
config - Updated package documentation
- Updated bash script for downloading latest release
- Added bash script for downloading latest release
- Updated release binary package signature
- Updated package documentation
- Implemented ability to do force stop by timeout
- Updated
configuration
, tests - Updated
server
, tests - Updated
main
, tests - Updated consts, package documentation
- Updated CircleCI config
- Updated
goreleaser
config
- Updated CircleCI config
- Updated CircleCI config
- Updated CircleCI config
- Added
goreleaser
config
- Added ability to run
smtpmock
as service - Implemented package main, tests
- Fixed documentation issues. Thanks @vpakhuchyi for report and PR.
- Fixed
MsgSizeLimit
,msgSizeLimit
typo in fields naming. Thanks @vanyavasylyshyn for report. - Fixed project github templates
- Updated CircleCI config
- Updated package documentation
- Added ability to use localhost as valid
HELO
domain. Thanks @lesichkovm for report.
- Updated
handlerHelo#heloDomain
, tests - Updated consts
- Updated package docs
- Updated default negative SMTP command responses follows to RFC
- Updated
ConfigurationAttr
methods, tests
- Fixed
ConfigurationAttr
unexported fields issue
- Updated package documentation
- Added ability to assign random SMTP port number by OS as default settings
- Added
Server.PortNumber
field
- Updated
Server#Start
method, tests - Refactored
ConfigurationAttr#assignDefaultValues
method - Updated
ConfigurationAttr#assignServerDefaultValues
method, tests - Updated package docs
- Updated linters config
- Removed
defaultPortNuber
- Updated functions/structures/consts scopes
- Updated linters config
- Updated CircleCI config
- Linters issues
- Fixed typos, linter warnings
- First release of
smtpmock
. Thanks @le0pard for support 🚀