Yet another project - announcing SpoolMail
So - here is a problem. You use <cfmail> to generate some mail on your dev box. Since you aren't hooked up to a "real" mail server, to check the mail you need to dig down to your undelivered folder. Wait for it to show up. Open the file, and then ignore all the mail header junk and see if the mail came out ok. This works - but is a pain. Especially now that I run multiple ColdFusion servers under JRun. Sure I could add a shortcut to my desktop, but then I'd have to minimize my desktop, and that's just too much work.
Enter SpoolMail.
What is SpoolMail? It is an extension that lets your ColdFusion Administrator read the mail in the undelivered folder in a HotMail/GMail type interface. You can even delete the mail or move it back to the spool. Even better - it has a luscious interface that just screams art! You want to look at this project. You need to. You want to hang it on your wall and rip up the Monet wasting space there now.
Enjoy. It is version 0 which means, basically, I wrote it real quick and didn't do a lot of QA on it. In theory, it could cause global warming. It could even make you cry, but most likely it won't cause anything worse than a hangnail. I'd mention my wishlist, but Lord knows I've only about ten thousand times on the blog.
Today's build was brought to you buy Freur, Sia, Cocteau Twins, Saint Etienne, and This Mortal Coil, AKA known as my "Depressing as Hell" playlist.
Comments
You just keep making my life easier and easier and easier...
Can I use this outside the CF Administrator? B/c our host doesn't allow us direct access to the Administrator. But we do have access to the mail directory paths and all the .cfmail files.
nice idea though.
havent implemented yet, but the intro alone has now compelled moi!
adios
tw
I think your code is really cool, we can check our bounce mails and your code exposed alot thing we can do very easily.
Thanks for your great code.
Thanks
Sana
tw
isDefined("url.reinit") or 1
so basically its going to happen either way, whatever follows. so then, i ask, whats the point of checking for the existence?
its not a bitwise or operation, so i dont think its that.
must be like 1 or 1 really, since the isDefined("") returns 1 if its true.
right?
<cfif structKeyExists(arguments.exception, "rootCause") and structKeyExists(arguments.exception.rootCause, "type") and arguments.exception.rootCause.type is "coldfusion.runtime.AbortException">
<cfreturn>
</cfif>
Thanks.
FYI - I'll be updating the zip today to use APp.cfm. Someone sent me the conversion already so it won't take long. This will let the app work with CF6. (And CF5 I'm sure.)
The one thing I have besides this for managing the spool is a text-mode file manager with built-in fast viewer (Far) - but this is loads easier.
One huge addition would be to extract the relevant line(s) from mail.log (and mailsent.log for 6/7) for that spool filename to get the exact error. Would be version-specific, and requires searching through 1-2 potentially big logfiles that may be locked, so may be more trouble than it's worth, unless it's possible to read those without locking.



and works great :))