Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Describe your Dream WebMail App

by jdrago_999 (Hermit)
on Jan 21, 2007 at 07:59 UTC ( #595738=perlquestion: print w/replies, xml ) Need Help??
jdrago_999 has asked for the wisdom of the Perl Monks concerning the following question:

Monks -

I am preparing to write a webmail module as part of a larger app I have written (and plan to release as open-source soon). The webmail module would be part of a larger initiative to provide CRM* functionality in the app.

The Good News:
I found Mail::Box, and it looks great. Documented, clean, comprehensive, etc. Wonderful. I see "PerlWebMail" uses Mail::Box as well.
I found Net::Server::Mail::SMTP, and it also looks great. I can just add my hooks for the functions I want to override. Very good.

This is a project I've been kicking around for over a year and now that I have time to work on it, I'm ready to make things happen.

My Question:
What features would your Dream WebMail App have? Let's get the obvious ones out of the way:

  • Contact management
  • Reply/Forward/Delete
  • Spam filters
  • Unicode support
  • Multiple folders
  • Send and receive attachments
  • Virus scanning
  • User-definable filters to sort incoming mail into filters.
So - what features would your Dream WebMail App have?

* Customer Relationship Management

Replies are listed 'Best First'.
Re: Describe your Dream WebMail App
by merlyn (Sage) on Jan 21, 2007 at 13:17 UTC
Re: Describe your Dream WebMail App
by monarch (Priest) on Jan 21, 2007 at 11:50 UTC
    One thing I would love to have in the googles and yahoos is an easy way to export and import mail (ie not via POP3 but perhaps in a downloadable .tar.gz). Import/export of address books is also equally as important. Just in case the underlying server gets sick one day..
      Something like Outlook's export-to-(Excel|CSV|Access) function?

      That would be good. The ability to import would be pretty nice too. Good ideas.
Re: Describe your Dream WebMail App
by almut (Canon) on Jan 21, 2007 at 16:37 UTC

    On my wish list:

    "Proper" threading by In-Reply-To: header and message IDs (or, if In-Reply-To: is missing, by References: header), i.e. not only pseudo-threading by subject (though an optional fallback to the latter would be useful, in case the other info is not available (some people do reply to mails by composing a new message...).

    Then, in addition to sorting-by-thread, a way to specify an auxiliary sort, for example by date, or date-of-most-recent-message-in-thread. IOW, I want to be able to configure by what the threads themselves are ordered by. This would allow me to have the most relevant stuff in a folder within my immediate field of view.

    For example, in mutt (a MUA with a purely text-based UI), I can easily achieve this by configuring set sort=threads and set sort_aux=last-date-received. I have yet to find this functionality in any webmail application (though I, admittedly, haven't tried all of them).

    Of course, I also want to fold/unfold (or open/close, show/hide... whatever) individual threads, and be able to apply operations like delete, save, move, etc. to entire threads...

    Another thing - though probably not all that important in the CRM environment - would be proper handling of replies to mailing lists. Essentially that means being able to easily reply to the list-address only (without having to delete addresses of original author and any Cc:s), while honoring Mail-Followup-To: header.

    And, while we're at it: decent response times (so I don't have to wait 5+ secs after each and every click!).

    What, too difficult to implement? You asked for my Dream WebMail App, so there you are. No complaints please! :)

      > some people do reply to mails by composing a new message
      Perhaps the ability to manually link a message to an existing thread would fix this problem?

      > a way to specify an auxiliary sort
      Great idea. Why don't the other webmail systems have this yet?

      > set sort=threads and set sort_aux=last-date-received
      Maybe provide macro expressions for 31337 h@x0rz to use?

      > fold/unfold (or open/close, show/hide... whatever) individual threads
      Good thinking.

      > decent response times
      No ads = no need to guarantee slow response times.

      > What, too difficult to implement?
      I think I can do all this and more in about 11 lines of Perl.
Re: Describe your Dream WebMail App
by davorg (Chancellor) on Jan 22, 2007 at 10:18 UTC
    • Proper handling (and generation) of threading headers like "References" and "In-Reply-To". And, hence, a threaded view of my mail.
    • The ability to just display the text/plain version of the mail. Just about every webmail I've used insists on trying to render the HTML version - and I don't want to see that.
    • Virtual folders. The ability to put a mail into multiple folders. Maybe this can be achieved using tags (a bit like how Gmail does it).
    • Multiple identities. I send mail that needs to appear to come from many different email addresses. Each different identity needs to potentially have different settings for From:, Reply-To:, SMTP server and signature (and probably other things). Identity should be able to be set automatically according to various attributes of the mail that I'm replying to (from:, to:, the current mailbox, etc) but I need to be able to override it when I'm composing the mail.

    I guess I'm really looking for a web-based version of mutt :)

    Oh, and in my opinion, Mail::Box is looking a bit old and over-complex. If I was you I'd look at the modules from the Perl Email Project.


    "The first rule of Perl club is you do not talk about Perl club."
    -- Chip Salzenberg


      Yeah. Me too.

      Gmail is not hideous, but it doesn't thread properly, and it doesn't let me control the font used for displaying messages, nor does it let me suppress display of non-text parts., yeah, I guess I'd be looking for a web-based version of mutt as well. Start with mutt and webify it!

        A lot of replies talking about mutt. Unfortunately I've never used mutt.

        This is probably a bad sign for anyone who needs the kinds of features mutt sounds capable of.

        I now realize that the kind of tools we as developers require are much different than the kinds of tools CRM application users typically need. There the focus tends to be on making things really simple so even the dimmest bulb can manage sending and receiving email.

        I suppose I'll start out with the basics (send/receive email, folders, attachments, search) and work up to more interesting things (multiple identities and SMTP servers, JAMES-esque "Maillets" and programmable templates with mail-merge.

        This thing won't be replacing mutt anytime soon :)
Re: Describe your Dream WebMail App
by rodion (Chaplain) on Jan 21, 2007 at 12:44 UTC
    You may already be assuming this, but in looking at folders, I not only need to see a summary by sender, date and subject, but I need to be able to sort the folder summary by any of these three criteria. Each sort needs some special handling.
    • "Subject:" needs to handle occurences of "Re: " and "Fwd: " so that threads group toggether.
    • "From:" needs to handle addresses with and without angle brackets, since the same address may have multiple forms
    • "Date:", of course, need to handle different time zones.
    It's also useful to be able to see if I've replied and/or forwarded the message.

    The "out" or "sent" folder, of course, shows "To:" instead of "From:", so there is the added problem of sorting multiple recipient lists. I'd like to be able to see the same email summary header under each of the recipients, but only when I sort the summary based on "To:".

      After reading the docs for Mail::Box, it looks like this is how the "Thread" packages work. Hopefully I'm right.

      This would be a good feature.
      Excellent feedback.

      Great ideas. All intuitively obvious, but best when planned for from the start.
Re: Describe your Dream WebMail App
by Popcorn Dave (Abbot) on Jan 21, 2007 at 20:07 UTC
    monarch has an extremely good point about import/export of address books. I use Thunderbird at home and work and I'd *love* to be able to synchronize my address books between computers.

    Maybe the ability to sync an address book with an existing mail client would be something to look at?

    Revolution. Today, 3 O'Clock. Meet behind the monkey bars.

    If quizzes are quizzical, what are tests?

Re: Describe your Dream WebMail App
by sauoq (Abbot) on Jan 21, 2007 at 11:59 UTC


    "My two cents aren't worth a dime.";
      Bounce functionality - so you could "pretend" that the email bounced, in an effort to maybe get someone to stop emailing you?

      Good idea.
        i think bounce means "resend to another address". kind of forwarding.
        so you could "pretend" that the email bounced, in an effort to maybe get someone to stop emailing you?

        Well, that might be nice, but it's not exactly what I meant. By "bounce" I mean send it on to another address without changing the headers. It's more useful than it might sound.

        "My two cents aren't worth a dime.";
Re: Describe your Dream WebMail App
by Errto (Vicar) on Jan 22, 2007 at 01:57 UTC
    In a similar vein to submersible_toaster, I advocate for doing everything possible within reason to smooth over the lack of real desktop presence. Highlights might include:
    • a noticeable but not-too-intrusive indicator for new mail that pops up no matter what else I may be doing (browsing, composing, managing contacts etc)
    • navigation by keyboard shortcuts
    • more-or-less real time address book resolution
    • more-or-less real time spell check (which can be disabled)
    • drag-and-drop of attachments from OS GUI (would require some custom software to be installed on the client but could be very worthwhile for certain users)
    • Provide, or at least simulate, a continuously scrollable message/thread list with no need for paging
Tags instead of folders
by zby (Vicar) on Jan 23, 2007 at 14:58 UTC
    What I would like to see is tags used instead of folders - so that you can combine them with union and intersection (particularily intersection) integrated with sort and search by words.

    In fact I have a prototype bookmarking app where I put some of my ideas for an ideal user interface for an archive: LinkMine

    • recursive search - the presented list can be searched and filtered just like the whole archive.
    • clicking on properties (like tags, host, author) adds this property to the filter - together with the previous point it makes a very effective and integrated interface for searching and browsing.
    • in the right panel you have a list of all tags (tag cloud) used on the current result (this panel is paged - this might be not clear) - this let's us to treat the tags as if they were folders. This can also be generalized to a faceted interface for all properties, but it might be heavy on server resources.
    • bulk operations on whole pages of bookmarks (this is not yet fully implemented)
    This is a Catalyst web application and I can give you the source code. At Tags and search and DBIx::Class I've described my DBIx::Class database model supporting this interface.
Re: Describe your Dream WebMail App
by f00li5h (Chaplain) on Jan 21, 2007 at 11:15 UTC

    mutt(1) with VISUAL=vim ... although stuffing all that into a an AJAX web2.0 rounded-corner app may be a bit tricky.

    More realistically, must in no way resemble Novell Groupwise, because it has some of the worst -- 8< -- SNIP -- >8 --

    @_=qw; ask f00li5h to appear and remain for a moment of pretend better than a lifetime;;s;;@_[map hex,split'',B204316D8C2A4516DE];;y/05/os/&print;
      You wouldn't happen to have a screenshot of that, would you? :p

        I can offer you an infinite set of screen shots of things that are not like Novell Groupwise...

        @_=qw; ask f00li5h to appear and remain for a moment of pretend better than a lifetime;;s;;@_[map hex,split'',B204316D8C2A4516DE];;y/05/os/&print;
Re: Describe your Dream WebMail App
by andyford (Curate) on Jan 21, 2007 at 15:28 UTC

    I need someone to come up with a clever way to send a couple hundred emails that have variations based on recipient's group and some variants for individual recipients. For instance, I want to announce an event, but I want to add some details about my kids to members of family & close friends.

    non-Perl: Andy Ford

      Great idea - like a "Mail Merge" function?

      Dear <first name> <last name>,

      Blah blah blah.

      Yours truly

        Like a complex merge:

        Hi <person>
        if (person in family)
        Howzit? We are good, the kids are growing.
        How are you?
        <common content>

        non-Perl: Andy Ford

Re: Describe your Dream WebMail App
by submersible_toaster (Chaplain) on Jan 22, 2007 at 01:35 UTC

    My Dream Webmail app is the one I can almost be fooled into thinking isn't (a web app). Some recommendations I would make in this regard.

    • Sieve like filtering. If you support multiple folders then filtering mail on delivery rather than after discovering 500 new messages in INBOX would be great.
    • Try setting up a couple of accounts in Outlook, Evolution, Thunderbird and perhaps Kontact. Observe the things that you really hate about these apps - try to avoid them or at least find a better way to achieve them.
    I think the point I am making is don't limit your goals too early by focussing on 'WebMail'. You want to write an MUA from scratch , it just so happens the user interface is not Curses or gtk or insert witticism.

    I can't believe it's not psellchecked
Re: Describe your Dream WebMail App
by Anonymous Monk on Jan 21, 2007 at 08:47 UTC
    Mining for ideas ... with a promise to open-source?
      It will, in fact, be open-sourced.

      Development is not yet a community project mainly because I haven't had any takers. That, and the project currently has no differentiating functionality to distinguish it from the hundreds of other projects like it. Once I feel it would not be a waste of the community's time to work on it, I'll set up open-registration on a Trac-hosted project.

      I believe that adding solid webmail functionality to the system will give it that extra oomph it needs to solve the problems I would like it to solve, and hopefully the problems others would like it to solve as well.
Re: Describe your Dream WebMail App
by educated_foo (Vicar) on Jan 31, 2007 at 15:41 UTC
    POP/IMAP (or some simple format) export, or forwarding. Most people who receive a significant amount of email have a non-webapp heavily configured to deal with it (e.g. Gnus, VM, mutt,, ....), and find webmail a pain. The best thing you can do for these people is to make the webmail easily available through that client.
Re: Describe your Dream WebMail App
by Anonymous Monk on Jun 28, 2007 at 21:07 UTC
    Personal folders AND subfolder(s)!
Re: Describe your Dream WebMail App
by Anonymous Monk on Jan 22, 2007 at 02:45 UTC
    Organize a potluck
      organize a potluck by email

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://595738]
Approved by wfsp
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (5)
As of 2018-12-10 16:22 GMT
Find Nodes?
    Voting Booth?
    How many stories does it take before you've heard them all?

    Results (50 votes). Check out past polls.

    • (Sep 10, 2018 at 22:53 UTC) Welcome new users!