diff --git a/docker-compose.yml b/docker-compose.yml
index 66dccbf5b9510a274c0585d1bc7633d82701d7a8..d6a0db8b409d161eb0a688d02fa472b24aa7e560 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,5 +1,16 @@
 version: “3.8”
 services:
+  emailnotification:
+    build:
+      context: ./src
+      dockerfile: emailnotification/Dockerfile
+    ports:
+      - "8001:8001"
+    depends_on:
+      - nats
+    environment:
+      - NATS_CONNECT=nats:4222
+      - LOG_LEVEL=info # change to trace for debugging
   highlanderticketing:
     build:
       context: ./src
@@ -7,6 +18,8 @@ services:
     ports:
       - "8000:8000"
     environment:
+      - NATS_CONNECT=nats:4222
+      - EMAILNOT_CONNECT=emailnotification:8001
       - DB_CONNECT=mongo:27017
       - LOG_LEVEL=info # change to trace for debugging
   mongo:
@@ -14,4 +27,9 @@ services:
    image: mongo:4.4
    ports:
      - 27017:27017
-   command: mongod
\ No newline at end of file
+   command: mongod
+  nats:
+    image: nats:latest
+    container_name: nats
+    ports:
+     - 4222:4222
\ No newline at end of file
diff --git a/go.work.sum b/go.work.sum
index 89801b24256d0534b65b837a05012d7df1ef9725..53c2f4bf2b1624c1fe582fd0161efbfd39f07d31 100644
--- a/go.work.sum
+++ b/go.work.sum
@@ -1,15 +1,5 @@
 cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys=
 cloud.google.com/go/compute v1.19.0 h1:+9zda3WGgW1ZSTlVppLCYFIr48Pa35q1uG2N1itbCEQ=
-cloud.google.com/go/compute/metadata v0.2.0 h1:nBbNSZyDpkNlo3DepaaLKVuO7ClyifSAmNloSCZrHnQ=
-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
-golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ=
-golang.org/x/oauth2 v0.9.0 h1:BPpt2kU7oMRq3kCHAA1tbSEshXRw1LpG2ztgDwrzuAs=
-golang.org/x/oauth2 v0.9.0/go.mod h1:qYgFZaFiu6Wg24azG8bdV52QJXJGbZzIIsRCdVKzbLw=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
-google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
+golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo=
diff --git a/src/emailnotification/.env b/src/emailnotification/.env
index 2ac09cd1532807c6a4fea1d36cc55b6ea1db0a74..877c343c978a8acf1af72e471e6cfec1ad62e59d 100644
--- a/src/emailnotification/.env
+++ b/src/emailnotification/.env
@@ -1,4 +1,5 @@
 # .env file
 
-EMAIL_PW=highlanderAPI
-EMAIL_ADRESS=highlanderAPI@web.de
\ No newline at end of file
+EMAIL_PW=NEMOWeiß1!
+EMAIL_ADRESS=Yannick.ege@web.de
+NATS_URL=nats://nats:4222
\ No newline at end of file
diff --git a/src/emailnotification/Dockerfile b/src/emailnotification/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..1491568ffdfb24f0cd50e03e0a08a96298a62aad
--- /dev/null
+++ b/src/emailnotification/Dockerfile
@@ -0,0 +1,17 @@
+FROM golang:1.20-buster
+# non-go modules dependencies
+RUN apt update
+
+# copy code and protobuf
+WORKDIR /go/src/app
+COPY ./emailnotification .
+
+RUN go mod download
+RUN go install
+
+RUN wget https://raw.githubusercontent.com/vishnubob/wait-for-it/81b1373f17855a4dc21156cfe1694c31d7d1792e/wait-for-it.sh
+RUN chmod +x ./wait-for-it.sh ./docker-entrypoint.sh
+
+CMD ["emailnotification"]
+
+EXPOSE 8001
\ No newline at end of file
diff --git a/src/emailnotification/docker-entrypoint.sh b/src/emailnotification/docker-entrypoint.sh
new file mode 100644
index 0000000000000000000000000000000000000000..09dc0801753b82cf8d1e330ad00d339b6b9541b8
--- /dev/null
+++ b/src/emailnotification/docker-entrypoint.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+# Abort on any error (including if wait-for-it fails).
+set -e
+# Wait for DB
+if [ -n "$DB_CONNECT" ]; then
+/go/src/app/wait-for-it.sh "$DB_CONNECT" -t 20
+fi
+# Wait for nats
+if [ -n "$NATS_CONNECT" ]; then
+/go/src/app/wait-for-it.sh "$DB_CONNECT" -t 20
+fi
+# Run the main container command.
+exec "$@"
\ No newline at end of file
diff --git a/src/emailnotification/go.mod b/src/emailnotification/go.mod
index 515173dd030a2ed1d333d13e3687c0df509329cc..a360529a0794f0e09f51c469d39dd951a2f06ca3 100644
--- a/src/emailnotification/go.mod
+++ b/src/emailnotification/go.mod
@@ -2,4 +2,18 @@ module gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/em
 
 go 1.20
 
