代码:
<cfmail query="getEmail"
to="#getEmail.email#"
from="#getEmail.displayName# <#getEmail.emailfrom#>"
subject="#getEmail.emailsubject#"
type="html"
server="10.1.0.2"
timeout="360"
username="#myuser#"
password="#mypassword#" spoolenable='no' >
My email content
</cfemail>
我正在使用查询运行cfmail标记。在我的情况下,我如何使用isvalid(&#34; email&#34;,&#39;&#39;)。
答案 0 :(得分:2)
在cfif标记内试用您的代码。
<cfloop query="getEmail">
<cfif isValid("email", getEmail.email)>
//Code to send mail
<cfelse>
Invalid Email <cfoutput>#email#</cfoutput>.
</cfif>
</cfloop>
这是您从getEmail查询中收到的电子邮件。如果它有效则只发送电子邮件,否则将发送电子邮件。最终,您将找到无效电子邮件列表(如果有)。
答案 1 :(得分:1)
也许你可以在你的SQL查询中使用正则表达式,尝试设置这个条件
SELECT .... WHERE email NOT REGEXP '^[^@]+@[^@]+\.[^@]{2,}$'
我相信只返回有效电子邮件的记录。
让我知道这是否有效
答案 2 :(得分:0)
我发现这样的电子邮件地址...
<cfset new_Emailaddress = '?é?áomega@testdomain.com'>
<cfset blnValid = #IsValid("email", new_Emailaddress)# />
<cfset email_test_result = #YesNoFormat( blnValid )#>
<cfoutput>#email_test_result#</cfoutput>
(尝试一下,代码将输出“是”)
但是,当尝试发送到?é?áomega@testdomain.com的消息时,ColdFusion邮件服务器将爆炸。 (在CF 2016上测试)
“ ..标签CFMAIL的属性验证错误。属性to的值(当前为?é?áomega@testdomain.com)无效。...”
我想添加一个已被接受的答案,即不能仅依靠有效的ColdFusion函数。我建议也过滤一个不太可能的电子邮件地址字符。
<cfset new_Emailaddress2 = ReReplaceNoCase(new_Emailaddress,"[\)|\(|\<|\>|\?|\=|##|\$|\%|\^|\&|\*|\!|\é|\á]","","ALL")>
<cfoutput>#new_Emailaddress#</cfoutput><br>
<cfoutput>#new_Emailaddress2#</cfoutput>