使用 Mailgun 以内联附件发送字节切片

Send byte slice in inline attachment with Mailgun

我正在使用Mailgun package for Go and would like to send an inline image using cid. In my html template for mailgun I have the correct cid:qr-code.png set up. However I have to add an inline attachment to my email with the qr code. I use the this方法生成二维码:

code, err := qrcode.Encode(data, qrcode.Medium, 256) // code is a []byte

现在我需要将此代码作为内联附件添加到我的电子邮件中,并将 cid 属性 设置为 qr-code.png

message.AddBufferAttachment("qr-code.png", code) 正确附加了图像,但没有内联它,因为我无法设置 cid 属性。

现在我知道这是 possible 与 mailgun 因为以下 .js 代码可以使用 mailgun 完成它。

mg.Attachment({
  data: base64Buffer,
  filename: "qr-code.png",
  cid: "cid:qr-code.png",
}),

我似乎无法使用 go Mailgun 包来完成它。 注意:我无法将图像写入文件并在 os 上然后附加它。

您可以使用AddReaderInline函数

message.AddReaderInline(filename, readCloser)

由于您需要将 []bytes 转换为 io.ReadCloser,您可以先转换为 io.Reader,然后再转换为 io.ReadCloser

ioutil.NopCloser(bytes.NewReader(code))