-require github.com/joho/godotenv v1.5.1
+require (
+	github.com/joho/godotenv v1.5.1
+	github.com/nats-io/nats.go v1.27.1
+)
+
+require (
+	github.com/golang/protobuf v1.5.3 // indirect
+	github.com/klauspost/compress v1.16.5 // indirect
+	github.com/nats-io/nats-server/v2 v2.9.19 // indirect
+	github.com/nats-io/nkeys v0.4.4 // indirect
+	github.com/nats-io/nuid v1.0.1 // indirect
+	golang.org/x/crypto v0.9.0 // indirect
+	golang.org/x/sys v0.8.0 // indirect
+	google.golang.org/protobuf v1.31.0 // indirect
+)
diff --git a/src/emailnotification/go.sum b/src/emailnotification/go.sum
index d61b19e1aeb0e65b9b6051cc51a9a246feaeb292..2d4b752023f0f3424adb139e9c5abec6dafdee45 100644
--- a/src/emailnotification/go.sum
+++ b/src/emailnotification/go.sum
@@ -1,2 +1,28 @@
+github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
+github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
 github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
 github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
+github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI=
+github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
+github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g=
+github.com/nats-io/jwt/v2 v2.4.1 h1:Y35W1dgbbz2SQUYDPCaclXcuqleVmpbRa7646Jf2EX4=
+github.com/nats-io/nats-server/v2 v2.9.19 h1:OF9jSKZGo425C/FcVVIvNgpd36CUe7aVTTXEZRJk6kA=
+github.com/nats-io/nats-server/v2 v2.9.19/go.mod h1:aTb/xtLCGKhfTFLxP591CMWfkdgBmcUUSkiSOe5A3gw=
+github.com/nats-io/nats.go v1.27.1 h1:OuYnal9aKVSnOzLQIzf7554OXMCG7KbaTkCSBHRcSoo=
+github.com/nats-io/nats.go v1.27.1/go.mod h1:XpbWUlOElGwTYbMR7imivs7jJj9GtK7ypv321Wp6pjc=
+github.com/nats-io/nkeys v0.4.4 h1:xvBJ8d69TznjcQl9t6//Q5xXuVhyYiSos6RPtvQNTwA=
+github.com/nats-io/nkeys v0.4.4/go.mod h1:XUkxdLPTufzlihbamfzQ7mw/VGx6ObUs+0bN5sNvt64=
+github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
+github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
+golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
+golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
+golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
+golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
+google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
+google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
diff --git a/src/emailnotification/main.go b/src/emailnotification/main.go
index e479753e2f3888a871cbfa6d3b8628bdd32612fd..525b46e1049a73ca44dcac2e727ed9c94aff4a25 100644
--- a/src/emailnotification/main.go
+++ b/src/emailnotification/main.go
@@ -1,7 +1,86 @@
 package main
 
