我正在使用 AWS SES 进行邮件服务。按照包“github.com/aws/aws-sdk-go/service/ses”使用这个我发现 HTML 数据作为字符串传递在我的一个场景中,我想动态显示年份..意味着现在我想在邮件页脚部分显示 2021 明年 2022 <span style="font-family:lato,helvetica neue,helvetica,arial,sans-serif"><em>Copyright © 2021 Hive Wealth, All rights reserved.</em><br></span><br> 所以我将其重写为 <span style="font-family:lato,helvetica neue,helvetica,arial,sans-serif"><em>Copyright © <script>document.write(new Date().getFullYear())</script> Hive Wealth, All rights reserved.</em><br></span><br>当我在浏览器中打开我的 html 时,它显示正确的年份。但是在查看邮件后,它显示为空值htmlBody, err := ioutil.ReadFile(fmt.Sprintf("%s", "./schemas/html/"+template+".html")) if err != nil { Logger.Error("err", zap.Any("err", err)) } charSet := "UTF-8" input := &ses.SendEmailInput{ Destination: &ses.Destination{ CcAddresses: []*string{}, ToAddresses: []*string{ aws.String(recipient), }, }, Message: &ses.Message{ Body: &ses.Body{ Html: &ses.Content{ Charset: aws.String(charSet), Data: aws.String(string(htmlBody)), }, Text: &ses.Content{ Charset: aws.String(charSet), Data: aws.String(textBody), }, }, Subject: &ses.Content{ Charset: aws.String(charSet), Data: aws.String(subject), }, }, Source: aws.String(sender), } result, err := ns.SendEmail(input)这是我的邮件呼叫部分。但是这一年并没有像预期的那样到来..它只是显示为空..我怎样才能做到这一点?在我看来,HTML 正在转换为字符串结构,这就是为什么没有显示日期?那是对的吗 ??如何在我的邮件模板页脚部分获取我的当前年份?
1 回答
FFIVE
TA贡献1797条经验 获得超6个赞
答案是
<em>Copyright © {{ .Year }} Hive Wealth, All rights reserved.</em>
templateData := struct {
Year int
}{
Year: time.Now().Year(),
}
// The HTML body for the email.
newtemp, err := temp.ParseFiles(fmt.Sprintf("%s", "./schemas/html/"+template+".html"))
if err != nil {
Logger.Error("template failed", zap.Any("err", err))
}
buf := new(bytes.Buffer)
if err = newtemp.Execute(buf, templateData); err != nil {
Logger.Error("template failed", zap.Any("err", err))
}
htmlBody := buf.String()
- 1 回答
- 0 关注
- 163 浏览
添加回答
举报
0/150
提交
取消