我正在使用Gomail从表单中获取数据并通过电子邮件发送给自己。如果我想获得用户的全名,我就会使用:
m.SetBody("text/html", fmt.Sprintf("<b>Full Name</b>: %s", msg.completeName))
电子邮件中的内容如下:
姓名:John Michael Smith
现在,如果我想在代码中添加消息字段
m.SetBody("text/html", fmt.Sprintf("<b>Full Name</b>: %s", msg.completeName, "<br> <b>Message</b> %s", msg.Content))
输出:
姓名:John Michael Smith%!(EXTRA string =
消息:%s,字符串=你好!。)
我希望它看起来像这样:
姓名:John Michael Smith
消息:您好!
答案 0 :(得分:6)
问题是你以错误的方式使用Sprintf。
Sprintf
需要一个字符串格式作为第一个参数,然后需要在最终字符串中插入所有变量。
因此你的代码应该是:
m.SetBody("text/html", fmt.Sprintf("<b>Full Name</b>: %s <br><b>Message</b> %s", msg.completeName, msg.Content))
有关更多信息,建议您阅读Sprintf documentation
注意:在评论中我说“为什么不连接字符串?”既然你也可以这样做:
m.SetBody("text/html", "<b>Full Name</b>: "+ msg.completeName +" <br><b>Message</b> " + msg.Content))