-import "gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/emailnotification/service"
+import (
+	"fmt"
+	"log"
+	"os"
+
+	"github.com/joho/godotenv"
+	"github.com/nats-io/nats.go"
+)
 
 func main() {
-	service.SendEmail()
+	err := godotenv.Load(".env")
+
+	if err != nil {
+		log.Fatalf("Error loading .env file")
+	}
+	fmt.Println("aufgerufen")
+
+	//testemailcontent := model.EmialContenct{Name: "Yannick", Location: "Stuttgart"}
+	//receiver, body, subject := service.CreateEmail(testemailcontent, "confirmOrder")
+	//service.SendEmail(receiver, body, subject)
+
+	natsUrl := os.Getenv("NATS_URL")
+	if nc, err := nats.Connect(natsUrl); err != nil {
+		fmt.Println(err, nc)
+	}
+
+	go func() {
+		fmt.Println("wird aufgerufen")
+		nc, err := nats.Connect(natsUrl)
+		if err != nil {
+			log.Fatal(err)
+		}
+		defer nc.Close()
+		sub, err := nc.SubscribeSync("Order")
+		if err != nil {
+			log.Fatal(err)
+		}
+
+		log.Println("Service hört auf die Subscription:", sub.Subject)
+
+		for {
+			msg, err := sub.NextMsg(0)
+			if err != nil {
+				log.Fatal(err)
+			}
+			log.Printf("Nachricht erhalten: %s", msg.Data)
+
+			// Führe hier deine spezifische Logik aus, um die Nachricht zu verarbeiten
+
+			// Bestätige die Verarbeitung der Nachricht
+			msg.Ack()
+		}
+
+	}()
+
+	go func() {
+		nc, err := nats.Connect(natsUrl)
+		if err != nil {
+			log.Fatal(err)
+		}
+		defer nc.Close()
+		sub, err := nc.SubscribeSync("Cancelation")
+		if err != nil {
+			log.Fatal(err)
+		}
+
+		log.Println("Service hört auf die Subscription:", sub.Subject)
+
+		for {
+			msg, err := sub.NextMsg(0)
+			if err != nil {
+				log.Fatal(err)
+			}
+			log.Printf("Nachricht erhalten: %s", msg.Data)
+
+			// Führe hier deine spezifische Logik aus, um die Nachricht zu verarbeiten
+
+			// Bestätige die Verarbeitung der Nachricht
+			msg.Ack()
+		}
+
+	}()
+
 }
diff --git a/src/emailnotification/model/emailContent.go b/src/emailnotification/model/emailContent.go
new file mode 100644
index 0000000000000000000000000000000000000000..2b3decb29c20ea42b6faac65053c88f23eef5866
--- /dev/null
+++ b/src/emailnotification/model/emailContent.go
@@ -0,0 +1,9 @@
+package model
+
+type EmialContenct struct {
+	Name        string
+	AwayMatch   bool
+	Location    string
+	Date        string
+	Emailadress string
+}
diff --git a/src/emailnotification/service/send_email.go b/src/emailnotification/service/email.go
similarity index 51%
rename from src/emailnotification/service/send_email.go
rename to src/emailnotification/service/email.go
index a11f220b6f36f06127945752855fc571a73cb040..2618c2dcc4c3665c52800a139553c95790ff1e64 100644
--- a/src/emailnotification/service/send_email.go
+++ b/src/emailnotification/service/email.go
@@ -9,9 +9,19 @@ import (
 	"strings"
 
 	"github.com/joho/godotenv"
+	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/emailnotification/model"
 )
 
