]>
src.bluestatic.org Git - mailpopbox.git/blob - mailpopbox.go
2 // Copyright 2020 Blue Static <https://www.bluestatic.org>
3 // This program is free software licensed under the GNU General Public License,
4 // version 3.0. The full text of the license can be found in LICENSE.txt.
5 // SPDX-License-Identifier: GPL-3.0-only
18 versionGit
= "development"
19 versionNumber
= "2.0.0"
20 versionString
= "mailpopbox " + versionNumber
+ " (" + versionGit
+ ")\n"
24 if len(os
.Args
) != 2 {
25 fmt
.Fprintf(os
.Stderr
, "Usage: %s config.json\n", os
.Args
[0])
29 if os
.Args
[1] == "version" {
30 fmt
.Print(versionString
)
34 configFile
, err
:= os
.Open(os
.Args
[1])
36 fmt
.Fprintf(os
.Stderr
, "config file: %s\n", err
)
41 if err
:= json
.NewDecoder(configFile
).Decode(&config
); err
!= nil {
42 fmt
.Fprintf(os
.Stderr
, "config file: %s\n", err
)
47 logConfig
:= zap
.NewDevelopmentConfig()
48 logConfig
.Development
= false
49 logConfig
.DisableStacktrace
= true
50 logConfig
.Level
.SetLevel(zap
.DebugLevel
)
51 log
, err
:= logConfig
.Build()
53 fmt
.Fprintf(os
.Stderr
, "create logger: %v\n", err
)
57 log
.Info("starting mailpopbox", zap
.String("hostname", config
.Hostname
))
59 pop3
:= runPOP3Server(config
, log
)
60 smtp
:= runSMTPServer(config
, log
)
65 if cm
== ServerControlRestart
{
66 pop3
= runPOP3Server(config
, log
)
71 // smtp never reloads.