Image 使用Grails在电子邮件中发送图像

Image 使用Grails在电子邮件中发送图像,image,email,grails,Image,Email,Grails,我正在使用Grails发送电子邮件,我希望在电子邮件正文中发送图像,而不是作为附件。我想要的是在电子邮件正文中显示图像,就像在时事通讯中一样。我试过: img style="display:block; height:100px; width:100; " alt="candle" src="http://www.xyz.com//Candle_4.jpg"> 但它正在按原样显示 我还尝试使用wikimedia格式: [[:File:Example.jpg]]<br/> [[

我正在使用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]]
[[:File:Example.jpg]
[[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张图像,我该怎么做呢?

你必须做三件事

  • 将邮件声明为多部分
  • 将图像作为内联图像附加
  • 引用邮件模板中的内联图像
  • 根据邮件列表线程,其工作原理如下:

    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" />
    
    
    
    希望这能有所帮助。

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

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


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

    很抱歉,我没有足够的Stackoverflow点数,无法对其他人的答案发表评论

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

    inline 'springsourceInlineImage', 'image/jpg', new File('./web-app/images/springsource.png')
    
    这将“image/jpg”指定为输出,但该文件为png格式。这是故意的吗

    Wikipedia提供了mime类型列表:


    我尝试了“image/png”,但效果不错,所以我不确定将其设置为“image/jpg”是否有任何区别。

    什么是cid?需要设置吗?因为现在代码****出现在电子邮件中。仍不显示。
    cid
    方案代表
    内容ID
    ,用于识别多部分邮件的特定部分。邮件中是否附有所需图像?如果显示的代码是您邮件的整个HTML源代码,那么看起来您没有完整的邮件模板。抱歉,由于回复太晚,实际上现在图像在我的邮箱中,但作为带有“noname”的附件,而且行“”仍按模板中的原样显示。是否可以发布整个邮件模板?是的。你可以用任何名字。