I use Outlook Express as my email client, to retrieve mail from 4 different accounts, both work and personal. OE will only log on to the next server after it has retrieved mail and logged off from the previous one. This seems to me an awful waste of time. Why can’t it log on to all the account on my list simultaneously?
Is this an issue with all POP3 clients, or is it only an OE problem?
FWIW, I’m reasonably happy with OE, since it does only as much as I expect my email client to do, without adding any useless clutter. This is pretty much my only grouse with it.
The limiting factor is download speed, particularly for dial-up or even DSL connections. OE could have been ddesigned to log onto all 4 simultaneously, but assuming there’s a bunch of mail in each account, it’d still get done downloading the last bit of mail at about the same time. Given that limitation, the designers chose to do the simpler thing and just process one account after another.
Further, if you operate it like many people do, where it just runs in the background, downloading new mail every X minutes, then all of this is moot , since it’s usually a few minutes later when you get around to reading it. Why go to a lot of trouble to shave a few seconds of the arrival time in the in-box when the user won’t look at it until much later?
I think this is the key point. Most applications still do things in a sequential fashion simply because there’s never been a demand to thread them up to multitask properly. The few exceptions are databases, image manipulation and similar hard-core processor-intensive tasks where doing things in parallel generates a significant user difference.
Every mail client I have ever used does the same as OE, even though with 2mb ADSL the bottleneck is usually the bandwidth provided by the various different mail servers I use rather than my connection. If I had an email client that did parallel fetches, I could save seconds, I say SECONDS!, every day.
Maybe one day mail clients will do things differently, but I can’t say I’m campaigning for them to focus on this rather than spam detection or usability.
Outlook (non-express) downloads from multiple accounts simultaneously, so it’s likely simply a feature they left out to coax people to buy their premier product.
As others have mentioned, it’s the design of the application; there’s no particular reason why a multi-threaded application can’t talk to several servers at once.
There are some reasons why a designer might choose not to do it this way; POP3 conversations are subject to timeouts - a multi-threaded application attempting to retrieve large messages from several servers at once might saturate the available network bandwidth, causing one or more of the threads to time out before it has retrieved all of the messages. This potentially has several adverse effects; after a timeout, the POP server may decide that you have to wait before it lets you retry, also, messages that were downloaded before the timeout may be retrieved as duplicates the second time around.
This is actually the reason why I asked. One of my work accounts handles primarily large drawing files, and I occasionally suffer server timeouts. If there are multiple files on that account, and OE has finished one or more of them, it’ll still re-download those ones before going on to the next.
IANAProgrammer, so I could very well be wrong about this, but the ‘it’s more work’ argument doesn’t make much sense to me. It’s not like it’s a recurring effort - you write the code once, and it’s done, right? And would the increase in development costs be so prohibitively higher? Given that a free client can incorporate it, I’m led to believe not.
And if it saves you seconds (me, maybe minutes every day), it’s already a little better. Maybe not much, but better all the same.
Like I said in the OP though, it isn’t enough of an irritant yet to make me change. I was just wondering.
It is indeed more work to make a program multithreading. It also adds complexity to accessing the data, because you have to make sure each thread properly accesses the data by “locking” it before access and “unlocking” it after each access. And it’s surprisingly easy to make a “deadlock” condition where one thread locks data x and is waiting for data y to become free, but another has locked data y and is waiting for data x to become free, and the whole thing grinds to a halt.
It’s another layer of complexity, and adds work. But obviously not insurmountable, since it’s done on a routine basis.
Did I say millions were clamoring for it, or did I say it’s a feature (as in, among several) that might coax people who want it? You, know, like the OP?
As far as I can tell, the full version of Outlook does not download simultaneously, but queues up the individual accounts for downloading just like OE. You can test this by watching the “details” box when it’s doing so (but you’ve got to be quick) - if you’ve got a large file sent to your first account, you can see it waiting for that to finish before starting the next account.
Interestingly, I just downloaded Eudora to see if it does in fact have parallel account synchronisation, and it a) asked me if I wanted it to be the default app, then when I said “no” it lied and did it anyway, b) crashed while importing my Outlook settings, something the website specifically said it was much better at these days, and c) corrupted some of my Outlook folders while doing so. Huh.
I do a fair bit of multi-threaded programming, and I can tell you it’s not exactly the easiest thing to debug. Given that Outlook Express has (like IE) had next-to-no development work on it in the last, ooh, 5 years, I’m far from surprised that they haven’t implemented this, particularly since for the vast majority of users it wouldn’t even result in a speed increase noticeable to the naked eye. OE is a free piece of rubbish, and email was intended to be a lightweight communications medium, not a heavy-duty file transfer protocol. I can see why it’s annoying in your case (and I’ve had the same problem in the past), but to be honest you might be best off looking for a better way to disseminate files.
As a quick fix, however, I suggest re-arranging the sync order of your accounts. If you go to Tools … Accounts in OE, there should be a “set order” button at the bottom right of the dialog box. In there you should be able to specify which accounts get sync’d first, and if you put the one receiving the large files last, it’ll at least not delay the other accounts if it starts timing out. Hope this helps…
For whatever it’s worth, Entourage does get mail from multiple accounts simultaneously. While Microsoft does position Entourage as the Mac version of Outlook, the applications have vastly different roots.
I use Thunderbird to retrieve from 3 email accounts, and it is not parallel. The progress bar at the bottom of the window shows that it is connecting and then downloading one at a time.
You sure? It doesn’t for me. I have two email servers, and it first gets mail from one, then the next.
Could you be using IMAP instead of POP3? It would seem that IMAP would get new mail simultaneously, since it has to keep an open connection to the server, but my POP3 Tbird definitely checks sequentially.
Please, implementing multiple email checking would be relatively easy in terms of building multi-threaded apps. In principle, it’s similar to trying to load multiple webpages at once and could probably use much of the same code.
I think part of it has to do with limiting the featureset of OE to push people to buy outlook (evidently gouda thinks this is a feature worth having) and dealing with the UI issues when dealing with multiple accounts.
Mozilla Mail definately checks multiple accounts at once but it can often be quite confusing what is going on and whether an account checked succesfully or is timing out.