refactor email send functions

This commit is contained in:
Joerg Lehmann 2022-07-13 19:22:43 +02:00
parent 667051907b
commit b4814970ce
4 changed files with 39 additions and 62 deletions

81
mail.go
View File

@ -1,27 +1,39 @@
package main package main
import ( import (
"bytes"
"log" "log"
"net/smtp" "net/smtp"
) )
func sendEmail(username, confirm_id string) { func sendEmail(mail_to, mail_default_authuser, mail_message string) {
c, err := smtp.Dial("127.0.0.1:25") var auth smtp.Auth
if getenv("MAILSERVER_USER", "") != "" {
// Set up authentication information.
auth = smtp.PlainAuth(
"",
getenv("MAILSERVER_USER", ""),
getenv("MAILSERVER_PASSWORD", ""),
getenv("MAILSERVER_HOST", "127.0.0.1"),
)
}
// Connect to the server, authenticate, set the sender and recipient,
// and send the email all in one step.
err := smtp.SendMail(
getenv("MAILSERVER_HOST", "127.0.0.1")+":"+getenv("MAILSERVER_PORT", "25"),
auth,
getenv("MAILSERVER_USER", mail_default_authuser),
[]string{mail_to},
[]byte(mail_message),
)
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
defer c.Close()
// Set the sender and recipient.
c.Mail("register@wo-bisch.ch")
c.Rcpt(username)
// Send the email body.
wc, err := c.Data()
if err != nil {
log.Fatal(err)
} }
defer wc.Close()
func sendEmailConfirm(username, confirm_id string) {
mail_message := "To: " + username + ` mail_message := "To: " + username + `
From: register@wo-bisch.ch
Subject: Passwortaenderung auf https://wo-bisch.ch, bitte bestaetigen Subject: Passwortaenderung auf https://wo-bisch.ch, bitte bestaetigen
Lieber Benutzer von wo-bisch.ch Lieber Benutzer von wo-bisch.ch
@ -37,28 +49,12 @@ Mit freundlichen Grüssen
-- --
wo-bisch.ch` wo-bisch.ch`
buf := bytes.NewBufferString(mail_message) sendEmail(username, "mail@wo-bisch.ch", mail_message)
if _, err = buf.WriteTo(wc); err != nil {
log.Fatal(err)
}
} }
func sendPaymentConfirmationEmail(username, charge_data string, amount int64) { func sendPaymentConfirmationEmail(username, charge_data string, amount int64) {
c, err := smtp.Dial("127.0.0.1:25")
if err != nil {
log.Fatal(err)
}
defer c.Close()
// Set the sender and recipient.
c.Mail("info@wo-bisch.ch")
c.Rcpt(username)
// Send the email body.
wc, err := c.Data()
if err != nil {
log.Fatal(err)
}
defer wc.Close()
mail_message := "To: " + username + ` mail_message := "To: " + username + `
From: info@wo-bisch.ch
Subject: Zahlungsbestaetigung wo-bisch.ch Subject: Zahlungsbestaetigung wo-bisch.ch
Lieber Benutzer von wo-bisch.ch Lieber Benutzer von wo-bisch.ch
@ -71,28 +67,12 @@ Mit freundlichen Grüssen
-- --
wo-bisch.ch` wo-bisch.ch`
buf := bytes.NewBufferString(mail_message) sendEmail(username, "mail@wo-bisch.ch", mail_message)
if _, err = buf.WriteTo(wc); err != nil {
log.Fatal(err)
}
} }
func sendOrderEmail(username, body string) { func sendOrderEmail(username, body string) {
c, err := smtp.Dial("127.0.0.1:25")
if err != nil {
log.Fatal(err)
}
defer c.Close()
// Set the sender and recipient.
c.Mail("info@wo-bisch.ch")
c.Rcpt(username)
// Send the email body.
wc, err := c.Data()
if err != nil {
log.Fatal(err)
}
defer wc.Close()
mail_message := "To: " + username + ` mail_message := "To: " + username + `
From: info@wo-bisch.ch
Subject: Bestelleingang auf https://wo-bisch.ch Subject: Bestelleingang auf https://wo-bisch.ch
Lieber Administrator Lieber Administrator
@ -105,8 +85,5 @@ Mit freundlichen Grüssen
-- --
wo-bisch.ch` wo-bisch.ch`
buf := bytes.NewBufferString(mail_message) sendEmail(username, "mail@wo-bisch.ch", mail_message)
if _, err = buf.WriteTo(wc); err != nil {
log.Fatal(err)
}
} }

View File

@ -452,7 +452,7 @@ func updateUser(username, password string) {
return return
} }
sendEmail(username, confirm_id) sendEmailConfirm(username, confirm_id)
} }
func checkLoginCredentials(username, password string) bool { func checkLoginCredentials(username, password string) bool {