首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有回调函数的Coldfusion cfmail

带有回调函数的Coldfusion cfmail
EN

Stack Overflow用户
提问于 2015-08-11 13:15:10
回答 2查看 261关注 0票数 0

我使用cfmail标签向用户发送电子邮件。我需要完成的另外一件事是在将记录发送给用户后删除它们。是否有任何可用的解决方案来观察cfmail任务是否完成。例如,像回调一样指示任务已经完成。

EN

回答 2

Stack Overflow用户

发布于 2015-08-11 13:26:19

对于电子邮件,不能保证电子邮件已经送达。

如果cfmail标记执行无误,cfml spool目录中会有一条记录。在服务器将邮件移交给SMTP服务器后,coldfusion将从假脱机目录中删除该电子邮件。

注意:如果你的服务器速度很快,你将永远看不到假脱机文件夹中的邮件。

您可以尝试构建一个检查邮件日志的解决方案,但即使这样也不能保证电子邮件已经送达。

在大多数情况下,知道cfmail已执行就足够了。

票数 1
EN

Stack Overflow用户

发布于 2015-08-11 13:29:21

代码语言:javascript
复制
<cfquery name="emailStuff">
    SELECT * FROM mytable
</cfquery>

<cfloop query="emailStuff">
    <cfmail>
        cfmail contents/properties
    </cfmail>
    <cfquery>
        DELETE FROM mytable WHERE ID=emailStuff.ID
    </cfquery>
</cfloop>

不确定上面是不是你要找的东西。但这是一个粗略的例子,一些代码将删除您的数据库条目后,邮件已发送。

cfmail还具有failtodebug的属性。

如果电子邮件失败,它会将失败的电子邮件发送给您在failto中指定的任何人,或者您可以使用debug记录失败的电子邮件。

请参阅:cfmail docs

更新:您还可以将delete查询移到循环之外,这样它只需要快速地从数据库中删除即可。

代码语言:javascript
复制
<cfloop query="emailStuff">
    <cfmail>
        cfmail contents/properties
    </cfmail>        
</cfloop>
<cfquery>
    DELETE FROM mytable 
    WHERE ID IN (<cfqueryparam list="yes" value="#emailStuff.ID#" />)
</cfquery>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31933718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档