我正在尝试创建一种搜索方法,以便在我的出站电子邮件中附加文件。我需要在文件夹中搜索并找到以某个字符开头的所有文件,然后将它们附加到电子邮件中。我只需要了解如何创建这样的搜索方法,以便了解任何指针或引用链接。
这是我到目前为止所做的事情但是当我使用路径代替GetBaseTemplatePath()
<cfscript>
attributes.attachments = 2011093475839213;
</cfscript>
<cfset Directory = "E:\sites\Example.com\FileFolder\#attributes.attachments#">
<cfset CurrentDirectory=Directory>
<cfset CurrentDirectory=ListDeleteAt(CurrentDirectory,ListLen(CurrentDirectory,"/\"),"/\")>
<cfoutput>
<b>Current Directory:</b> #CurrentDirectory#
<br />
</cfoutput>
<cfdirectory action="list" directory="#CurrentDirectory#" name="result">
<cfdump var="#result#">
当我稍微改变代码
时<cfset CurrentDirectory=GetBaseTemplatePath()>
我的代码有效,我得到当前目录中所有文件的列表。我的路上有一个我看不到的错误吗?
这是我的CFMAIL部分,我确实遇到了问题。
当我转储#result#
查询时,我得到文件夹中的所有文件。然后我收到了这个错误:
The resource 2011093475839213.pdf was not found.
The root cause was: ''.
尽管有错误,我确实收到了一封电子邮件,而不是附件。
<!--- Email Test --->
<CFMAIL FROM="user1@example.com" TO="user2@example.com" SUBJECT="Test" type="HTML">
<P> This is the attachment test</P>
<p> For this test to be successful, we need to receive some file attachments with this email</p>
<cfloop query="result">
<cfmailparam file="#result.name#" disposition="attachment">
</cfloop>
</cfmail>
<!--- Email Test Ends --->
答案 0 :(得分:2)
cfdirectory标签允许您搜索具有特定模式的文件夹。使用它返回的查询,您可以循环它并将所需的所有文件附加到电子邮件中。
http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7f99.html
答案 1 :(得分:1)
这样的事情:
<cfdirectory action="list" directory="#myDirectory#" name="myDir">
<cfmail subject="My Subject" to="yourAddress" from="myAddress">
My Message
<cfsilent>
<cfloop query="myDir">
<cfif Left(myDir.name,1) eq "Z">
<cfmailparam file="#myDirectory & myDir.name#">
</cfif>
</cfloop>
</cfsilent>
</cfmail>