dongtui8593
2016-12-13 04:10
浏览 148
已采纳

如何将图像添加到电子邮件的html正文(Go)

I am using Gomail

I am attempting to send an email to myself. I have figured out how to do so, but now I want to add an image, either in the html body or as an attachment (does not really matter). I just need to be able to see the image in my email.

First off, I am sending the img src through a POST request, which I then save into the following struct...

type test_struct struct {
    Test string `json:"image"`
}

I then try to attach it in the email body like so...

mail := gomail.NewMessage()
mail.SetHeader("From", "XXXX@gmail.com")
mail.SetHeader("To", "XXXX@gmail.com")
mail.SetHeader("Subject", "IMAGE!")

mail.SetBody("text/html", `<img src="cid:t.Test" alt="My Image"/>`)

this did not work, so I tried to use Embed method...

mail.Embed(t.Test)

This gave me a blank image with the error the filename or extension is too long. Not sure if this is important, but note that the src I got is from HTML5 Canvas. I got the source of the image from Canvas...

localCanvas.toDataURL('image/png');

And this is the value I save in t.Test...

buf, err := ioutil.ReadAll(req.Body)
reader := bytes.NewReader(buf)

var t test_struct

err = json.NewDecoder(reader).Decode(&t)

The string being save in the t.Test is of the following format...

data:image/png:base64, iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgA...

How can I send this to my email? The documentation only gets me so far.

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题