package main

import (
	"log"
	"net/smtp"
)

func sendEmail(mail_to, mail_default_authuser, mail_message string) {
	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, "info@mini-beieli.ch"},
		[]byte(mail_message),
	)

	if err != nil {
		log.Fatal(err)
	}
}

func sendEmailConfirm(username, confirm_id string) {
	mail_message := "To: " + username + `
From: register@mini-beieli.ch
Subject: Passwortaenderung auf https://mini-beieli.ch, bitte bestaetigen

Lieber Benutzer von mini-beieli.ch

Sie haben soeben eine Passwortaenderung veranlasst.  Bitte klicken Sie folgenden Link,
um das neue Passwort zu aktivieren:

https://mini-beieli.ch/confirm?id=` + confirm_id + `

Bitte ignorieren Sie diese Meldung, falls die Aenderung nicht von Ihnen angefordert wurde!

Mit freundlichen Grüssen
--
mini-beieli.ch`

	sendEmail(username, "mail@mini-beieli.ch", mail_message)
}

func sendPaymentConfirmationEmail(username, charge_data string, amount int64) {
	mail_message := "To: " + username + `
From: info@mini-beieli.ch
Subject: Zahlungsbestaetigung mini-beieli.ch
MIME-version: 1.0;
Content-Type: text/html; charset="UTF-8";
<pre> 
Lieber Benutzer von mini-beieli.ch

Sie haben soeben erfolgreich folgende Abo-Verlaengerungen bezahlt:

` + charge_data + `

Mit freundlichen Grüssen
--
mini-beieli.ch</pre>`

	sendEmail(username, "mail@mini-beieli.ch", mail_message)
}
