Deleting any message with "reply" or "delay" in the body is going to cause some valid messages to be lost because both words are in common usage. Just a thought.
On Mon, Aug 22, 2011 at 8:27 PM, matt busche <mrbus...@gmail.com> wrote: > > I'm not 100% sure all this code will work w/ CF5, but this is what I use. The > JS is thanks to a UDF written by Ray Camden > > this code pulls all emails from an inbox and searches for anything that I've > identified as a bounceback. Then it uses the UDF to find the email and then I > add that email address to a list. This also delete out of office emails from > the inbox. > > Hopefully this helps, > Matt > > <cfpop server="" username="" password="" action="getAll" name="getAllMail"> > <cfset DeleteOrder = ''> > <cfoutput> > <cfset Email_List = '' /><!--- set a variable to hold the list of all > the emails ---> > <cfloop query="getAllMail"> > <cfif FROM CONTAINS 'postmaster' OR FROM CONTAINS > 'MAILER-DAEMON' OR FROM CONTAINS 'Mail Delivery' OR Body CONTAINS 'Failed' OR > Body CONTAINS 'no longer with' OR Body CONTAINS 'Notice'> > <cfset emailList = Body /> > <cfscript> > function getEmails(str) { > var email = > "(['_a-z0-9-]+(\.['_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.(([a-z]{2,3})|(aero|coop|info|museum|name|jobs|travel)))"; > var res = ""; > var marker = 1; > var matches = ""; > > matches = > reFindNoCase(email,str,marker,marker); > > while(matches.len[1] gt 0) { > res = > listAppend(res,mid(str,matches.pos[1],matches.len[1])); > marker = matches.pos[1] + > matches.len[1]; > matches = > reFindNoCase(email,str,marker,marker); > } > return res; > } > </cfscript> > <cfloop list="#getEmails(emailList)#" index="k"> > <cfif NOT ListFind(Email_List,k)> > <cfdump var="#k#"><br /> > <cfquery > datasource="Corporate_Production"> > INSERT INTO InvalidEmails (TextBody) > VALUES ('#Trim(k)#') > </cfquery> > <cfset DeleteOrder = > ListPrepend(DeleteOrder, MessageNumber)> > <cfset Email_List = > ListAppend(Email_List,k) /> > </cfif> > </cfloop> > <!--- Delete out of office emails ---> > <cfelseif Body CONTAINS 'Out of Office' OR Subject CONTAINS > 'Out of Office'> > <cfset DeleteOrder = ListPrepend(DeleteOrder, > MessageNumber)> > <cfelseif Body CONTAINS 'Out of the Office' OR Subject > CONTAINS 'Out of the Office'> > <cfset DeleteOrder = ListPrepend(DeleteOrder, > MessageNumber)> > <cfelseif Body CONTAINS 'Reply' OR Subject CONTAINS 'Reply'> > <cfset DeleteOrder = ListPrepend(DeleteOrder, > MessageNumber)> > <cfelseif Body CONTAINS 'Delay' OR Subject CONTAINS 'Delay'> > <cfset DeleteOrder = ListPrepend(DeleteOrder, > MessageNumber)> > </cfif> > </cfloop> > </cfoutput> > <cfif DeleteOrder NEQ ''> > <cfset Count = 0 /> > <cfloop list="#DeleteOrder#" delimiters="," index="i"> > <cfpop server="" username="" password="" action="delete" > messagenumber="#i#" name="deleteMail"> > <cfset Count = Count + 1 /> > </cfloop> > <br /><cfdump var="#Count#"> EMAILS FOUND > </cfif> > <cfquery> > DEL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:346954 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm