- Added smtpd.ErrNotExist to make detecting missing message easier
- Return 404 instead of 500 when requesting a non-extistant message
- More REST unit tests
- Add new configuration option [datastore]mailbox.message.cap
- Modify filestore to enforce message cap if value > 0
- Filestore unit tests for message cap when enabled & disabled
- Change to DataStore.Mailbox.NewMessage() interface to allow error
return
- Add filestore unit tests to exercise #19
- Move deferred file close under error check
- Handle error message from server gracefully on message click
- Scroll to top of page when message loads successfully
- smtpd/handler uses ParseEmailAddress() when opening mailbox and
checking domainNoStore
- Added host info to logging for both SMTP and POP3, closes#16
- Wrote more unit tests to make sure filestore behaves as expected
- Renamed NewFileDataStore to DefaultFileDataStore, implemented a new
NewFileDataStore for unit tests.
- filestore now removes entire mailbox dir when last message is deleted
Use a global lock for reading/writing any index file. Possible
bottleneck, but good enough for now.
Don't create a mailbox directory until a message is being written to it.
- Removed extra message object from ReadBody() return type
- We now use enmime's GetHeader() when building the GOB, this will get
us alternate character set decoding for the From and Subject headers.
- Added a swaks test with a utf-8 subject line
Logging methods were renamed so they don't trigger go-vet warnings for
error() and Error() formatting.
Unit tests were updated to use new github.com/stretchr repo (was renamed
from stretchrcom)
Missing methods were added to Message mock object.
- Label graphs by their duration, not update period
- Extend to 60 units so they are either 10 minutes or an hour of data
- Improvements to retention information
- Change javascript calculations, fixes#9 (I hope)
You can now optionally configure a "no store" domain. When inbucket
receives a message destined for a user at that domain, it will accept
the message but not store it to disk. This allows the same instance
of Inbucket to be shared by people who wish to view email content and
those who want to load test.