diff --git a/go.work b/go.work index f494a0605f44e3494972a70ecc156c2af7cf4205..5ef30290575bf47777f03221e4ba6d65154550ec 100644 --- a/go.work +++ b/go.work @@ -1,3 +1,6 @@ go 1.20 -use ./src/highlanderticketing +use ( + ./src/emailnotification + ./src/highlanderticketing +) diff --git a/src/emailnotification/.env b/src/emailnotification/.env new file mode 100644 index 0000000000000000000000000000000000000000..2ac09cd1532807c6a4fea1d36cc55b6ea1db0a74 --- /dev/null +++ b/src/emailnotification/.env @@ -0,0 +1,4 @@ +# .env file + +EMAIL_PW=highlanderAPI +EMAIL_ADRESS=highlanderAPI@web.de \ No newline at end of file diff --git a/src/emailnotification/go.mod b/src/emailnotification/go.mod new file mode 100644 index 0000000000000000000000000000000000000000..515173dd030a2ed1d333d13e3687c0df509329cc --- /dev/null +++ b/src/emailnotification/go.mod @@ -0,0 +1,5 @@ +module gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/emailnotification + +go 1.20 + +require github.com/joho/godotenv v1.5.1 diff --git a/src/emailnotification/go.sum b/src/emailnotification/go.sum new file mode 100644 index 0000000000000000000000000000000000000000..d61b19e1aeb0e65b9b6051cc51a9a246feaeb292 --- /dev/null +++ b/src/emailnotification/go.sum @@ -0,0 +1,2 @@ +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= diff --git a/src/emailnotification/main.go b/src/emailnotification/main.go new file mode 100644 index 0000000000000000000000000000000000000000..e479753e2f3888a871cbfa6d3b8628bdd32612fd --- /dev/null +++ b/src/emailnotification/main.go @@ -0,0 +1,7 @@ +package main + +import "gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/emailnotification/service" + +func main() { + service.SendEmail() +} diff --git a/src/emailnotification/service/send_email.go b/src/emailnotification/service/send_email.go new file mode 100644 index 0000000000000000000000000000000000000000..a11f220b6f36f06127945752855fc571a73cb040 --- /dev/null +++ b/src/emailnotification/service/send_email.go @@ -0,0 +1,57 @@ +package service + +import ( + "fmt" + "log" + "net/mail" + "net/smtp" + "os" + "strings" + + "github.com/joho/godotenv" +) + +func SendEmail( /*toList []string, subject string, body string*/ ) { + err := godotenv.Load(".env") + + if err != nil { + log.Fatalf("Error loading .env file") + } + + from := mail.Address{ + Name: "Highlander Ticketing", + Address: os.Getenv("EMAIL_ADRESS"), + } + + fmt.Println(from) + + toList := []string{"yannick.ege@web.de"} + + header := make(map[string]string) + header["From"] = from.String() + header["To"] = strings.Join(toList, ", ") + header["Subject"] = "subject" + + body := "test" + + message := "" + for key, value := range header { + message += fmt.Sprintf("%s: %s\r\n", key, value) + } + message += "\r\n" + body + + // über os variablen holen + smtpServer := "smtp.web.de" + smtpPort := "587" + password := os.Getenv("EMAIL_PW") + + auth := smtp.PlainAuth("", from.Address, password, smtpServer) + + err1 := smtp.SendMail(smtpServer+":"+smtpPort, auth, from.Address, toList, []byte(message)) + if err1 != nil { + fmt.Println(err1) + os.Exit(1) + } + + fmt.Println("E-Mail erfolgreich gesendet.") +}