首先,检查t.Test中的数据是否正确(如果包含文件名,路径或需要引用图像的任何内容)
好吧,您有一些选择,首先,如果仅附加图像就可以了,那么您只应该这样做:
mail.Attach("/path/of/your/image/image.png")但是,如果您需要在消息中使用图像,则可以使用其他方法。
替代项1:使用
Embed方法
您必须在文件系统中具有映像,因为该方法是通过这种方式定义的。您必须执行以下操作:
mail.SetBody("text/html", "Image <img src="cid:tux.png"/>")mail.Embed("/path/of/your/image/tux.png")您必须使用图片名称,在这种情况下
tux.png,当您使用
img标记将其添加到html正文中时,必须定义
srclike
cid:tux.png
替代2:使用base64编码
为此,您需要知道图像文件的mime类型,在我的示例中为png文件,因此mime为
image/png。另外,您必须将图像编码为base64。
img, err := ioutil.ReadFile("/path/of/your/image/tux.png")if err != nil { // check errors}out := base64.StdEncoding.EnpreToString(img)或者,如果文件系统中没有该映像,但将其包含在变量(
[]byte类型)中,则可以将其与
EnpreToString
var imageData []byte// in some part, you load the image data into imageDataout := base64.StdEncoding.EnpreToString(imageData)
你用它像
mail.SetBody("text/html", fmt.Sprintf("Image <img src="data:image/png;base64,%s"/>", out))因此,当您使用时,如果使用
img,您必须在
src嵌入图像中设置
data:mime_type;base64,image_enpred_base64,
data:image/png;base64,iVBORw0K...
编辑:
我创建与JSON请求和处理程序的示例实施例



