Skip to content

Commit c2acc4e

Browse files
committed
add smtp domain to get rid of open relay, change default port of dns
1 parent 54b7248 commit c2acc4e

6 files changed

Lines changed: 320 additions & 276 deletions

File tree

config/config.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ type Config struct {
5858
DNSIP string `json:"dns_ip"`
5959
SMTPServer bool `json:"smtp_server"`
6060
SMTPPort int `json:"smtp_port"`
61+
SMTPDomain string `json:"smtp_domain"`
6162
}
6263

6364
func Load(configpath string) (Config, error) {
@@ -124,6 +125,7 @@ func PrintExample() (string, error) {
124125
DNSIP: "127.0.0.1",
125126
SMTPServer: false,
126127
SMTPPort: 0,
128+
SMTPDomain: "",
127129
}
128130

129131
b, err := json.MarshalIndent(defaultConfig, "", " ")

example/goshs.json.example

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@
4444
"trusted_proxies": "",
4545
"tunnel": false,
4646
"dns_server": false,
47-
"dns_port": 5353
47+
"dns_port": 8053
4848
"dns_ip": "127.0.0.1",
4949
"smtp_server": false,
50-
"smtp_port": 2525
50+
"smtp_port": 2525,
51+
"smtp_domain": ""
5152
}

main.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,11 @@ var (
7272
invisible = false
7373
tunnel = false
7474
dns = false
75-
dnsPort = 5353
75+
dnsPort = 8053
7676
dnsIP = "127.0.0.1"
7777
smtp = false
7878
smtpPort = 2525
79+
smtpDomain = ""
7980
)
8081

8182
// Man page
@@ -132,11 +133,13 @@ Connection restriction:
132133
-tpw, --trusted-proxy-whitelist Comma separated list of trusted proxies
133134
134135
Collaboration options:
135-
-dns, --dns-server Enable DNS server (default: false)
136-
-dns-port, --dns-port DNS server port (default: 5353)
137-
-dns-ip, --dns-ip DNS server Reply IP (default: 127.0.0.1)
138-
-smtp, --smtp-server Enable SMTP server (default: false)
139-
-smtp-port, --smtp-port SMTP server port (default: 2525)
136+
-dns, --dns-server Enable DNS server (default: false)
137+
-dns-port, --dns-port DNS server port (default: 8053)
138+
-dns-ip, --dns-ip DNS server Reply IP (default: 127.0.0.1)
139+
-smtp, --smtp-server Enable SMTP server (default: false)
140+
-smtp-port, --smtp-port SMTP server port (default: 2525)
141+
-smtp-domain, --smtp-domain SMTP server domain (default: open relay)
142+
140143
141144
Webhook options:
142145
-W, --webhook Enable webhook support (default: false)
@@ -268,6 +271,7 @@ func flags() (*bool, *bool, *bool, *bool, *bool, *bool) {
268271
flag.BoolVar(&smtp, "smtp", smtp, "Enable SMTP server")
269272
flag.BoolVar(&smtp, "smtp-server", smtp, "Enable SMTP server")
270273
flag.IntVar(&smtpPort, "smtp-port", smtpPort, "SMTP server port")
274+
flag.StringVar(&smtpDomain, "smtp-domain", smtpDomain, "SMTP server domain")
271275

272276
updateGoshs := flag.Bool("update", false, "update")
273277
hash := flag.Bool("H", false, "hash")
@@ -446,6 +450,7 @@ func init() {
446450
dnsIP = cfg.DNSIP
447451
smtp = cfg.SMTPServer
448452
smtpPort = cfg.SMTPPort
453+
smtpDomain = cfg.SMTPDomain
449454

450455
// Abspath for webroot
451456
// Trim trailing / for linux/mac and \ for windows
@@ -671,6 +676,7 @@ func main() {
671676
Port: smtpPort,
672677
Hub: hub,
673678
WebHook: webhook,
679+
Domain: smtpDomain,
674680
}
675681

676682
go s.Start()

smtpserver/backend.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package smtpserver
2+
3+
import (
4+
"github.com/emersion/go-smtp"
5+
"github.com/patrickhener/goshs/webhook"
6+
"github.com/patrickhener/goshs/ws"
7+
)
8+
9+
type Backend struct {
10+
Hub *ws.Hub
11+
WebHook *webhook.Webhook
12+
Domain string
13+
}
14+
15+
func (b *Backend) NewSession(c *smtp.Conn) (smtp.Session, error) {
16+
return &Session{hub: b.Hub, conn: c, webhook: b.WebHook, domain: b.Domain}, nil
17+
}

0 commit comments

Comments
 (0)