Skip to content

Commit 2e28e0f

Browse files
author
alexcoder04
committed
simplify configuration
1 parent 3c10fc4 commit 2e28e0f

File tree

2 files changed

+16
-46
lines changed

2 files changed

+16
-46
lines changed

README.md

+4-9
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,15 @@ The host address can vary depending on your e-mail provider, most likely it's
3434
something like *mail.domain.tld* or *smtp.domain.tld*. The port also is
3535
different for different e-mail providers.
3636

37+
For my provider, the username is the part of the address before the @-sign,
38+
but it may be the full address or something completely different for your
39+
e-mail provider.
40+
3741
```yml
3842
3943
Addr: smtp.example.com:587
4044
Host: smtp.example.com
4145
Subject: Hello friends!
42-
```
43-
44-
### `account.txt`
45-
46-
The first line is your username. For my provider, it's the part of the address
47-
before the @-sign, but it may be the full address or something completely
48-
different for your e-mail provider.
49-
50-
```yml
5146
5247
Password: YourSecureP4ssw0rd
5348
```

main.go

+12-37
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,21 @@ import (
1212
)
1313

1414
const (
15-
SETTINGS_FILE = "./settings.yml"
1615
MAIL_CONTENT = "./mail.txt"
17-
ACCOUNT_FILE = "./account.txt"
1816
RECIPIENTS_FILE = "./recipients.txt"
17+
SETTINGS_FILE = "./settings.yml"
1918
)
2019

2120
type Settings struct {
22-
From string `yaml:"From"`
23-
Addr string `yaml:"Addr"`
24-
Host string `yaml:"Host"`
25-
Subject string `yaml:"Subject"`
26-
}
27-
28-
type Account struct {
29-
Username string `yaml:"Username"`
21+
Addr string `yaml:"Addr"`
22+
From string `yaml:"From"`
23+
Host string `yaml:"Host"`
3024
Password string `yaml:"Password"`
25+
Subject string `yaml:"Subject"`
26+
Username string `yaml:"Username"`
3127
}
3228

33-
func ReadSettingsFromFile() (string, string, string, string) {
29+
func ReadSettingsFromFile() Settings {
3430
data, err := ioutil.ReadFile(SETTINGS_FILE)
3531
if err != nil {
3632
if os.IsNotExist(err) {
@@ -47,27 +43,7 @@ func ReadSettingsFromFile() (string, string, string, string) {
4743
os.Exit(1)
4844
}
4945

50-
return settings.From, settings.Addr, settings.Host, settings.Subject
51-
}
52-
53-
func ReadAccountFromFile() (string, string) {
54-
data, err := ioutil.ReadFile(ACCOUNT_FILE)
55-
if err != nil {
56-
if os.IsNotExist(err) {
57-
fmt.Println("Account file (" + ACCOUNT_FILE + ") does not exist")
58-
} else {
59-
fmt.Println("Cannot open settings file")
60-
}
61-
os.Exit(1)
62-
}
63-
account := Account{}
64-
err = yaml.Unmarshal(data, &account)
65-
if err != nil {
66-
fmt.Println("Your settings file doesn't look right")
67-
os.Exit(1)
68-
}
69-
70-
return account.Username, account.Password
46+
return settings
7147
}
7248

7349
func ReadRecipientsAddressesFromFile() []string {
@@ -104,16 +80,15 @@ func BuildMessage(from string, to string, subject string, body []byte) []byte {
10480
}
10581

10682
func main() {
107-
from, addr, host, subject := ReadSettingsFromFile()
108-
user, password := ReadAccountFromFile()
83+
settings := ReadSettingsFromFile()
10984
recipients := ReadRecipientsAddressesFromFile()
11085

11186
mailContent, _ := ioutil.ReadFile(MAIL_CONTENT)
11287

113-
auth := smtp.PlainAuth("", user, password, host)
88+
auth := smtp.PlainAuth("", settings.Username, settings.Password, settings.Host)
11489
for _, to := range recipients {
115-
msg := BuildMessage(from, to, subject, mailContent)
116-
err := smtp.SendMail(addr, auth, from, []string{to}, msg)
90+
msg := BuildMessage(settings.From, to, settings.Subject, mailContent)
91+
err := smtp.SendMail(settings.Addr, auth, settings.From, []string{to}, msg)
11792
if err != nil {
11893
log.Fatal(err.Error())
11994
} else {

0 commit comments

Comments
 (0)