back to article Lamson - email app coding without the palm sweat

"Can you integrate this with my e-mail?" It's one of the more dreaded questions in software development. For any programmer who has been around the block a few times, it evokes a long repressed fear of Sendmail m4 macros or Outlook COM objects. When a non-technical managerial type asks this question in a group meeting, and your …

COMMENTS

This topic is closed for new posts.
  1. Sly
    Coat

    what?! a novel idea?! what's this?!

    hogwash! we can't have novel ideas any more! we have to put bandages on it and make it worse until it breaks and we have to outsource the creation of a new one!

    /mine's the one with cobol code on the back

  2. captain veg Silver badge

    I'm missing something

    I don't get it.

    Lamson is, apparently, "The Python SMTP Server". How does that help you integrate your application with PHB's email system, be it Sendmail or Exchange? He wants you to use *his* SMTP server, not one that's easy to programmatically control.

    But yeah, I can see it might be useful to spammers.

    -A.

  3. Martin Gregorie

    He's missing something

    ... and the something he's missing is JavaMail. Its there. It works. Its pretty damn easy to program, and can handle POP3 and SMTP sessions out of the box.

    People can and do write MTAs with JavaMail, but its real benefit is providing a clean way to put your whizz-bang mail server, etc, where it belongs: as an MTA client, so it can be run behind something well-tested and reliable like Postfix. Its documentation is OK: even starting from scratch you can have code up and handling mail or USENET messages inside a day.

    I agree with Ted about the horrors of sendmail, but really, if he can't install and configure Postfix and have it up and running in an afternoon then I bet I can shine a torch in one of his ears and read my paper by the light coming out the other one.

  4. Anonymous Coward
    Anonymous Coward

    You mean the solution to spam has been under our noses all this time?

    I demand an urgent high-level inquiry into the widespread failure of governments and network providers to implement Hoping It Just Goes Away when the problem first raised its ugly head. And I won't be happy until heads have rolled. Along with all the spam.

  5. dl32

    Incorrect domain

    Ted, it's manpanties.com (no dash). Thanks for being such a loyal member and recommending your readers to visit.

  6. Graham Lockley

    Concerned

    I'm more than a little worried/concerned about the writers choice for an example of a mailing list. I suspect there's a little too much info ......

  7. Avalanche

    Java bashing

    Typical Java bashing from both The Register and the insecurities of the Python community. Instead of getting there by their own merits, they seem to feel the need to bash Java.

    Looks to me like the author and developer clearly have never worked in depth with Java or with JavaMail.

  8. Anonymous Coward
    Alert

    That's dangerous

    > If that's possible, it may also be possible to convince them that you can get a cheap and quick buzz by inhaling the fumes released when you mix ammonia and bleach

    Can you clarify this in the article please? This doesn't cause a buzz, it causes death by chlorine gas poisoning (as used for chemical warfare in world war 1).

    I'm worried that some idiot kid is going to see that and try it.

  9. Henry Wertz 1 Gold badge

    Ha!

    Target spam? Ha! Those slimebags don't care about targetting, they steal machines to spam anyway, and are usually paid per e-mail by other chumptastic dirtbags.

    That said this actually sounds pretty nice overall... I'm also rather amazed about how conventional e-mail software is almost frozen in time.

  10. Mike VandeVelde
    Megaphone

    email pain

    "Can you integrate this with my e-mail?" It's one of the more dreaded questions in software development.

    Unless your application server is Lotus Domino :-)

    "There should be a simple start for a developer, clear documentation, a framework, a modern language, well defined protocols, commented code, and you should be able to extend it without painful configuration. You know, a lot like Django, Rails, or Cocoa, .NET, or just about any other platform today."

    Like Lotus Domino?

    "Either that or you can use it to integrate your company's helpdesk system with e-mail."

    Or you can just stick with your Lotus Domino based solution - or look into getting one. Check out Foundations server.

    http://www.ibm.com/software/lotus/foundations/

    Shameless sure, but when you talk about painful email integration then Lotus must needs mentioning.

  11. Anonymous Coward
    FAIL

    @Numbnuts

    "Every now and again, and alpha programmer will come along and put a nice API on top of one of these protocols [...] JQuery did it to Javascript"

    jQuery is just a big wrapper around eval(). In other words it's a big fucking fail. Ted knows all about fail.

  12. Anonymous Coward
    Boffin

    What kind of "technical person" is that then?

    "Indeed, the Java world has taken a stab at e-mail, but has failed miserably."

    Have a look at something called "Commons Email", by the folks at Apache, then reconsider statement. And as someone else quite rightly said of course, Java Mail (which ships with the Java distribution).

    Seriously though, the RFC's for SMTP, POP3 and IMAP are easily available (and Exchange can be configured to allow them as protocols). Any "technical person" who can't research and understand them well enough to code a simple client for any of them should really go back to script kiddy college and leave the real work to us grown-up software engineers (you know, the ones who can imagine writing network apps without HTTP and write protocol implementations without a third party API?).

    I find "how would you code a simple E-mail client" a great interview question to weed out people who are worth hiring...

  13. Anonymous Coward
    Happy

    Uhm, confused ?!

    Never had any problems with email apps, used Java and .NET stuff in the past.

    But that's probably because I'm an awesome programmer...

  14. Chris C

    Integration?

    According to the project's home page, it is "The Python SMTP Server". How does that help anyone integrate email with another app? Is anybody stupid enough to think an enterprise is going to replace their existing server with this? I'm sure companies will jump at the chance to ditch their working system for this new, untested system.

    Also, I'm amused by how the author himself explains it:

    "I totally think Lamson will be used more for spam than for anything really useful."

    "Rather than blasting out billions of junk ads nobody wants, I'm hoping that smart spammers will become 'marketers' and start sending clean advertisement to people who might actually want it."

    and, from the project's FAQ:

    "What kind of applications do you envision being built on top of Lamson? Why, spam of course. As well as spam fighters, greylisters, [etc]".

    Is it just me, or does that come dangerously close to making the software illegal (since the author himself claims that the project's primary use will be for illegal purposes)?

    As for Ted -- "As a development platform, e-mail has gone neglected for decades. Its esoteric implementation details and specifications are regarded by many in the IT business as voodoo."

    First, the email specifications are not esoteric. The plethora of mail servers and clients is proof of that. Second, implementation details are not esoteric. If they were, you wouldn't have hundreds (if not thousands) of web/email hosts offering $5/mn hosting services. Do not confuse difficult or time-consuming implementation with esoteric.

    Lastly, email is not a development platform. It is a form of communication. Do you consider the telephone to be a development platform? Do you consider a pen, paper, and the Postal Service to be a development platform? Email is the same as those, it just uses a different medium.

  15. Peter Kay
    Thumb Down

    *YAWN* Big fucking deal.

    Not seeing the advantage here. e-mailing is especially easy using Java - I used the javamail extensions years ago and it handled SMTP and MIME like a dream, probably even better now.

    No-one wants a new server unless it does something genuinely different - they want code to integrate with their existing server.

    Wake me up when this code does something special - like easily integrating with the advanced features of Exchange or similar, transparently handles exchange calendaring or helps you write mail gateways easily.

    Of course that would require real effort, like discovering that some MAPI server functions silently corrupt your data when used one time in four, and having to code workarounds. Or perhaps that whilst core Windows has pdb files to tell you what functions you're debugging exchange didn't as little as a couple of years ago - assembly level debugging - niiice. Or that the documentation is incomplete and complex - you really don't want to know how you convert an RTF stream to something else.

    It also sounds like a definite work in progress. Python isn't a bad language (apart from the enforced whitespace. Nice in theory, pain in the arse in practice) but last time I looked it wasn't rock solid in all its modules either.

  16. breakfast Silver badge
    Badgers

    Ted and Zed?

    It doesn't surprise me that Ted likes Zed who also comes across as a total dick ninety percent of the time but is likewise pretty funny with it. I am, however, surprised that there is room on the american continent for two egos of that size.

  17. breakfast Silver badge
    Pint

    Sweaty palms

    Also, the palm sweat doesn't come from the awkwardness of programming around email, that just comes with the territory. I mean obviously anything that helps with that is good, but the cold fear in my heart when I think of working with email is from the moment when you realise you have just sent your jokey/sweary/surreal/deeply inappropriate test email to every customer your employer has ever had. And that most of them are unlikely to see the funny side. And that the bounced messages from all the failed recipients are probably going to hose your company's mail server too...

  18. Chris Thomas Alpha
    FAIL

    Zed Shaw(t of brains) strikes again

    You see, the last time I heard of this retard was because he was threatening anyone who disagreed with him to a boxing match anywhere in the world because of his opinion that RoR sucked ass and omg, I'm so a super programmer, why doesnt everyone take a spoon, so they can eat my ass.

    Zed is just a drama queen, a prima dona. Lets actually look at what he has done.

    ........I'll wait..........NOTHING

    All he has done is write ANOTHER email server like system, using python instead. WOW FRIGGING STRAP ME DOWN AND GIVE ME ANOTHER HOT CHERRY SURPRISE!!

    The real problem is that the protocols and methods of doing the transactions are hopelessly out of date. They need to be improved.

    Email, the protocol, the application layer, etc, etc, was built decades ago using what little we had to create a messaging system that would work reliably (as much as possible).

    Back in those days, you had to do a lot, with a little, almost like programming procedure algorithms that create masses of data, or structure, from very little input (because it's expensive to store). You remember how in the late 90's or 2000's everyone was saying how the next wave of graphics would store a procedural representation of a tree and the algorithm would create the tree? Programming back in those days used those tricks a lot.

    Email is a good example, instead of clearly marking out and encapsulating the information, giving proper access through an API, etc, etc, you got a raw chunk of data, some "line ending" issues to delimit data and "boundary" tags to mark out things, as well as other fun stuff.

    This is great when you are building email in the 80's, because you only had 4Mhz to program with and 4KB of memory. But now, we have a lot more and all of it is being used to harm the environment than actually process things, thats why Intel now puts so much effort into making sure that Idle, means 0% utilization, not 5% utilization, because 5% of 3Ghz of power, is quite a lot of waste.

    But now, we have all this tech, it might be better, to progress further than email, with a new spec that basically cleans up everything for the new age. THIS would be the future, not some crappy Python email server that does the same things as all the others. Or things in slightly different ways.

    What we need, is a new protocol, same rules, different implementation and this time, no "write your own API", what we need, is a protocol and a base implementation, as well as a comprehensive API that can be called to perform actions on ALL parts of the email and management system that is required also.

    What I would hate to see, are 1000 libraries for the new system that provide the same thing, just written differently. For example, PHPMailer was the tool of choice I had until I figured that there was a better one, SwiftMailer. Why doesnt PHPMailer support creating BCC addresses on linux, only on windows??? Isnt the whole point of these library to abstract away the platform and even language (to a degree).

    What I would like to see, please dont think so hard about the "waste" but about obtaining the perfect representation, would be like an XML system, where messages were written in XML, using normal XML to markup the document and then sending it onto the next one. You could even decode that XML into normal Email to support a gateway with the outside world, as well as import and encode into XML where an email from outside is sent to your system.

    Clients would be easier to write, because XML libraries are everywhere and mostly just work, there would be no guessing how to encode attachments, how to read line endings, reading until you hit the MIME boundary message, etc, etc, it would all be nice, packaged up and structured.

    Hmmmm, now that I think, maybe I used described a cut down jabber server???

    But anyway, I digress, Zed Shaw is a Gook, everyone knows it, he hasnt built anything impressive really, nothing to see here, move along.

  19. Anonymous Coward
    WTF?

    apples and pairs

    This is a framework for applications ? I dont see a fully fledged smtp server here at all. Its is something sorely needed though as many programmers dont seem to understand SMTP.

  20. Ben H

    Lotus Domino

    Integrating applications with email has been utterly trivial using Notes / Domino for almost 2 decades. Ask a Domino developer "Can you integrate this with my e-mail?" and they will almost certainly answer "It already is".

  21. Jax 1

    @The Zed Shaw Flame

    Wow awesome to see someone such as Tom Lane provide such a critique, except wait.. you're not Tom Lane, you're not even a Zed Shaw. Wait who the fuck is Chris Thomas Alpha? On what basis do you have the right to knock people for "not doing anything" when I you haven't "done anything". Not that it should matter anyway, review Lamson based on Lamson not on personalities or past victories/defeats.

    If you really can't be bothered to do your research Zed Shaw made Mongrel, a webserver that a whole bunch of people use. He writes funny stuff that gets high votes on Hacker News (as articles on interest). I think he had been appointed CTO at Bear Stearns prior to it imploding (so it ain't like this guy doesn't have talent, ability and connectections).

    Rails is a Ghetto was more an attack on the people in the rails community than the tech (aside from his tangent in regards to Ruby's threading model). Why do people interpret that post as just an attack on the tech?

This topic is closed for new posts.

Other stories you might like