在ColdFusion 11中嵌入PNG或BMP VS JPG或GIF图像

时间:2019-03-07 16:23:08

标签: coldfusion mime coldfusion-11

我尝试过用不同的图像格式发送电子邮件。 JPG和GIF(具有透明度)可以正常工作。

我也尝试过this scenario,它运作完美。 但是,仅当图片为JPG或GIF时才有效。 PNG或BMP文件未正确嵌入,不能作为附件发送,也不能作为cfmailparam中contentID声明的邮件内容发送。

这是从CFC文件中提取的简短样本。

<cfcomponent>
<!--- function to send email--->
<cffunction name = "send" returntype = "any">

<cfmail
to="abc@aaa.com"
from="def@bbb.com"
subject="test msg.">        
<cfmailpart type="html">
    TEST MESSAGE. <br />
    <img src="cid:embedded_image1" /><br />
    <img src="cid:embedded_image2" /><br />
    END OF MESSAGE.

    <cfset obImage1 = ImageNew("http://www.libpng.org/pub/png/img_png/pnglogo-blk-sml1.png") />
    <cfmailparam file="image1.png" contentid="embedded_image1" content="#obImage1#" disposition="inline" />

    <cfset obImage2 = ImageNew("http://www.imagemagick.org/Usage/anim_basics/rose_sparkle.gif") />
    <cfmailparam file="image2.gif" contentid="embedded_image2" content="#obImage2#" disposition="inline" />

</cfmailpart>
</cfmail>

</cffunction>

我怀疑我缺少要声明的内容,例如MIME或类似内容。 有人可以尝试看看为什么GIF可以运行,但PNG不能运行吗?


更新

这是我发现有趣的地方:

案例1

  • 添加 type =“ image / png”

图像包含在电子邮件中。但是,透明度变为黑色(如重写)。

<cfset obImage1 = ImageNew("http://www.libpng.org/pub/png/img_png/pnglogo-blk-sml1.png") />
<cfmailparam file="image1.png" 
   contentid="embedded_image1" 
   content="#obImage1#" 
   type="image/png" 
   disposition="inline" />

案例2

  • 添加 type =“ image / png”
  • 使用URL代替 file =“ ..”
  • 中的路径
  • 删除 content =“#obImage1#”

图像保持不变,透明度也保持不变。但是,文件名是现有文件,我无法重命名,因为它是从 content 获取的值。但是至少可以。

<cfmailparam file="http://www.libpng.org/pub/png/img_png/pnglogo-blk-sml1.png" 
   contentid="embedded_image1" 
   type="image/png" 
   disposition="inline" />

这是另一个问题:如何将文件名设为自定义名称?

0 个答案:

没有答案