如何在电子邮件正文中插入图片?

5

我想使用Go语言在电子邮件正文中发送图片。使用了来自github的这个包。

https://github.com/scorredoira/email

    err := m.Attach("image.png")
    if err1 != nil {
        fmt.Println(err1)
    }

现在我可以将图像文件作为附件发送,但我的需求是在电子邮件正文中发送图像文件。

提前致谢。


2
https://github.com/scorredoira/email/blob/master/email.go#L55 - kostix
如何使用这些函数?@kostix - Dharani Dharan
为什么不试一下呢?函数签名与Attach相同。虽然我已经有一段时间没有阅读规范了,但是这段代码看起来不对,因为它只设置了一个“message/rfc822”的Content-Type,而没有Content-Transfer-Encoding。(也许电子邮件客户端会自己解决即使它不符合RFC的要求) - JimB
1
@JimB,如果附件文件名包含US-ASCII字符集之外的字符,则它也无法正确编码。另一个似乎更受欢迎的选择“gomail”也不会这样做,但至少它有钩子允许程序员自行提供正确的标头。我猜把这个问题丢给OP可能有点过分了:我想一次解决一个问题可能更好。 - kostix
1个回答

8
你可以使用 Gomail (我是作者)。查看嵌入式方法,它允许你在电子邮件正文中嵌入图片:
package main

import "gopkg.in/gomail.v2"

func main() {
    m := gomail.NewMessage()
    m.SetHeader("From", "from@example.com")
    m.SetHeader("To", "to@example.com")
    m.SetHeader("Subject", "Hello!")
    m.Embed("image.png")
    m.SetBody("text/html", `<img src="cid:image.png" alt="My image" />`)

    d := gomail.NewPlainDialer("smtp.example.com", 587, "user", "123456")

    if err := d.DialAndSend(m); err != nil {
        panic(err)
    }
}

如何为该图像设置“默认尺寸”?@Ale - Dharani Dharan
就像在HTML页面中一样:使用width HTML属性或width CSS属性。 - Ale
太棒了 :-)...这个软件包对我非常有用。 - Dharani Dharan
@Ale,我正在尝试使用你的 Gomail 来实现类似的功能,麻烦看看我的问题吗?...https://dev59.com/cp3ha4cB1Zd3GeqPSE3j - buydadip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接