2016-01-14 7 views
2

Я хочу отправить изображение по электронной почте с помощью go lang. Используется этот пакет из 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

+0

, как использовать эти функции ? @kostix –

+0

Почему бы просто не попробовать? Подпись функции - то же самое Attach. Хотя прошло некоторое время с тех пор, как я прочитал спецификации, но код не подходит мне, поскольку он устанавливает только Content-Type «message/rfc822» и Content-Transfer-Encoding. (возможно, почтовые клиенты просто определяют это самостоятельно, даже если это неверно для RFC) – JimB

ответ

4

Вы можете использовать Gomail (я автор). Посмотрите на Embed method, которые позволяют вставлять изображения в теле сообщения электронной почты:

package main 

import "gopkg.in/gomail.v2" 

func main() { 
    m := gomail.NewMessage() 
    m.SetHeader("From", "[email protected]") 
    m.SetHeader("To", "[email protected]") 
    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) 
    } 
} 
+0

lol !! Большое спасибо –

+0

как установить 'default dimension' для этого изображения. ?? @Ale –

+0

Как и на странице HTML: используйте атрибут 'width' HTML или свойство' width' CSS. – Ale