mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-19 02:27:03 +00:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6d2c2c8dad | ||
|
|
ebde99949e | ||
|
|
0afaf5109e | ||
|
|
7adf3741d3 | ||
|
|
9821095977 | ||
|
|
221a65cbe6 | ||
|
|
c421e4e0eb | ||
|
|
0068937d58 | ||
|
|
268f950e01 |
@@ -7,7 +7,6 @@
|
|||||||
"Os": "darwin freebsd linux windows",
|
"Os": "darwin freebsd linux windows",
|
||||||
"ResourcesInclude": "README*,LICENSE*,CHANGELOG*,inbucket.bat,etc,themes",
|
"ResourcesInclude": "README*,LICENSE*,CHANGELOG*,inbucket.bat,etc,themes",
|
||||||
"PackageVersion": "1.1.0",
|
"PackageVersion": "1.1.0",
|
||||||
"PrereleaseInfo": "rc2",
|
|
||||||
"ConfigVersion": "0.9",
|
"ConfigVersion": "0.9",
|
||||||
"BuildSettings": {
|
"BuildSettings": {
|
||||||
"LdFlagsXVars": {
|
"LdFlagsXVars": {
|
||||||
|
|||||||
@@ -5,5 +5,5 @@ before_script:
|
|||||||
- go vet ./...
|
- go vet ./...
|
||||||
|
|
||||||
go:
|
go:
|
||||||
- 1.5.3
|
- 1.6.3
|
||||||
- 1.6
|
- 1.7
|
||||||
|
|||||||
29
CHANGELOG.md
29
CHANGELOG.md
@@ -4,6 +4,15 @@ Change Log
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
|
[1.1.0] - 2016-09-03
|
||||||
|
------------
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Homebrew inbucket.conf and formula (see README)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Log and continue when unable to delete oldest message during cap enforcement
|
||||||
|
|
||||||
[1.1.0-rc2] - 2016-03-06
|
[1.1.0-rc2] - 2016-03-06
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
@@ -40,8 +49,26 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
specific message.
|
specific message.
|
||||||
|
|
||||||
[Unreleased]: https://github.com/jhillyerd/inbucket/compare/master...develop
|
[Unreleased]: https://github.com/jhillyerd/inbucket/compare/master...develop
|
||||||
|
[1.1.0]: https://github.com/jhillyerd/inbucket/compare/1.1.0-rc2...1.1.0
|
||||||
[1.1.0-rc2]: https://github.com/jhillyerd/inbucket/compare/1.1.0-rc1...1.1.0-rc2
|
[1.1.0-rc2]: https://github.com/jhillyerd/inbucket/compare/1.1.0-rc1...1.1.0-rc2
|
||||||
[1.1.0-rc1]: https://github.com/jhillyerd/inbucket/compare/1.0...1.1.0-rc1
|
[1.1.0-rc1]: https://github.com/jhillyerd/inbucket/compare/1.0...1.1.0-rc1
|
||||||
[1.0]: https://github.com/jhillyerd/inbucket/compare/1.0-rc1...1.0
|
[1.0]: https://github.com/jhillyerd/inbucket/compare/1.0-rc1...1.0
|
||||||
|
|
||||||
See http://keepachangelog.com/ for instructions on how to update this file.
|
|
||||||
|
Release Checklist
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
1. Create release branch: `git flow release start 1.x.0`
|
||||||
|
2. Update CHANGELOG.md:
|
||||||
|
- Ensure *Unreleased* section is up to date
|
||||||
|
- Rename *Unreleased* section to release name and date.
|
||||||
|
- Add new GitHub `/compare` link
|
||||||
|
3. Update goxc version info: `goxc -wc -pv=1.x.0 -pr=snapshot`
|
||||||
|
4. Run: `goxc interpolate-source` to update VERSION var
|
||||||
|
5. Run tests
|
||||||
|
6. Test cross-compile: `goxc`
|
||||||
|
7. Commit changes and merge release: `git flow release finish 1.x.0`
|
||||||
|
8. Upload to bintray: `goxc bintray`
|
||||||
|
9. Update `binary_versions` option in `inbucket-site/_config.yml`
|
||||||
|
|
||||||
|
See http://keepachangelog.com/ for additional instructions on how to update this file.
|
||||||
|
|||||||
@@ -15,6 +15,12 @@ Inbucket is currently production quality: it is being used for real work.
|
|||||||
|
|
||||||
Please see the [Change Log] and [Issues List] for more details.
|
Please see the [Change Log] and [Issues List] for more details.
|
||||||
|
|
||||||
|
Homebrew Tap
|
||||||
|
------------
|
||||||
|
|
||||||
|
Inbucket has an OS X [Homebrew] tap available as [jhillyerd/inbucket][Homebrew Tap],
|
||||||
|
see the `README.md` there for installation instructions.
|
||||||
|
|
||||||
Building from Source
|
Building from Source
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
@@ -47,5 +53,7 @@ version can be found at https://github.com/jhillyerd/inbucket
|
|||||||
[Change Log]: https://github.com/jhillyerd/inbucket/blob/master/CHANGELOG.md
|
[Change Log]: https://github.com/jhillyerd/inbucket/blob/master/CHANGELOG.md
|
||||||
[From Source]: http://www.inbucket.org/installation/from-source.html
|
[From Source]: http://www.inbucket.org/installation/from-source.html
|
||||||
[Google Go]: http://golang.org/
|
[Google Go]: http://golang.org/
|
||||||
|
[Homebrew]: http://brew.sh/
|
||||||
|
[Homebrew Tap]: https://github.com/jhillyerd/homebrew-inbucket
|
||||||
[Inbucket Website]: http://www.inbucket.org/
|
[Inbucket Website]: http://www.inbucket.org/
|
||||||
[Issues List]: https://github.com/jhillyerd/inbucket/issues?state=open
|
[Issues List]: https://github.com/jhillyerd/inbucket/issues?state=open
|
||||||
|
|||||||
115
etc/homebrew/inbucket.conf
Normal file
115
etc/homebrew/inbucket.conf
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
# inbucket.conf
|
||||||
|
# homebrew inbucket configuration
|
||||||
|
# {{}} values will be replaced during installation
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
[DEFAULT]
|
||||||
|
|
||||||
|
# Not used directly, but is typically referenced below in %()s format.
|
||||||
|
default.domain=inbucket.local
|
||||||
|
themes.dir={{HOMEBREW_PREFIX}}/share/inbucket/themes
|
||||||
|
datastore.dir={{HOMEBREW_PREFIX}}/var/inbucket/datastore
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
[logging]
|
||||||
|
|
||||||
|
# Options from least to most verbose: ERROR, WARN, INFO, TRACE
|
||||||
|
level=INFO
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
[smtp]
|
||||||
|
|
||||||
|
# IPv4 address to listen for SMTP connections on.
|
||||||
|
ip4.address=0.0.0.0
|
||||||
|
|
||||||
|
# IPv4 port to listen for SMTP connections on.
|
||||||
|
ip4.port=2500
|
||||||
|
|
||||||
|
# used in SMTP greeting
|
||||||
|
domain=%(default.domain)s
|
||||||
|
|
||||||
|
# optional: mail sent to accounts at this domain will not be stored,
|
||||||
|
# for mixed use (content and load testing)
|
||||||
|
domain.nostore=bitbucket.local
|
||||||
|
|
||||||
|
# Maximum number of RCPT TO: addresses we allow from clients, the SMTP
|
||||||
|
# RFC recommends this be at least 100.
|
||||||
|
max.recipients=100
|
||||||
|
|
||||||
|
# How long we allow a network connection to be idle before hanging up on the
|
||||||
|
# client, SMTP RFC recommends at least 5 minutes (300 seconds).
|
||||||
|
max.idle.seconds=300
|
||||||
|
|
||||||
|
# Maximum allowable size of message body in bytes (including attachments)
|
||||||
|
max.message.bytes=2048000
|
||||||
|
|
||||||
|
# Should we place messages into the datastore, or just throw them away
|
||||||
|
# (for load testing): true or false
|
||||||
|
store.messages=true
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
[pop3]
|
||||||
|
|
||||||
|
# IPv4 address to listen for POP3 connections on.
|
||||||
|
ip4.address=0.0.0.0
|
||||||
|
|
||||||
|
# IPv4 port to listen for POP3 connections on.
|
||||||
|
ip4.port=1100
|
||||||
|
|
||||||
|
# used in POP3 greeting
|
||||||
|
domain=%(default.domain)s
|
||||||
|
|
||||||
|
# How long we allow a network connection to be idle before hanging up on the
|
||||||
|
# client, POP3 RFC requires at least 10 minutes (600 seconds).
|
||||||
|
max.idle.seconds=600
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
[web]
|
||||||
|
|
||||||
|
# IPv4 address to serve HTTP web interface on
|
||||||
|
ip4.address=0.0.0.0
|
||||||
|
|
||||||
|
# IPv4 port to serve HTTP web interface on
|
||||||
|
ip4.port=9000
|
||||||
|
|
||||||
|
# Name of web theme to use
|
||||||
|
theme=bootstrap
|
||||||
|
|
||||||
|
# Path to the selected themes template files
|
||||||
|
template.dir=%(themes.dir)s/%(theme)s/templates
|
||||||
|
|
||||||
|
# Should we cache parsed templates (set to false during theme dev)
|
||||||
|
template.cache=true
|
||||||
|
|
||||||
|
# Path to the selected themes public (static) files
|
||||||
|
public.dir=%(themes.dir)s/%(theme)s/public
|
||||||
|
|
||||||
|
# Path to the greeting HTML displayed on front page, can be moved out of
|
||||||
|
# installation dir for customization
|
||||||
|
greeting.file=%(themes.dir)s/greeting.html
|
||||||
|
|
||||||
|
# Key used to sign session cookie data so that it cannot be tampered with.
|
||||||
|
# If this is left unset, Inbucket will generate a random key at startup
|
||||||
|
# and previous sessions will be invalidated.
|
||||||
|
cookie.auth.key=secret-inbucket-session-cookie-key
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
[datastore]
|
||||||
|
|
||||||
|
# Path to the datastore, mail will be written into subdirectories
|
||||||
|
path=%(datastore.dir)s
|
||||||
|
|
||||||
|
# How many minutes after receipt should a message be stored until it's
|
||||||
|
# automatically purged. To retain messages until manually deleted, set this
|
||||||
|
# to 0
|
||||||
|
retention.minutes=10080
|
||||||
|
|
||||||
|
# How many milliseconds to sleep after purging messages from a mailbox.
|
||||||
|
# This should help reduce disk I/O when there are a large number of messages
|
||||||
|
# to purge.
|
||||||
|
retention.sleep.millis=100
|
||||||
|
|
||||||
|
# Maximum number of messages we will store in a single mailbox. If this
|
||||||
|
# number is exceeded, the oldest message in the box will be deleted each
|
||||||
|
# time a new message is received for it.
|
||||||
|
mailbox.message.cap=100
|
||||||
@@ -21,7 +21,7 @@ import (
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
// VERSION contains the build version number, populated during linking by goxc
|
// VERSION contains the build version number, populated during linking by goxc
|
||||||
VERSION = "1.1.0-rc2"
|
VERSION = "1.1.0"
|
||||||
|
|
||||||
// BUILDDATE contains the build date, populated during linking by goxc
|
// BUILDDATE contains the build date, populated during linking by goxc
|
||||||
BUILDDATE = "undefined"
|
BUILDDATE = "undefined"
|
||||||
|
|||||||
@@ -318,7 +318,7 @@ func (mb *FileMailbox) NewMessage() (Message, error) {
|
|||||||
for len(mb.messages) >= mb.store.messageCap {
|
for len(mb.messages) >= mb.store.messageCap {
|
||||||
log.Infof("Mailbox %q over configured message cap", mb.name)
|
log.Infof("Mailbox %q over configured message cap", mb.name)
|
||||||
if err := mb.messages[0].Delete(); err != nil {
|
if err := mb.messages[0].Delete(); err != nil {
|
||||||
return nil, err
|
log.Errorf("Error deleting message: %s", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user