CFmail需要多长时间才能发送?

时间:2012-08-30 09:42:17

标签: email coldfusion coldfusion-9

我正在创建一个创建自定义PDF的应用程序,邮寄它然后将其删除。我已经分别测试了所有3个组件并且它们可以工作但是当我把它们放在一起时,电子邮件不会发送。

在发送电子邮件之前,附件是否可能被删除,即使删除是在脚本之后?

这是我的代码。

<!---Get the PDF--->
<cfscript>
    PDFBuilder = createobject("component", "form_admin.email.PDFBuilder" ); 
    pdf = PDFBuilder.createPDF(form_id);
</cfscript>

<!---Create link to the pdf --->
<cfscript>
    foo =  expandPath('../email/tmp/')  & pdf & '.pdf';
</cfscript>

<!---Create email--->
<cfmail to="will@hazardousfrog.com"
        from="will@hazardoufrog.com"
        subject="Jag intrest form. "
        type="text/html" >
    <cfmailparam file="#foo#">

    Dear #getEmail.title#, #getEmail.first_name# #getEmail.surname# <br />
    Attached is a PDF boucher telling you more information about the cars you were interested in.  <br />
    Best wishes <br />
    Jaguar <br /><br /><br /><br /><br /><br /><br /><br />
    This is not actually jaguar this is a test application by Hazardousfrog.
</cfmail>

<!---Delete the file after it has been sent ---> 
<cfif FileExists(#foo#)> 
    <cffile action="delete"
            file="#foo#">
<cfelse>
    <cfoutput >
        error
    </cfoutput>
    <cfabort>
</cfif>

对不起,如果代码不是很好,我只做了2周的CF。

3 个答案:

答案 0 :(得分:4)

好的,我设法得到了工作朋友的答案。

处理cfmail后,邮件会保存到假脱机中,并在约3分钟后定期发送。 在我的情况下,这意味着在邮件发送之前删除了电子邮件PDF附件,因此邮件没有发送。

coldFusion mail tag有一个属性可以立即发送或保持假脱机。

  

spoolenable:是否假脱机或始终立即发送。

为了让我的代码能够运行,我将这一行添加到我的邮件属性中。

spoolenable="false"

答案 1 :(得分:4)

另一个选择是使用cfmailparam标记的remove属性,它将告诉CF在发送文件后删除该文件。这样你的可欺骗属性就可以是真的,它应该按照需要工作。 remove属性是在8.0.1版中引入的。

答案 2 :(得分:1)

我还会在cfmail代码周围放置fileExists(),确定是否确实创建了pdf文件。