我正在使用 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 關注
- 193 瀏覽
添加回答
舉報
0/150
提交
取消