登录
首页 >  Golang >  Go问答

使用 Mailgun 发送二进制数据的示例

来源:stackoverflow

时间:2024-03-18 20:42:33 366浏览 收藏

Go 的 Mailgun 包允许发送内联图像,但其 API 中缺少设置 CID 属性的方法。可以通过使用 AddReaderInline 函数解决此问题,该函数需要一个文件名和一个 io.ReadCloser。要将 []bytes 转换为 io.ReadCloser,可以先将其转换为 io.Reader,然后使用 ioutil.NopCloser()将其转换为 io.ReadCloser。

问题内容

我正在使用 go 的 mailgun 包,并且想使用 cid 发送内联图像。在我的 mailgun html 模板中,我设置了正确的 cid:qr-code.png 。但是,我必须使用二维码将内联附件添加到我的电子邮件中。我使用这个方法生成二维码:

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 包来做到这一点。 注意:我无法将图像写入文件并写入操作系统,然后附加它。


解决方案


可以使用AddReaderInline函数

message.AddReaderInline(文件名, readCloser)

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

ioutil.NopCloser(bytes.NewReader(code))

理论要掌握,实操不能落!以上关于《使用 Mailgun 发送二进制数据的示例》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>