1
0
mirror of https://github.com/taigrr/godns synced 2025-01-18 04:03:25 -08:00

compile template

This commit is contained in:
Timothy 2017-11-06 17:26:40 +08:00
parent 7a65d4e0ea
commit 0155dee427
2 changed files with 29 additions and 6 deletions

View File

@ -1,6 +1,6 @@
package godns
var template = `
var MailTemplate = `
<html>
<body>
<div role="section">
@ -42,14 +42,14 @@ var template = `
lang="x-size-48">
<span class="font-avenir">
<strong>
<span style="color:#ffffff">%s</span>
<span style="color:#ffffff">{{ .CurrentIP }}</span>
</strong>
</span>
</h1>
<h2 class="size-28" style="Margin-top: 20px;Margin-bottom: 16px;font-style: normal;font-weight: normal;color: #e31212;font-size: 24px;line-height: 32px;font-family: Avenir,sans-serif;text-align: center;"
lang="x-size-28">
<font color="#ffffff">
<strong>Domain: %s is updated</strong>
<strong>Domain {{ .Domain }} is updated</strong>
</font>
</h2>
</div>

View File

@ -1,8 +1,9 @@
package godns
import (
"bytes"
"errors"
"fmt"
"html/template"
"io/ioutil"
"log"
"net/http"
@ -106,7 +107,7 @@ func LoadCurrentIP() string {
}
// SendNotify sends mail notify if IP is changed
func SendNotify(configuration *Settings, domain string, currentIP string) error {
func SendNotify(configuration *Settings, domain, currentIP string) error {
m := gomail.NewMessage()
m.SetHeader("From", configuration.Notify.SMTPUsername)
@ -114,7 +115,7 @@ func SendNotify(configuration *Settings, domain string, currentIP string) error
m.SetHeader("Subject", "GoDNS Notification")
log.Println("currentIP:", currentIP)
log.Println("domain:", domain)
m.SetBody("text/html", fmt.Sprintf(template, currentIP, domain))
m.SetBody("text/html", buildTemplate(currentIP, domain))
d := gomail.NewPlainDialer(configuration.Notify.SMTPServer, configuration.Notify.SMTPPort, configuration.Notify.SMTPUsername, configuration.Notify.SMTPPassword)
@ -125,3 +126,25 @@ func SendNotify(configuration *Settings, domain string, currentIP string) error
}
return nil
}
func buildTemplate(currentIP, domain string) string {
t := template.New("notification template")
t.Parse(MailTemplate)
data := struct {
CurrentIP string
Domain string
}{
currentIP,
domain,
}
var tpl bytes.Buffer
if err := t.Execute(&tpl, data); err != nil {
log.Println(err.Error())
return ""
}
log.Println("result:", tpl.String())
return tpl.String()
}