4

我正在使用 Grails邮件插件发送电子邮件,我想在电子邮件正文中发送图像,而不是作为附件。我想要的是在电子邮件正文中显示图像,就像在时事通讯中一样。我试过:

img style="display:block; height:100px; width:100; " alt="candle"
src="http://www.xyz.com//Candle_4.jpg">

但它按原样显示。

我还尝试使用 wikimedia 格式:

[[:File:Example.jpg]]<br/>
[[Special:FilePath/Example.jpg]]

但同样,两者似乎都链接到外部。

我究竟做错了什么?

这是我正在使用的电子邮件模板:

<img src="cid:springsourceInlineImage" /> Dear [username],<br/>
Thank you for shopping with us.<br/>
You have placed a new order with following details.<br/>
[details]<br/>
Happy shopping!

但是,如果我想在我的模板中放 10 张图片,我该怎么做呢?

4

3 回答 3

13

你必须做三件事

  1. 将邮件声明为多部分
  2. 将您的图像附加为内联图像
  3. 从您的邮件模板中引用您的内联图像

根据这个邮件列表线程,它应该像这样工作:

sendMail{
    multipart true
    to "[hidden email]"
    subject "Subject goes here"
    html  g.render( template: '/emails/mailTemplate')
    inline 'springsourceInlineImage', 'image/jpg', new File('./web-app/images/springsource.png')
}

在您的模板中,您可以像这样引用图像

<img src="cid:springsourceInlineImage" />

希望有帮助。

于 2012-05-04T09:49:20.573 回答
0

一般来说,大多数“时事通讯”类型的电子邮件只是 HTML 电子邮件,不会在电子邮件正文中嵌入图像。事实上,许多电子邮件服务器会直接拒绝太大的电子邮件,将图像数据放在电子邮件正文中很容易产生这种风险。

相反,解决这个问题的方法是只使用 HTML 电子邮件,其中包含您希望作为普通 HTML 图像链接包含的图像。

有关如何发送 HTML 电子邮件的更多信息,请参阅邮件插件文档。

于 2012-05-07T14:09:04.583 回答
0

抱歉,我没有足够的 Stackoverflow 积分来评论其他人的答案。

在@aiolos 的回答中,它包含:

inline 'springsourceInlineImage', 'image/jpg', new File('./web-app/images/springsource.png')

这将“image/jpg”指定为输出,但文件为 png 格式。这是故意的吗?

维基百科提供了 mime 类型列表:http ://en.wikipedia.org/wiki/Internet_media_type#Type_image

我尝试了'image/png'并且它有效,所以我不确定将它设置为'image/jpg'是否有任何区别。

于 2014-07-28T11:36:59.547 回答