I know I said I was going to shelve the Groovy Email Server. Instead, I kept working on it. I will probably keep at it until I get it to a semi-finished state. Right now it is in a semi-semi-finished state.
Right now I have implemented most of RFC 1939 (POP3) and RFC 5231 (SMTP). (I do not plan on implementing RFC 3501 (IMAP).) I can send email from another account to my GES, and I can retrieve them locally using Alpine. So far I would call it pretty successful.
I have not tried to retrieve messages with attachments. I have not looked at RFC 5232 (Internet Message Format), which may cause problems down the line. I have not tried to send messages while logged into Alpine.
I have written this using PostGres. I have the tests actually writing to the database. I know a lot of test purists will object, but I saw an article linked from Hacker News: Don’t test with SQLite when you use Postgres in Production. One of the comments was a quote (supposedly from NASA): Test what you fly, fly what you test. Maybe it’s not the absolutely best way to test and develop, but as Voltaire wrote: Do not let the perfect be the enemy of the good.
I have to update the README on github. I think I will try to get it to a point where I can also send from Alpine. I might go further than that, and try to get it to the point where I can replace my Apache James server. We shall see.
I am shelving the Groovy Mail Server for the time being.
I did not think it would be easy, but it is turning into a lot more work than I thought. I am also having issues with some stuff in Postgres. I want to learn Clojure, and lately I have been getting impatient to do something there. There seems to be more activity in the Clojure community, and I think the Clojure job market will hit a critical mass faster than Groovy will. I think I might start with the tutorial on the Luminus site.Besides, I am more likely to get a job making web apps than writing mail servers.
Granted, I said a few times I was done with Groovy Validators, and then later I came back and improved it.
- @AustinForum Thanks for the follow 19:11:08, 2015-08-10
- @IngridBckls Thanks for the follow 19:11:34, 2015-08-10
- @lkdjiin Thanks for the follow; or should I say: Merci for the follow 19:12:01, 2015-08-10
- I am at @AustinClojure – speaker: @ShangoDev – thanks to @CapitalFactory for hosting 19:14:35, 2015-08-10
- Do any #Clojure devs go back and refactor their @4Clojure solutions as they get better with the language? 20:13:11, 2015-08-10
- @scbt_jobs Thanks for the follow 20:14:50, 2015-08-10
- @RyanVanderwerf Any plans for an @AustinGGUG meeting in the near future? in reply to RyanVanderwerf 20:16:34, 2015-08-10
- @bitfield Thanks for the follow 16:23:59, 2015-07-23
- @BoostCare When I try 2 submit my CC payment, I get an error message you are having tech difficulties – 2nd day in a row I can't pay 16:25:13, 2015-07-23
- @STLStude When are you leaving the big city for the bigger city? in reply to STLStude 16:29:55, 2015-07-23
- @BoostCare Am I going to get dinged a late fee if I cannot pay on time because your site is not working? in reply to BoostCare 16:36:26, 2015-07-23
I took some time off work to see family on the East Coast. Now I am back in front of my computer again.
I am still working on my Groovy email server. Just getting one RFC done is taking a long time.
I have talked about working on a Grails tutorial. It looks like there is some progress on porting the Shiro plugin to Grails 3. I will try it out and see what happens. If I make a tutorial, I think I would need to run it on a static site. I will also look into static site generators, like Grain or JBake.
After I get done (or closer to done) with the mail server (or at least RFC 5321), I will spend some time with Clojure. I found an article on programming on HuffPo (via hacker News) with a link to a page by the author that advocated functional programming (without using the word “functional”). It is looking like that might be the way to go.