在this question上,我问应该是什么电子邮件结构。这个问题是关于如何使用cfmail(以及cfmailpart,cfmailparam等)产生正确的结构的。
所需的结构为:
multipart/mixed
multipart/alternative
text/plain
text/html
image/jpeg
application/pdf
我当前获得的代码:
<cfmail from='"No Reply" <noreply@example.com>' subject="Test 123" to="my_outlook_address@example.com,my_gmail_address@gmail.com">
<!--- Some code to get a query of attachment content here... --->
<cfloop query="qAttachments">
<!---
Some code to get the attachment file data here and put it in a variable named `myfile`...
myfile structure:
{
fileName: <string>,
fileContent: <base64 encoded file content>,
mimeType: <image/jpeg for the one, application/pdf for the other>
}
--->
<cfmailparam disposition="attachment" contentID="#myfile.fileName#" content="#myfile.fileContent#" file="#myfile.fileName#" type="#myfile.mimeType#" />
</cfloop>
<cfmailpart type="plain">
My plain text
</cfmailpart>
<cfmailpart type="html">
<strong>My fancypants text</strong>
</cfmailpart>
</cfmail>
但是,这会产生以下结构:
multipart/mixed
multipart/alternative
text/plain
multipart/related
text/html
image/jpeg
application/pdf
我尝试过这样的代码:
<cfmail from='"No Reply" <noreply@example.com>' subject="Test 123" to="my_outlook_address@example.com,my_gmail_address@gmail.com">
<!--- Some code to get a query of attachment content here... --->
<cfloop query="qAttachments">
<cfmailparam disposition="attachment" contentID="#myfile.fileName#" content="#myfile.fileContent#" file="#myfile.fileName#" type="#myfile.mimeType#" />
</cfloop>
<cfmailpart type="multipart/alternative">
<cfmailpart type="plain">
My plain text
</cfmailpart>
<cfmailpart type="html">
<strong>My fancypants text</strong>
</cfmailpart>
</cfmailpart>
</cfmail>
但是它只是转到cfadmin中未发送的电子邮件列表。
对于这两个版本的代码,我都尝试在type
标签本身上获取cfmail
属性的值:
无济于事。
如何在ColdFusion中实现所需的MIME结构?
答案 0 :(得分:1)
我采用的方法可能并不理想,但是它在我定位的所有3个邮件客户端中都有效。我最终要做的是:
contentID
标签上包含一个cfmailparam
属性,并在其中添加一个<img src="cid:...">
值的contentID
contentID
标签上的cfmailparam
属性最终结果是,所有图像都以内联方式显示在邮件正文中,而所有其他文件都显示为常规文件附件。
基于我假设谁是CF团队开发人员的讨论,https://tracker.adobe.com/#/view/CF-4166939我给人的印象是MIME标头结构由ColdFusion控制,不能由ColdFusion开发人员直接管理。不幸的是,但至少我有一个解决方法。希望这会对某人有所帮助。