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.