blob: ab71fdb0875a4481f4223058d4b61fce97d8ed2c [file] [log] [blame]
giolekva75ee2712021-11-26 13:57:12 +04001package main
2
3import (
4 "bufio"
5 "crypto/tls"
6 "fmt"
7 "os"
8
9 "github.com/emersion/go-sasl"
10 "github.com/emersion/go-smtp"
11)
12
13var smtpServers = []string{
14 "maddy.app-maddy.svc.cluster.local:587",
15 "maddy.shveli-app-maddy.svc.cluster.local:587",
16}
17
18func auth(server, username, password string) (bool, error) {
19 c, err := smtp.Dial(server)
20 if err != nil {
21 return false, err
22 }
23 if err := c.StartTLS(&tls.Config{InsecureSkipVerify: true}); err != nil {
24 return false, err
25 }
26 if err := c.Auth(sasl.NewPlainClient(username, username, password)); err != nil {
27 return false, err
28 }
29 return true, nil
30}
31
32func main() {
33 inp := bufio.NewReader(os.Stdin)
34 username, err := inp.ReadString('\n')
35 if err != nil {
36 fmt.Fprintln(os.Stderr, "Could not read username")
37 os.Exit(2)
38 }
39 username = username[:len(username)-1]
40 password, err := inp.ReadString('\n')
41 if err != nil {
42 fmt.Fprintln(os.Stderr, "Could not read password")
43 os.Exit(2)
44 }
45 password = password[:len(password)-1]
46 for _, s := range smtpServers {
47 if ok, _ := auth(s, username, password); ok {
48 os.Exit(0)
49 // } else if err != nil {
50 // fmt.Println(os.Stderr, err.Error())
51 // os.Exit(2)
52 }
53 }
54 os.Exit(1)
55}