littletinybun Posted June 27, 2010 Posted June 27, 2010 I haven't used this service for a few years but I decided to give it a try again. I went through my Junk Mail forder and unmarked ( as Not Junk ) some myspace emails that got caught in Apples filter and moved them to the inbox. I ran my applescript below to have all the junk automatically sent to spamcop. I went to check what it sent and sure enough it still sent the email headers of the emails I had removed and marked not junk . Before I get banned as a free user what went wrong ? Applescript macro on run global gAttachmentList global gTempItemsPath global gFileName set theTo to "submit.4m2uozXHiQSwoNIx[at]spam.spamcop.net" & ",spam[at]uce.gov" set gAttachmentList to {} as list set gTempItemsPath to (the path to the temporary items folder) as text set sendSpam to 0 set theSentList to {} as list tell application "Mail" activate set spamFolder to junk mailbox set theMessages to messages in spamFolder as list if the (count of theMessages) = 0 then beep return end if repeat with theMsg in theMessages my ProcessMsg(theMsg) copy theMsg to end of theSentList end repeat set theCount to the count of gAttachmentList if theCount is 0 then beep return end if set theBody to "" if theCount is 1 then set origMsg to item 1 of theMessages set theSubject to the subject of origMsg if theSubject does not start with "FW: " then set theSubject to "FW: " & theSubject end if else set theSubject to "FW: " & theCount & " spam messages" as text end if set newMessage to make new outgoing message with properties {visible:true, subject:theSubject, content:theBody & return & return} tell newMessage -- If you'd like to specify an outgoing email account uncomment the line below and change it to your outgoing email address -- set sender to "outgoing[at]email.account" make new to recipient at end of to recipients with properties {name:"Spamcop", address:theTo} repeat with theAttachment in gAttachmentList tell content to make new attachment with properties {file name:theAttachment} at after the last paragraph end repeat end tell activate send newMessage delete theSentList end tell end run on ProcessMsg(theMsg) global gAttachmentList global gTempItemsPath global gFileName tell application "Mail" try -- Give each message file a name which includes a six digit random number set theRandom to random number from 100000 to 999999 with seed (the subject of theMsg) set gFileName to "temp-" & (theRandom as text) -- comment out the 6 lines below if naming the messages according to their subject doesn't work for you set errNum to my GetMessageFilename(gTempItemsPath, theMsg) if errNum is not 0 then activate display dialog "Error while attempting to save file. ID=" & errNum buttons {"OK"} default button 1 return end if set theFilePath to gTempItemsPath & gFileName -- Use the following line instead of the above line to put the temp files on the Desktop -- set theFilePath to ((path to desktop) as Unicode text) & gFileName set theFileID to open for access file theFilePath with write permission write (source of theMsg as text) to theFileID close access theFileID set theAlias to theFilePath as alias set gAttachmentList to gAttachmentList & {theAlias} set was forwarded of theMsg to true on error errMsg activate display dialog errMsg buttons {"OK"} default button 1 end try end tell end ProcessMsg on GetMessageFilename(theFolderPath, theMsg) global gFileName -- construct a file name for the message -- To do this we must replace all colons w/ semi-colons -- and then truncate the name if necessary tell application "Mail" set msgSubject to the subject of theMsg end tell set theName to "" repeat with x in the characters of msgSubject set aChar to x as text if aChar is ":" then set aChar to ";" set theName to theName & aChar end repeat -- all colons are removed, now truncate it in the middle if necessary set nameLength to the length of theName if nameLength is greater than 31 then set theHalfLength to nameLength / 2 if theHalfLength is greater than 15 then set theHalfLength to 15 set theNewName to (characters 1 thru theHalfLength of theName) & "…" & (characters (nameLength - (theHalfLength - 1)) thru nameLength of theName) set theName to theNewName end if set gFileName to theName as Unicode text set errNum to my CheckFileName(theFolderPath) return errNum end GetMessageFilename on CheckFileName(theFolderPath) global gFileName set theCount to 0 set tempName to gFileName set nameLen to the length of gFileName -- if the file already exists in the temp items folder then change its name by adding a number to the end so as to make the filename unique repeat if theCount > 0 then set countString to " " & (theCount as text) set countLen to the length of countString set totalLen to nameLen + countLen if totalLen < 32 then set tempName to tempName & countString else set tempName to (characters 1 thru (31 - countLen) of gFileName) & countString end if end if set theFilePath to theFolderPath & tempName try set theAlias to theFilePath as alias -- The file already exists! on error errMsg number errNum if errNum is -43 then set gFileName to tempName return 0 -- file doesn't exist yet, yahoo! else activate display dialog errMsg buttons {"OK"} default button 1 return errNum end if end try set theCount to theCount + 1 if theCount > 9999 then return -36 end if end repeat return -36 end CheckFileName
rconner Posted June 27, 2010 Posted June 27, 2010 There are other Applescripts you can find on this forum that people have used successfully, Maybe you could compare them. The one that I have used requires you to select (highlight) the messages you want sent, rather than sending a whole folder at a time. -- rick
gnarlymarley Posted June 28, 2010 Posted June 28, 2010 I haven't used this service for a few years but I decided to give it a try again. I went through my Junk Mail forder and unmarked ( as Not Junk ) some myspace emails that got caught in Apples filter and moved them to the inbox. I ran my applescript below to have all the junk automatically sent to spamcop. I went to check what it sent and sure enough it still sent the email headers of the emails I had removed and marked not junk . Before I get banned as a free user what went wrong ? I didn't immediately see anything wrong, but I know imap and pop can keep message in your folder after you have moved them. I would suggest expunging the folder before doing this. I like the other suggestion to use one that requires you to select the messages manually as it goes not require you to "expunge" a folder. There are other Applescripts you can find on this forum that people have used successfully, Maybe you could compare them. The one that I have used requires you to select (highlight) the messages you want sent, rather than sending a whole folder at a time.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.