mirror of
https://github.com/taigrr/godns
synced 2025-01-18 04:03:25 -08:00
compile template
This commit is contained in:
parent
7a65d4e0ea
commit
0155dee427
@ -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>
|
||||
|
29
utils.go
29
utils.go
@ -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()
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user