The first mistake I made was to try and figure out how to create a "main" method. I spent about half an hour before figuring out I don't need one. I now make sure to chant "scripting language" three times before I do anything with groovy. This has helped a lot.
As an aside, this scripting language plus the seemless integration into java is a wonderful reason to use groovy for unit tests. Even if you don't buy into anything else about groovy it would be great for rapid creation of JUnit tests.
So here is my very first groovy script (I almost said app, "scripting language...scripting language"). I am sure I have done all kinds of things that are not quite right, but it sends me an email which for now is good enough. If for some reason you would like to use it feel free it is licensed under the MIT license. Just copy and paste it into a new file, make sure you have mail.jar (from java-mail) and activation.jar in your classpath and groovy it.
message = "test groovy mail"
subject = "groovy sent this"
toAddress = "email@example.com"
fromAddress = "firstname.lastname@example.org"
host = "localhost"
port = "25"
Properties mprops = new Properties();
Session lSession = Session.getDefaultInstance(mprops,null);
MimeMessage msg = new MimeMessage(lSession);
//tokenize out the recipients in case they came in as a list
StringTokenizer tok = new StringTokenizer(toAddress,";");
ArrayList emailTos = new ArrayList();
InternetAddress to = new InternetAddress[emailTos.size()];
to = (InternetAddress) emailTos.toArray(to);
InternetAddress fromAddr = new InternetAddress(fromAddress);
Transport transporter = lSession.getTransport("smtp");