我尝试过用不同的图像格式发送电子邮件。 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
图像包含在电子邮件中。但是,透明度变为黑色(如重写)。
<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
图像保持不变,透明度也保持不变。但是,文件名是现有文件,我无法重命名,因为它是从 content 获取的值。但是至少可以。
<cfmailparam file="http://www.libpng.org/pub/png/img_png/pnglogo-blk-sml1.png"
contentid="embedded_image1"
type="image/png"
disposition="inline" />
这是另一个问题:如何将文件名设为自定义名称?