ColdFusion通过邮件函数尝试捕捉循环
我有一个电子邮件发送到的电子邮件地址列表。mail函数从数据库循环遍历列表,但如果遇到格式错误的电子邮件地址,它将停止并中断循环。我曾尝试使用try/catch来捕获错误,并希望它能继续通过循环,但它没有像我所希望的那样工作。代码如下。如果有人有任何想法,或者是一个正则表达式,我可以在循环之前筛选电子邮件地址,过滤掉不好的,那就太棒了 谢谢ColdFusion通过邮件函数尝试捕捉循环,coldfusion,railo,cfmail,Coldfusion,Railo,Cfmail,我有一个电子邮件发送到的电子邮件地址列表。mail函数从数据库循环遍历列表,但如果遇到格式错误的电子邮件地址,它将停止并中断循环。我曾尝试使用try/catch来捕获错误,并希望它能继续通过循环,但它没有像我所希望的那样工作。代码如下。如果有人有任何想法,或者是一个正则表达式,我可以在循环之前筛选电子邮件地址,过滤掉不好的,那就太棒了 谢谢 <!---Try to send the mail(s)---> <cftry> <cfmail to="&l
<!---Try to send the mail(s)--->
<cftry>
<cfmail to="<#Auctioneer.email#>" from="#emailSite#" subject="#Email.subject#" server="#emailServer#" query="Auctioneer" type="html">
<!---Some email content--->
</cfmail>
<cfcatch type="Application">
<cflog text="#cfcatch.detail#" file="mail" type="Error" application="yes">
<cfmail to="admin@website.co.uk" from="#emailSite#" subject="Invalid E-Mail Address" type="html">
Email address not valid error.
#Auctioneer.email#
<cfdump var="#cfcatch.detail#">
</cfmail>
</cfcatch>
</cftry>
电子邮件地址无效错误。
#Auctioneer.email#
您可以先验证查询中的电子邮件地址
不过,对我来说,我从来不喜欢让CFMAIL标记管理查询。它似乎总是造成比它的价值更多的麻烦。我通常会这样做:
<cfoutput query="Auctioneer">
<cftry>
<cfmail to="#email#" from="#variables.emailSite#" subject="#variables.subject#" server="#application.emailServer#" type="html">
<!---Some email content--->
</cfmail>
<cfcatch type="Application">
<cflog text="#cfcatch.detail#" file="mail" type="Error" application="yes">
<cfmail to="admin@website.co.uk" from="#variables.emailSite#" subject="Invalid E-Mail Address" type="html">
Email address not valid error.
#email#
<cfdump var="#cfcatch.detail#">
</cfmail>
</cfcatch>
</cftry>
</cfoutput>
电子邮件地址无效错误。
#电子邮件#
您要做的是遍历地址,验证地址,并只发送有效条目的邮件。像这样的
<cfloop query="getEmails">
<cfif isValid("email", Auctioneer.email)
...send valid email...
<cfelse>
...send invalid email, or better log in database...
</cfif>
</cfloop>
我会亲自循环它们,捕捉错误并继续循环
for(var i = 1; i < Auctioneer.recordCount; i++) {
try {
//send email
} catch (Any e) {
//log
continue;
}
}
for(var i=1;i
不过要小心。似乎isValid(“email”,…)
可以拒绝一些有效的电子邮件地址。这可能只是为了清楚起见,但从技术上讲,不需要continue
,因为“try/catch”在循环中。