?
Solved

Mail scripting

Posted on 2009-05-04
8
Medium Priority
?
496 Views
Last Modified: 2012-05-06
Okay, I have a unique requirement.

I get 800 emails per day, and I want to sort them by the first 3 characters of the attachment name.
95% of them have an attachment that starts with 3 numbers that indicate what group the email belongs to.  The attachment name might be "01807.jpg"

I would like to sort the emails into individual folders based on the attachment names.  "01807.jpg" makes a folder named 018 and puts the message in there.

I was provided this applescript, but I will admit- I am not a programmer and understand NONE of it, and need to know what to do with it, aside from saving the script file.  I've done that.

Any help to make this work is appreciated.

The mail is in a MAPI mailbox named "WORDPRESS"  and the folders can be under that mailbox.

Thanks for the help!

using terms from application "Mail"
	on perform mail action with messages TheMail
		tell application "Mail"
			repeat with ThisMail in TheMail
				if (count of mail attachments of ThisMail) > 0 then
					set AttName to name of first mail attachment of ThisMail
					set AttName to (items 1 thru 3 of characters of AttName) as string
					if not (exists mailbox AttName) then
						make new mailbox with properties {name:AttName}
					end if
					move ThisMail to mailbox AttName
				end if
			end repeat
		end tell
	end perform mail action with messages
end using terms from
 
using terms from application "Mail"
	on run
		tell application "Mail" to set sel to selection
		tell me to perform mail action with messages (sel)
	end run
end using terms from

Open in new window

0
Comment
Question by:TIgerV
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
8 Comments
 
LVL 5

Accepted Solution

by:
AGoodKeenMan earned 2000 total points
ID: 24300718
That should work fine. Goto /Applications/AppleScript/ and open the AppleScript Utility, you will find an option to enable the script menu in menu bar. Then with Mail active, open the script menu and select "Open Mail Scripts Folder" and save your script into this folder.
Now with all the new emails selected run this script from the script menu.
0
 

Author Comment

by:TIgerV
ID: 24300775
Outstanding!  Thank you very much.  I am still testing a few things, but I think this is gonna do exactly what I need.
0
 

Author Comment

by:TIgerV
ID: 24300797
Okay, it is working, but.....

Saving the mail to "on my mac" in a folder.  How do I tell it to save it to a folder on the IMAP account?

If this is working tonite (974 emails), this should be a 1,000 point question.  :-D

Thanks!
0
Want to be a Web Developer? Get Certified Today!

Enroll in the Certified Web Development Professional course package to learn HTML, Javascript, and PHP. Build a solid foundation to work toward your dream job!

 

Author Comment

by:TIgerV
ID: 24300807
I just found out I can select them and Drag them back, but it would be quicker and easier to allow them to remain on the IMAP.
0
 
LVL 5

Expert Comment

by:AGoodKeenMan
ID: 24302066
Ok I'm working on it, I need the name of your IMAP account?
0
 
LVL 5

Expert Comment

by:AGoodKeenMan
ID: 24302407
Try this one and see how it goes. You will need to add your IMAP account name on line 7.
using terms from application "Mail"
	on perform mail action with messages TheMail
		
		-- In the line below replace "myAccountNameGoesHere"
		-- with the name of your IMAP account
		
		set IMAP_Account to "myAccountNameGoesHere"
		
		tell application "Mail"
			tell account IMAP_Account
				repeat with ThisMail in TheMail
					if (count of mail attachments of ThisMail) > 0 then
						set AttName to name of first mail attachment of ThisMail
						set AttName to (items 1 thru 3 of characters of AttName) as string
						set AttName to "WORDPRESS/" & AttName
						if not (exists mailbox AttName) then
							make new mailbox with properties {name:AttName}
						end if
						move ThisMail to mailbox AttName
					end if
				end repeat
			end tell
		end tell
	end perform mail action with messages
end using terms from
 
using terms from application "Mail"
	on run
		tell application "Mail" to set sel to selection
		tell me to perform mail action with messages (sel)
	end run
end using terms from

Open in new window

0
 

Author Comment

by:TIgerV
ID: 24303187
Thanks.  I'll put that in and see how it goes.   I will get the mail blast at about 4pm.
0
 

Author Comment

by:TIgerV
ID: 24303241
OUTSTANDING!  You have done it.  

Thank you very much.  I tried it with a test mail that I had in the queue from a while back.

Tony
0

Featured Post

Enroll in August's Course of the Month

August's CompTIA IT Fundamentals course includes 19 hours of basic computer principle modules and prepares you for the certification exam. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Preface   In the first 100 days of the Macintosh release in January 1984, Apple sold 72,000 of the computers. Relatively cheap, easy-to-use personal computer with a graphical operating system. I've never seen this model. I did see this one:   …
Do you come here a lot? Are you lazy like me and don't want to go through the "trouble" of having to click your Dock's Safari icon and then having to click your Experts Exchange Favorites bookmark to get here? Well then this article is for you.
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question