-func SendEmail( /*toList []string, subject string, body string*/ ) {
+func CreateEmail(emailContenct model.EmialContenct, subject string) (string, string, string) {
+	if subject == "confirmOrder" {
+		return emailContenct.Emailadress, fmt.Sprintf("Hallo Herr/Frau, %s\r\nHiermit bestaetigen wird deine Bestellung fuer das VFB Spiel in %s, am %s", emailContenct.Name, emailContenct.Location, emailContenct.Date), "Confirm Cancelation"
+	}
+	if subject == "confirmCancelation" {
+		return emailContenct.Emailadress, fmt.Sprintf("Hallo Herr/Frau, %s\r\nHiermit bestaetigen wird die Stornierung deiner Bestellung fuer das VFB Spiel in %s, am %s", emailContenct.Name, emailContenct.Location, emailContenct.Date), "Confirm Order"
+	}
+	return "", "", ""
+}
+func SendEmail(receiver string, body string, subject string) {
 	err := godotenv.Load(".env")
 
 	if err != nil {
@@ -24,15 +34,13 @@ func SendEmail( /*toList []string, subject string, body string*/ ) {
 	}
 
 	fmt.Println(from)
-
+	// das von oben nehmen
 	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"
+	header["Subject"] = subject
 
 	message := ""
 	for key, value := range header {
@@ -40,7 +48,6 @@ func SendEmail( /*toList []string, subject string, body string*/ ) {
 	}
 	message += "\r\n" + body
 
-	// über os variablen holen
 	smtpServer := "smtp.web.de"
 	smtpPort := "587"
 	password := os.Getenv("EMAIL_PW")
diff --git a/src/emailnotification/wait-for-it.sh b/src/emailnotification/wait-for-it.sh
new file mode 100644
index 0000000000000000000000000000000000000000..3974640b053e6f84a21c292c01e3674348445831
--- /dev/null
+++ b/src/emailnotification/wait-for-it.sh
@@ -0,0 +1,182 @@
+#!/usr/bin/env bash
+# Use this script to test if a given TCP host/port are available
+
+WAITFORIT_cmdname=${0##*/}
+
+echoerr() { if [[ $WAITFORIT_QUIET -ne 1 ]]; then echo "$@" 1>&2; fi }
+
+usage()
+{
+    cat << USAGE >&2
+Usage:
+    $WAITFORIT_cmdname host:port [-s] [-t timeout] [-- command args]
+    -h HOST | --host=HOST       Host or IP under test
+    -p PORT | --port=PORT       TCP port under test
+                                Alternatively, you specify the host and port as host:port
+    -s | --strict               Only execute subcommand if the test succeeds
+    -q | --quiet                Don't output any status messages
+    -t TIMEOUT | --timeout=TIMEOUT
+                                Timeout in seconds, zero for no timeout
+    -- COMMAND ARGS             Execute command with args after the test finishes
+USAGE
+    exit 1
+}
+
+wait_for()
+{
+    if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then
+        echoerr "$WAITFORIT_cmdname: waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT"
+    else
+        echoerr "$WAITFORIT_cmdname: waiting for $WAITFORIT_HOST:$WAITFORIT_PORT without a timeout"
+    fi
+    WAITFORIT_start_ts=$(date +%s)
+    while :
+    do
+        if [[ $WAITFORIT_ISBUSY -eq 1 ]]; then
+            nc -z $WAITFORIT_HOST $WAITFORIT_PORT
+            WAITFORIT_result=$?
+        else
+            (echo -n > /dev/tcp/$WAITFORIT_HOST/$WAITFORIT_PORT) >/dev/null 2>&1
+            WAITFORIT_result=$?
+        fi
+        if [[ $WAITFORIT_result -eq 0 ]]; then
+            WAITFORIT_end_ts=$(date +%s)
+            echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds"
+            break
+        fi
+        sleep 1
+    done
+    return $WAITFORIT_result
+}
+
+wait_for_wrapper()
+{
+    # In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692
+    if [[ $WAITFORIT_QUIET -eq 1 ]]; then
+        timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --quiet --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT &
+    else
+        timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT &
+    fi
+    WAITFORIT_PID=$!
+    trap "kill -INT -$WAITFORIT_PID" INT
+    wait $WAITFORIT_PID
+    WAITFORIT_RESULT=$?
+    if [[ $WAITFORIT_RESULT -ne 0 ]]; then
+        echoerr "$WAITFORIT_cmdname: timeout occurred after waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT"
+    fi
+    return $WAITFORIT_RESULT
+}
+
+# process arguments
+while [[ $# -gt 0 ]]
+do
+    case "$1" in
+        *:* )
+        WAITFORIT_hostport=(${1//:/ })
+        WAITFORIT_HOST=${WAITFORIT_hostport[0]}
+        WAITFORIT_PORT=${WAITFORIT_hostport[1]}
+        shift 1
+        ;;
+        --child)
+        WAITFORIT_CHILD=1
+        shift 1
+        ;;
+        -q | --quiet)
+        WAITFORIT_QUIET=1
+        shift 1
+        ;;
+        -s | --strict)
+        WAITFORIT_STRICT=1
+        shift 1
+        ;;
+        -h)
+        WAITFORIT_HOST="$2"
+        if [[ $WAITFORIT_HOST == "" ]]; then break; fi
+        shift 2
+        ;;
+        --host=*)
+        WAITFORIT_HOST="${1#*=}"
+        shift 1
+        ;;
+        -p)
+        WAITFORIT_PORT="$2"
+        if [[ $WAITFORIT_PORT == "" ]]; then break; fi
+        shift 2
+        ;;
+        --port=*)
+        WAITFORIT_PORT="${1#*=}"
+        shift 1
+        ;;
+        -t)
+        WAITFORIT_TIMEOUT="$2"
+        if [[ $WAITFORIT_TIMEOUT == "" ]]; then break; fi
+        shift 2
+        ;;
+        --timeout=*)
+        WAITFORIT_TIMEOUT="${1#*=}"
+        shift 1
+        ;;
+        --)
+        shift
+        WAITFORIT_CLI=("$@")
+        break
+        ;;
+        --help)
+        usage
+        ;;
+        *)
+        echoerr "Unknown argument: $1"
+        usage
+        ;;
+    esac
+done
+
+if [[ "$WAITFORIT_HOST" == "" || "$WAITFORIT_PORT" == "" ]]; then
+    echoerr "Error: you need to provide a host and port to test."
+    usage
+fi
+
+WAITFORIT_TIMEOUT=${WAITFORIT_TIMEOUT:-15}
+WAITFORIT_STRICT=${WAITFORIT_STRICT:-0}
+WAITFORIT_CHILD=${WAITFORIT_CHILD:-0}
+WAITFORIT_QUIET=${WAITFORIT_QUIET:-0}
+
+# Check to see if timeout is from busybox?
+WAITFORIT_TIMEOUT_PATH=$(type -p timeout)
+WAITFORIT_TIMEOUT_PATH=$(realpath $WAITFORIT_TIMEOUT_PATH 2>/dev/null || readlink -f $WAITFORIT_TIMEOUT_PATH)
+
+WAITFORIT_BUSYTIMEFLAG=""
+if [[ $WAITFORIT_TIMEOUT_PATH =~ "busybox" ]]; then
+    WAITFORIT_ISBUSY=1
+    # Check if busybox timeout uses -t flag
+    # (recent Alpine versions don't support -t anymore)
+    if timeout &>/dev/stdout | grep -q -e '-t '; then
+        WAITFORIT_BUSYTIMEFLAG="-t"
+    fi
+else
+    WAITFORIT_ISBUSY=0
+fi
+
+if [[ $WAITFORIT_CHILD -gt 0 ]]; then
+    wait_for
+    WAITFORIT_RESULT=$?
+    exit $WAITFORIT_RESULT
+else
+    if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then
+        wait_for_wrapper
+        WAITFORIT_RESULT=$?
+    else
+        wait_for
+        WAITFORIT_RESULT=$?
+    fi
+fi
+
+if [[ $WAITFORIT_CLI != "" ]]; then
+    if [[ $WAITFORIT_RESULT -ne 0 && $WAITFORIT_STRICT -eq 1 ]]; then
+        echoerr "$WAITFORIT_cmdname: strict mode, refusing to execute subprocess"
+        exit $WAITFORIT_RESULT
+    fi
+    exec "${WAITFORIT_CLI[@]}"
+else
+    exit $WAITFORIT_RESULT
+fi
\ No newline at end of file
diff --git a/src/highlanderticketing/.env b/src/highlanderticketing/.env
new file mode 100644
index 0000000000000000000000000000000000000000..82bb259b9826c12af7f8a1c1652870cdd4ea50c1
--- /dev/null
+++ b/src/highlanderticketing/.env
@@ -0,0 +1 @@
+NATS_URL=nats://nats:4222
\ No newline at end of file
diff --git a/src/highlanderticketing/docker-entrypoint.sh b/src/highlanderticketing/docker-entrypoint.sh
index 0f753f16b9d1488c1daf77ae2225dccd734d2ddd..8e1940f55f098449f0d5294e970b18d26ddb4358 100644
--- a/src/highlanderticketing/docker-entrypoint.sh
+++ b/src/highlanderticketing/docker-entrypoint.sh
@@ -5,5 +5,13 @@ set -e
 if [ -n "$DB_CONNECT" ]; then
 /go/src/app/wait-for-it.sh "$DB_CONNECT" -t 20
 fi
