James Hillyerd
eae4926b23
Dependency injection improvements ( #288 )
...
Refactor server life-cycle into it's own file, make service startup and monitoring more consistent and testable.
* Extract services creation in preparation for DI
* pop3: rename New to NewServer
* lifecycle: Add fatal error Notify()
* web: Introduce Server struct w/ Notify()
* Extract Start in lifecycle
* Add Start() to Hub
* RetentionScanner startup consistent with other svcs
* Remove global shutdown channel
* Implement a readiness notification system
2022-08-13 13:22:34 -07:00
James Hillyerd
1f1a8b4192
Handle IP address domains ( #285 )
...
* Add basic TestRecipientAddress tests
* Handle forward-path route spec
* Validate IP addr "domains"
* Forward-path test cases
* Add integration test
* Add IPv4 recip swaks test
* Special case domain mailbox extraction
* add IPv6 swaks test
* Formatting
Signed-off-by: James Hillyerd <james@hillyerd.com >
* Update changelog
2022-08-07 20:13:58 -07:00
James Hillyerd
87018ed42d
Allow AUTH=<> FROM parameter ( #284 )
...
* Use backtick on regex
* Accept AUTH=<> FROM parameter
* Update changelog
2022-07-30 10:57:29 -07:00
James Hillyerd
2016142747
smtp: allow empty user & pass during AUTH LOGIN ( #225 )
2021-07-31 10:38:48 -07:00
James Hillyerd
4f9f961cac
smtp: fix formatting ( #224 )
2021-07-31 10:32:08 -07:00
James Hillyerd
985f2702f2
Fix command line length bug ( #221 )
...
* handler: Don't fail on 8 character command lines
Fixes #214
* handler: Test that STARTTLS is parsed correctly.
2021-07-11 12:00:28 -07:00
Timur Makarchuk
c096f018d6
Add support for AUTH, closes #62
...
* Add PLAIN and LOGIN auth support
2021-04-10 13:58:18 -07:00
Stuart Skelton
3c5960aba0
Avoid potential click jacking ( #190 )
2020-11-19 08:16:01 -08:00
James Hillyerd
5a0c4778cb
Set base path in index.html ( #172 )
...
- Create a new index-dev.html for webpack live server
- Update Go+index.html to set <base href>
- Fixes #171
2020-08-29 19:06:21 -07:00
James Hillyerd
289b38f016
Add configurable base path for reverse proxy use ( #169 )
...
* ui: Refactor routing functions into Router record
* ui: Store base URI in AppConfig
* ui: Use basePath in Router functions
* backend: Add Web.BasePath config option and update routes
* Tweaks to get SPA to bootstrap basePath configured
* ui: basePath support for apis/serve
* ui: basePath support for message monitor
* web: Redirect requests to / when basePath configured
* doc: add basepath to config.md
* Closes #107
2020-08-09 15:53:15 -07:00
James Hillyerd
316a732e7f
cmd, pkg: add line breaks to several go source files
2020-07-26 11:59:27 -07:00
Sascha Andres
046de42774
allow empty envelope ( #166 )
...
* feat: allow empty MAIL FROM
Closes #164
2020-07-25 10:23:31 -07:00
James Hillyerd
3a1c757d04
smtp: Handle late EHLO, fixes #141
2019-08-17 15:46:28 -07:00
James Hillyerd
e4c48a0705
go code: rename to github.com/inbucket/inbucket
2019-02-24 09:43:10 -08:00
James Hillyerd
c57260349b
web + ui: Pass init cookie from server to client
2018-12-31 15:10:05 -08:00
James Hillyerd
77ea66e0e6
web: Remove unused helpers
2018-12-15 09:51:37 -08:00
James Hillyerd
89886843bd
web: Remove template related code
2018-12-15 09:20:57 -08:00
James Hillyerd
4894244d5c
webui: Remove sessions & securecookie
2018-12-15 08:35:00 -08:00
James Hillyerd
e70900dd1a
web: Implement SPA compatible routing
2018-11-17 14:38:04 -08:00
James Hillyerd
523c04a522
Logging improvements, handler extraction.
...
- rest: improve error logging.
- web: extract handlers/middleware into their own file.
- web: log all requests, not just ones hitting our handlers.
- test: improve integration test logging format.
2018-11-12 20:38:00 -08:00
James Hillyerd
dd14fb9989
ui: Much elm work, such wow
...
- ui: Fix favicon
- webui: Changes to support serving Elm UI
- Static files now served from `/` mount point.
- Old UI handlers moved to `/serve` mount point, some will still be
needed by the Elm UI; safe HTML and attachments for example.
- Update dev-start.sh for new UI, with tip on how to build it.
- ui: Detect browser host:port for websocket URL,
- webui: Remove unused mailbox handlers, rename routes
- Many routes not needed by Elm UI.
- `/serve/mailbox/*` becomes `/serve/m/*`.
- webui: Impl custom JSON message API for web UI,
- ui: Refactor Mailbox view functions,
- ui: Add body tabs for safe HTML and plain text,
- webui: Format plain text for new UI,
- ui: List attachments with view & download links,
2018-11-12 20:34:51 -08:00
James Hillyerd
30e3892cb0
webui, rest: Render UTF-8 addresses correctly, fixes #117
2018-10-22 18:29:03 -07:00
James Hillyerd
98745b3bb9
web: Optionally mount /debug/pprof for #120
...
- web: eliminate use of http.DefaultServeMux
2018-10-20 16:16:09 -07:00
James Hillyerd
0d7c94c531
smtp: add missing log message param
2018-10-20 11:13:39 -07:00
kingforaday
00dad88bde
Fixing an erroneous connection close introduced in #98 . ( #101 )
2018-05-20 09:51:40 -07:00
James Hillyerd
fdcb29a52b
smtp: rename readByteLine to readDataBlock for #98 .
...
Update change log.
2018-05-06 12:09:55 -07:00
kingforaday
894db04d70
Opportunistic TLS Support ( #98 )
...
* STARTTLS Support, disabled by default.
* Added documentation
2018-05-06 11:56:38 -07:00
James Hillyerd
12f98868ba
smtp/policy: Store messages with full naming for #33
...
- Added some tests to make sure stores do not enforce their own naming.
- Improve recipient structured logging.
2018-04-07 13:06:56 -07:00
James Hillyerd
ff2121fbb9
policy: Add support for MailboxNaming to ExtractMailbox for #33
2018-04-04 20:22:40 -07:00
James Hillyerd
c2e1d58b90
policy: Accept Root config instead of SMTP for #33
2018-04-02 19:43:05 -07:00
James Hillyerd
064549f576
policy: Implement store domain policy for #51
...
- Update docs, change log, status.html
2018-04-01 19:59:04 -07:00
James Hillyerd
a7d2b00a9c
policy: Implement recipient domain policy for #51
...
- INBUCKET_SMTP_DEFAULTACCEPT
- INBUCKET_SMTP_ACCEPTDOMAINS
- INBUCKET_SMTP_REJECTDOMAINS
2018-04-01 18:05:21 -07:00
James Hillyerd
3fe4140733
pop3, smtp: embed Server struct into Session for #91
2018-03-31 17:09:30 -07:00
James Hillyerd
7b073562eb
pop3: Use config.POP3 directly in server #91
2018-03-31 17:01:02 -07:00
James Hillyerd
2c813081eb
smtp: Use config.SMTP directly in Server #91
2018-03-31 16:49:52 -07:00
James Hillyerd
e076f80416
smtp: Use zerolog hooks for warns/errors expvars #90
2018-03-31 14:06:58 -07:00
James Hillyerd
92f2da5025
server: -netdebug flag now controls tracing for #90
...
Network trace is sent to stdout, no longer part of normal debug
logging.
2018-03-31 13:37:42 -07:00
James Hillyerd
6601d156be
metric: new pkg refactored from log for #90
2018-03-31 12:16:54 -07:00
James Hillyerd
779b1e63af
smtp, pop3: Use zerolog for session logging #90
2018-03-27 21:52:28 -07:00
James Hillyerd
6f25a1320e
pop3, smtp: rename Session method receivers to s
2018-03-27 20:51:13 -07:00
James Hillyerd
e2ba10c8ca
Replace pkg/log with zerolog for normal logging #90
2018-03-27 20:26:06 -07:00
James Hillyerd
04bb842549
config: Combine TemplateDir and PublicDir into UIDir
...
- Define static names for `templates` and `static`
2018-03-25 11:55:23 -07:00
James Hillyerd
f0a94f4848
More config cleanups for #86
2018-03-22 20:03:05 -07:00
James Hillyerd
845cbedc0d
config: Replace robfig with envconfig for #86
...
- Initial envconfig system is working, not bulletproof.
- Added sane defaults for required parameters.
2018-03-21 22:50:21 -07:00
James Hillyerd
30a329c0d3
Renames, closes #69
...
- storage: rename StoreMessage to Message
- storage: rename Message.RawReader() to Source()
2018-03-17 17:56:06 -07:00
James Hillyerd
f953bcf4bb
smtp: Move delivery into message.Manager for #69
2018-03-17 17:04:12 -07:00
James Hillyerd
dc4db59211
smtp: Don't require MIME headers for metadata
...
This was a regression, will again fall back to MAIL FROM/RCPT TO data.
2018-03-17 14:41:03 -07:00
James Hillyerd
e84b1f8952
storage: Make locking an implementation detail for #69
...
- file: Store handles its own locking #77
- file: Move mbox into its own file
- file & test: remove LockFor()
2018-03-17 14:02:50 -07:00
James Hillyerd
b9003a9328
smtp: Wire in policy.Recipient for #84
2018-03-17 12:39:09 -07:00
James Hillyerd
d132efd6fa
policy: Create new policy package for #84
2018-03-17 09:48:53 -07:00