У меня есть следующий фрагмент кода, в котором я пытаюсь отправить электронное письмо, используя gopkg.in/gomail.v2
. Я вполне могу отправить электронное письмо, когда шаблон электронной почты помещен в каталог root проекта, например,
./
main.go
template.html
// Info defines
type Info struct {
Age int
Name string
}
func (i Info) sendMail() {
fp := filepath.Join("template.html")
t := template.New(fp)
var err error
t, err = t.ParseFiles(fp)
if err != nil {
log.Println(err)
}
var tpl bytes.Buffer
if err := t.Execute(&tpl, i); err != nil {
log.Println(err)
}
result := tpl.String()
// ... email sending logic
}
func main() {
info := &Info{
Name: "name 1",
Age: 20,
}
info.sendMail()
}
, но когда я изменяю каталог шаблона на emails/template.html
и меняю путь к файлу
fp := filepath.Join("emails", "template.html")
, тогда я получаю ошибку от t.Execute()
template: "emails/template.html" is an incomplete or empty template
Я также пытался fp, _ := filepath.Abs("emails/template.html")
, но получил ошибку
template: "/mnt/data/go/test/emails/template.html" is an incomplete or empty template
указанный путь верен, хотя.