Skip to content

Instantly share code, notes, and snippets.

@owenallenaz
Last active February 18, 2020 23:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save owenallenaz/ef87b56f5a764f4417b5e312deb5608d to your computer and use it in GitHub Desktop.
Save owenallenaz/ef87b56f5a764f4417b5e312deb5608d to your computer and use it in GitHub Desktop.
Cleaning email arrays in CF
<cffunction name="cleanEmails">
<cfargument name="toStr">
<cfset local.tempArr = ListToArray(arguments.toStr)>
<cfset local.newArr = []>
<cfloop array="#local.tempArr#" index="local.email">
<cfset ArrayAppend(local.newArr, trim(lcase(local.email)))>
</cfloop>
<cfreturn unique(local.newArr)>
</cffunction>
<cffunction name="unique">
<cfargument name="arr">
<cfset local.newArr = []>
<cfloop array="#arguments.arr#" index="local.i">
<cfif !ArrayContains(local.newArr, local.i)>
<cfset ArrayAppend(local.newArr, local.i)>
</cfif>
</cfloop>
<cfreturn local.newArr>
</cffunction>
<cffunction name="removeDupes">
<cfargument name="current">
<cfargument name="master">
<cfset local.newArr = []>
<cfloop array="#arguments.current#" index="local.email">
<cfif !ArrayContains(arguments.master, local.email)>
<cfset ArrayAppend(local.newArr, local.email)>
</cfif>
</cfloop>
<cfreturn local.newArr>
</cffunction>
<cftry>
<cfset local.to = "foo@something.com, bar+test@what.com, Foo@Something.com ,foo@yourmom.what">
<cfset local.cc = "foo@something.com,no<a>@valid.com">
<cfset local.bcc = "foo@blah.com,foo@someTHing.com">
<cfset local.toArr = cleanEmails(local.to)>
<cfset local.ccArr = cleanEmails(local.cc)>
<cfset local.bccArr = cleanEmails(local.bcc)>
<cfset local.ccArr = removeDupes(local.ccArr, local.toArr)>
<cfset local.bccArr = removeDupes(local.bccArr, local.toArr)>
<cfset local.bccArr = removeDupes(local.bccArr, local.ccArr)>
<cfdump var="#local.toArr#">
<cfdump var="#local.ccArr#">
<cfdump var="#local.bccArr#">
<cfcatch>
<cfdump var="#cfcatch#">
<cfabort>
</cfcatch>
</cftry>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment