Jump to content

Apple Mail Problems


littletinybun

Recommended Posts

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.
Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...