- 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.
- Refactor datastore such that we have a FileDataStore that implements
the DataStore interface.
- Add in missing SMTP configuration options: max recips, max idle, max
message size
- Add retention options to config
Added a new layer where we take the first 4 chars of the mailbox hash
and use it to create directories. Should prevent us from having a
million directories under "mail" directly.