【发布时间】:2020-12-31 23:56:40
【问题描述】:
我在 Go 中使用 Mailgun package,并希望使用 cid 发送内联图像。在我的mailgun html 模板中,我设置了正确的cid:qr-code.png。但是,我必须使用 qr 代码在我的电子邮件中添加内联附件。我使用this方法生成二维码:
code, err := qrcode.Encode(data, qrcode.Medium, 256) // code is a []byte
现在我需要将此代码作为内联附件添加到我的电子邮件中,并将 cid 属性设置为 qr-code.png
message.AddBufferAttachment("qr-code.png", code) 正确附加了图像,但没有内联它,因为我无法设置 cid 属性。
现在我知道这可以通过 mailgun 实现,因为 .js 中的以下代码可以使用 mailgun 完成。
mg.Attachment({
data: base64Buffer,
filename: "qr-code.png",
cid: "cid:qr-code.png",
}),
我似乎无法用 go Mailgun 包做到这一点。 注意:我无法将图像写入文件和操作系统上,然后附加它。
【问题讨论】:
-
你试过
message.AddReaderInline(filename string, readCloser io.ReadCloser)吗? -
@Tyger 是的,但我不知道如何将 []bytes 转换为 io.ReadCloser。
bytes.NewReader转换为io.Reader而不是io.ReadCloser。 -
您可以将其转换为
io.Reader,然后再转换为io.ReadCloser,例如ioutil.NopCloser(bytes.NewReader(code)) -
@Tyger 成功了!!如果您添加答案,我会接受。
-
听起来不错。确保彻底测试我以前从未真正使用过mailgun