Golang : Auto-generate reply email with text/template package
Problem :
You have customers that ask question via email that sometimes bordering repetitive questioning or simply refused to read the Frequently Asked Question section. What should you do?
Solution :
Instead of cracking your head to write reply email each time, why not create an email auto-generator? It can be done easily with the text/template
package. For this example, I will keep it simple. No artificial intelligence stuff yet( I'm working on it ) and auto email out the reply yet(shouldn't be hard to implement)
Here you go!
package main
import (
"fmt"
"log"
"os"
"text/template"
)
func main() {
// Define a email template.
const email = `
Hey {{.Name}},
{{if .Attended}}
Have you read FAQ section yet?{{else}}
It is a shame that you choose not to understand my first email reply!{{end}}
{{with .Gift}}Thank you for your equiry about {{.}} by the way.
{{end}}
Best wishes,
Gossie
`
// Prepare some data to insert into the template.
type Recipient struct {
Name, Gift string
Attended bool
}
var recipients = []Recipient{
{"Aunt Fonda", "dragon bone pottery set", true},
{"Scott", "ancient map to the castle in the sky", false},
{"Jessie", "", false},
}
// Create a new template and parse the letter into it.
t := template.Must(template.New("email").Parse(email))
// Execute the template for each recipient.
for _, r := range recipients {
err := t.Execute(os.Stdout, r)
fmt.Println("----------------")
if err != nil {
log.Println("executing template:", err)
}
}
}
Output :
Hey Aunt Fonda,
Have you read FAQ section yet?
Thank you for your equiry about dragon bone pottery set by the way.
Best wishes,
Gossie
Hey Scott,
It is a shame that you choose not to understand my first email reply!
Thank you for your equiry about ancient map to the castle in the sky by the way.
Best wishes,
Gossie
Hey Jessie,
It is a shame that you choose not to understand my first email reply!
Best wishes,
Gossie
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+3.2k Golang : Get Hokkien(福建话)/Min-nan(閩南語) Pronounciations
+3.1k HTTP common errors and their meaning explained
+5k Golang : Not able to grep log.Println() output
+20.7k Golang : Storing cookies in http.CookieJar example
+5k Golang : Scanf function weird error in Windows
+4.3k Golang : Check if password length meet the requirement
+1.9k Java : Random alphabets, alpha-numeric or numbers only string generator
+6.8k Golang : Check if user agent is a robot or crawler example
+3.2k Python : Create Whois client or function example
+9.7k Golang : How to check if a string starts or ends with certain characters or words?
+6.3k Golang : Get all countries currencies code in JSON format
+23.6k Golang : Convert an image file to []byte