+# Wait for nats
+if [ -n "$NATS_CONNECT" ]; then
+/go/src/app/wait-for-it.sh "$DB_CONNECT" -t 20
+fi
+# Wait for emailnotification
+if [ -n "$NATS_CONNECT" ]; then
+/go/src/app/wait-for-it.sh "$DB_CONNECT" -t 20
+fi
 # Run the main container command.
 exec "$@"
\ No newline at end of file
diff --git a/src/highlanderticketing/go.mod b/src/highlanderticketing/go.mod
index d37dd2056f1cd4ed49d01d4a6cc51fb9e1d7dd39..a3d928838ae93473b96e230e182a63892d326f71 100644
--- a/src/highlanderticketing/go.mod
+++ b/src/highlanderticketing/go.mod
@@ -3,6 +3,8 @@ module gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/hi
 go 1.20
 
 require (
+	github.com/joho/godotenv v1.5.1
+	github.com/nats-io/nats.go v1.27.1
 	golang.org/x/oauth2 v0.9.0
 	google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc
 )
@@ -11,8 +13,11 @@ require (
 	cloud.google.com/go/compute/metadata v0.2.0 // indirect
 	github.com/golang/protobuf v1.5.3 // indirect
 	github.com/golang/snappy v0.0.1 // indirect
-	github.com/klauspost/compress v1.13.6 // indirect
+	github.com/klauspost/compress v1.16.5 // indirect
 	github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect
+	github.com/nats-io/nats-server/v2 v2.9.19 // indirect
+	github.com/nats-io/nkeys v0.4.4 // indirect
+	github.com/nats-io/nuid v1.0.1 // indirect
 	github.com/pkg/errors v0.9.1 // indirect
 	github.com/xdg-go/pbkdf2 v1.0.0 // indirect
 	github.com/xdg-go/scram v1.1.1 // indirect
diff --git a/src/highlanderticketing/go.sum b/src/highlanderticketing/go.sum
index 4db6e249a882c9d105220fd75d155ba27d4b5294..e5f612623a9416bc9a8659010bc25bc8008afec4 100644
--- a/src/highlanderticketing/go.sum
+++ b/src/highlanderticketing/go.sum
@@ -14,15 +14,28 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
 github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg=
 github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
 github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
-github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=
+github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
+github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
 github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
+github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI=
+github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
 github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g=
 github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0=
 github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
+github.com/nats-io/jwt/v2 v2.4.1 h1:Y35W1dgbbz2SQUYDPCaclXcuqleVmpbRa7646Jf2EX4=
+github.com/nats-io/nats-server/v2 v2.9.19 h1:OF9jSKZGo425C/FcVVIvNgpd36CUe7aVTTXEZRJk6kA=
+github.com/nats-io/nats-server/v2 v2.9.19/go.mod h1:aTb/xtLCGKhfTFLxP591CMWfkdgBmcUUSkiSOe5A3gw=
+github.com/nats-io/nats.go v1.27.1 h1:OuYnal9aKVSnOzLQIzf7554OXMCG7KbaTkCSBHRcSoo=
+github.com/nats-io/nats.go v1.27.1/go.mod h1:XpbWUlOElGwTYbMR7imivs7jJj9GtK7ypv321Wp6pjc=
+github.com/nats-io/nkeys v0.4.4 h1:xvBJ8d69TznjcQl9t6//Q5xXuVhyYiSos6RPtvQNTwA=
+github.com/nats-io/nkeys v0.4.4/go.mod h1:XUkxdLPTufzlihbamfzQ7mw/VGx6ObUs+0bN5sNvt64=
+github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw=
+github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c=
 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@@ -71,6 +84,7 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58=
 golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
diff --git a/src/highlanderticketing/main.go b/src/highlanderticketing/main.go
index 257c5404d0aa5c1a924a2e1eb6ac41cafbf3134a..6801c5c70334113b85c879f60f3756541d693378 100644
--- a/src/highlanderticketing/main.go
+++ b/src/highlanderticketing/main.go
@@ -1,10 +1,14 @@
 package main
 
 import (
+	"fmt"
 	"net/http"
 	"os"
+	"time"
 
 	"github.com/gorilla/mux"
+	"github.com/joho/godotenv"
+	"github.com/nats-io/nats.go"
 	log "github.com/sirupsen/logrus"
 	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/db"
 	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/handler"
@@ -18,6 +22,17 @@ func main() {
 	service.DeleteAllMatches()
 	api.GetMatchesOfApiToDb("https://api.openligadb.de/getmatchesbyteamid/16/5/0")*/
 	//init db
+
+	if err := godotenv.Load(".env"); err != nil {
+		log.Fatalf("Error loading .env file")
+	}
+
+	natsUrl := os.Getenv("NATS_URL")
+	nc, _ := nats.Connect(natsUrl)
+
+	rep, _ := nc.Request("Order", nil, time.Second)
+	fmt.Println("hier die response", rep)
+
 	_, err := db.GetMongoClient()
 	if err != nil {
 		log.Fatal(err)
diff --git a/src/highlanderticketing/model/emailContent.go b/src/highlanderticketing/model/emailContent.go
new file mode 100644
index 0000000000000000000000000000000000000000..10dedd323363b9e038809c5193bb035f3452c46f
--- /dev/null
+++ b/src/highlanderticketing/model/emailContent.go
@@ -0,0 +1,9 @@
+package model
+
+type EmialContent struct {
+	string
+	Name      string
+	AwayMatch bool
+	Location  string
+	Date      string
+}