我將 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 正在轉換為字串結構,這就是為什么日期沒有顯示?那是對的嗎 ??
如何在我的郵件模板頁腳部分獲取我當前的年份?
uj5u.com熱心網友回復:
答案是
<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()
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/364754.html
