Long time user of windows mobile devices and long time reader of this great forum ( well nearly 2 years anyway )
I've not contributed much as I dont posses the knowledge that some of you guys have.
For those new people that come on here the only advice I would ever give is search and read, the answers are nearly always there.
Anyway on to my point.
I have just set up an exchange server ( windows small business server 2003 ) and have things syncing across the airwaves nicely.
Laptop, desktop and mobile device all saying the same thing with no duplicates poping up. ( Always seemed to be a problem when syncing between two computers, for me anyway )
Also able to use Outlook Web Access.
Set this up for myself for a couple of reasons, firstly to make sure all computers where synced properly and secondly because it was worth a challange to learn how to do it.
If there are any people out there that would like the facility that exchange server gives PM me, as i will give it a go setting it up.
You will get exchange server syncing ( calender, contacts, tasks and emails ) with desktop/laptop outlook, outlook web access and an email address that you will can use to forward existing mail to. ( sorry only way to get emails to you )
Going to open this up for a couple or more people mainly to get it working properly. ( so far no problems for myself )
If I do open it up for more a donation would be nice to help pay for the outlay of equipment and for the increase in my electric bill to keep it going.
So if anyone is interested feel free to PM me.
What do you have it running on? Looking at doing the same myself.
Just a bog standard computer, nothing special
An old MSI K8 Neo motherboard with an Athlon 64 3000 2 Gig ram
Dual 250 gig discs in raid mirror for data
and a 120gig for operating system
Windows 2003 small buisness server with R2 technologies
it was also an excuse to upgrade by desktop as well.
well chuffed with how seamlessly it works with the syncing.
do you have microsoft direct push enabled on that exchange server? I would like to do that myself, don't know if it's possible
Yes got it set up.
They call it direct push but i think it goes more along the lines of your phone keeping a link open to the exchange server then as soon as an email is recieved it gets pushed across.
From what ive seen so far i'm sure the battery life is longer now than having the phone looking at a set time period for new mail.
Easy to set up as well, especially the phone side.
thanks, is the direct push functionality included in exchange server. Is it on the install cd's? I'd like to install it for my own domain, don't want to spend lots of money on blackberry server or services.
2.edge is enabled all the time on your phone, just as with blackberry? Does your phone send data at an interval, or is it the server that sends?
You need to make sure you have SP1 or R2 Technologies version for direct push with the server software
you have to set up a user profile that has permission to you the mobile services.
Also if your on a dynamic ip address its handy to have an external service set up to keep track of any changes there. And to get the full use of the server a domain name.
on the phone side you go to activesyn, and in the menu is configure server option. configure the server and thats it done.
The phone does seem to have a data connection all the time.
While i'm at work today i will write out the steps i had to do to get it working fully.
at work now so here we go :-
1) Get a domain name www.
2) If on broadband and on a dynamic IP use the services of someone like zoneedit for redirection.
(for remote access) vpn.yourdomainname to your broadband ip address
(for mail ) mail.yourdomainname to your broadband ip address
(for web ) www.yourdomainname to either your ip address if hosting it on your server or to the ip address of your web host.
(for ftp access ) ftp.yourdomainname to either your ip address if hosting it on your server or to the ip address of your web host.
follow the other instructions on zoneedit to forward the dns server addresses to your domain name admistrator.
3) Get Windows SBS or Server 2003 SP1 With R2 Technologies
4) Load onto a PC
5) Make sure all service patches and updates are loaded.
6) Download a program for updating any changes of dynamic IP address such as DirectUpdate and set up a couple of updates to the vpn mail and ftp.yourdomainname. ( easy enough follow the instructions )
7) Go through the todo list and set up wizards on the server.
a) make sure when setting up email and internet that in the creation of a certificate you put in vpn.yourdomainname
b) also make sure when setting up user access they have privilages for mobile access
8) go into internet explorer, content menu and find the certificate you have created and export it.
9) connect your phone via activesync to a computer connected to the server network and copy over the certificate.
10) run the certifcate on the phone to install it.
11) go to activesync on the phone ( can disconnect for this bit ) and set up exchange server using the vpn.yourdomainname
12) after that it should sync
I may have missed a couple of steps in that or have done something wrong but it is all the steps i can remember and it worked for me.
now with a wm6.1 rom on my Hermes, messaging text, MMS, and hotmail working over MEdia Net just fine with no errors when doing Send or Receive.
This is not the case for my POP3 internet mail over MEdia Net (AT&T). When I do a send receive I get messaging telling me it error synchronizing, and data connection tells me it can not connect.
Now if I am logged into my home WiFi, I have no problem logging into my POP3 account, and can send receive freely.
I need to be able to get my POP3 email through the MEdia Net data connection, what do i need to do to make it work. I have tried every thing i know. Just do not know what i am missing. thanks for you help ahead of time.
using WM6.1 Pro CE OS 5,2,20273 by PDACorner
I have had this same issue when I flashed my phone to a "non-standard" AT&T ROM. The issue seems to be in the proxy settings. Download the attached file and run it on your device. It will correct the registry settings for your phone. It also creates the Proxy Manager folder on your device. Also verify that your Media Net settings are correct.
http://www.wireless.att.com/answer-center/main.jsp?t=solutionTab&ps=solutionPanels&solutionId=64950[/URL]
Thanks. do not know what it fixed internally, but it worked, messaging is send receiving on the pop3 now through MEdia Net. Thanks
If you are computer guy you should know what proxy means.
This program is based on the source code of Imap Pusher Service (17762) V0.60:
http://www.codeplex.com/ImapPusherService
Improvements:
1) No longer quit;
2) Auto recovery from socket errors;
3) Auto re-connect;
4) No mail sync after a re-connection, good for battery life.
Many service providers timeout the connection very shortly. For example, Verizon closes inactive sockets after 5 minutes. While xImapPusher can recovery from these 5-min timeouts, it is better not to raise a mail sync each and every 5 min.
5) Added a connection management service, XinConnManager.
If data connection is disconnected, this service will know immediately and reconnect and restart the push service. This service is truly event driven, so there is no periodical polling, idle all the time.
The multiple version can push multiple IMAP accounts, based on the 061 source code made by camro. Tested to work with Gmail and Fastmail.
Enjoy!
[For best battery life, set refresh interval to 28 and the multiple version is recommended even if you have only one account to sync.]
<deleted by user>
DLing & testing now! thanks fixup
any chance of being able to add more than 1 account to the .xml..?
Battery drain & stability
Until recently I was using Windows Live to get push email. This was working quite well, but nonetheless I've switched to GMail & IMAP for various reasons. I'm currently using EmailScheduler for IMAP IDLE support, but it looses connection quite frequently (as in 1-2 times per day). I also noticed that it drains the battery much more than the Windows Live solution. I did some tests with ImapPusher quite some time ago, but it wasn't stable enough.
Would xImapPusher solve these problems?
I noticed xImapPusher comes with a XinConnManager DLL; do you have the sources available for that component as well (I would like to know what I install on my device ;-).
Kind regards,
Ruud.
Possible improvement?
I've been having an idea that could possible improve performance and battery usage of IMAP IDLE solutions like these.
Basically, one would implement some kind of IMAP proxy. This proxy would consist of a socket listener (localhost only) and an IMAP IDLE client. Pocket Outlook is then configured to point to this proxy instead of the actual IMAP server.
The IMAP IDLE client would basically remain the same. However, whenever Pocket Outlook connects to the proxy and issues a LOGON command, IMAP IDLE service is suspended. All remaining Pocket Outlook commands are simply passed through over the same connection that was previously used for the IDLE command. Once a LOGOFF command comes in and Outlook closes the connection to the proxy, the IMAP IDLE client resumes IDLE operation (again, over the same connection). Of course, LOGON, LOGOFF and similar commands issues by Pocket Outlook will not be passed on to the actual IMAP server; the connection will be managed by the IMAP IDLE client.
This way, you prevent Pocket Outlook from setting up its own connection to, and authorizing with, the remote IMAP server for each incoming email. Instead it will re-use an existing authorized connection.
I'm not sure whether it makes that much of a difference, but it might be worth the effort.
Kind regards,
Ruud.
<deleted by user>
I've done embedded programming for 15 years, so you can trust my code.
Many programs, such as PortSip and EmailScheduler, are not event-driven, they keep polling which sucks battery, runs the phone hot and not reliable. XinConnManager is a true event-driven service, has no such problems.
When I have time, I'll re-write the entire ImapPusher from VB to native C++. Anything simply sucks when touchs .Net and VB.
Actually my current push solution is direct http push, very reliable and no any impact to battery life. Here is how to do it:
1) Run Depeche, a http server for PPC. Modify the SimplTex ISAPI to tell Outlook to sync mail when it gets a http request.
2) Run Pocket DynDNS to update "mypocketIP.homeip.net". This program works, but it uses Sleep(60 seconds) to update DynDNS. You know, Sleep() does not work as soon as the phone goes into suspend mode. So I made "XinServerManager", a service similar to "XinConnManager", to keep the connection and meanwhile call PDD to update dyndns immediately after a new (re)connection. Then kill the PDD.
3) Run PPC emulator on a XP machine and run a slightly modified xImapPusher on top of it. When email arrives, it sends a http request to my phone and the phone then will do a sync to get the new mail.
This is by far my push solution. It does not need any open connection between the phone and the server. True and pure push. This solves the porblem of 5-min timeout with many 3G providers such as Verizon. Such 5-min timeout kills battery. Before, 4 hours of push running would drain 10% battery, now with my direct http push, 10% will run the phone for 24 hours, like it is no push running at all!
Battery will always be worst using IDLE, this is one thing Microsoft did right. If you wanna know a little bit more, see here:
http://gudensoft.com/?p=140
Instead of using this, I moved to active sync as now Google supports it.
bsinclair said:
Battery will always be worst using IDLE, this is one thing Microsoft did right. If you wanna know a little bit more, see here:
http://gudensoft.com/?p=140
Instead of using this, I moved to active sync as now Google supports it.
Click to expand...
Click to collapse
That article is totally wrong, see my comments at the bottom. Both require an open connection, just inactive, no difference here between these two.
IMAP idle is actually better on this regard: it'll detect the 5-min timeout and make a reconnection, no push lost.
With ActiveSync, it won't detect the timeout and any mail arrived after 5 min until the next beatheart will not be pushed in time.
That's why AS makes you feel a little better on battery life. The default heartbeat is 8 min. So you do get slightly better battery life, but you pay for that with push delay. You may set "MinHeartBeat" to 300 (5 min) so you won't suffer from delay, but then the battery life is no any better than IMAP idle.
The only reason MS does not add IMAP support to WM is because they want to sell Exchange servers and the ActiveSync Direct Push service. Both Apple and Google went to this stupid route.
To address this 5-min timeout issue, I set xImapPusher to re-send the heartbeat without raising a mail sync.
BTW, MS Live push is based on IMAP idle, not ActiveSync. You know, years ago MS bought Hotmail which was Linux based, seems still Linux. Live is far more reliable than AS. Like rsenden, I too was using Live because it does not have all kinds of troubles with Gmail's AS push. However, Verizon applied the stupid 5-min timeout sometime this year or so, so I had to figure out my direct http push.
Fixup said:
I've done embedded programming for 15 years, so you can trust my code.
Many programs, such as PortSip and EmailScheduler, are not event-driven, they keep polling which sucks battery, runs the phone hot and not reliable. XinConnManager is a true event-driven service, has no such problems.
When I have time, I'll re-write the entire ImapPusher from VB to native C++. Anything simply sucks when touchs .Net and VB.
Actually my current push solution is direct http push, very reliable and no any impact to battery life. Here is how to do it:
1) Run Depeche, a http server for PPC. Modify the SimplTex ISAPI to tell Outlook to sync mail when it gets a http request.
2) Run Pocket DynDNS to update "mypocketIP.homeip.net". This program works, but it uses Sleep(60 seconds) to update DynDNS. You know, Sleep() does not work as soon as the phone goes into suspend mode. So I made "XinServerManager", a service similar to "XinConnManager", to keep the connection and meanwhile call PDD to update dyndns immediately after a new (re)connection. Then kill the PDD.
3) Run PPC emulator on a XP machine and run a slightly modified xImapPusher on top of it. When email arrives, it sends a http request to my phone and the phone then will do a sync to get the new mail.
This is by far my push solution. It does not need any open connection between the phone and the server. True and pure push. This solves the porblem of 5-min timeout with many 3G providers such as Verizon. Such 5-min timeout kills battery. Before, 4 hours of push running would drain 10% battery, now with my direct http push, 10% will run the phone for 24 hours, like it is no push running at all!
Click to expand...
Click to collapse
this sounds like a nearly perfect solution, now if it could only be done w/2-3 accounts.
i'll have to give this method a try someday when i get some freetime on my hands. thanks man!
<deleted by user>
The phone keeps connections and sockets in suspend mode, it is the service provider (mine is Verizon) that closes inactive sockets (not the connection) after a timeout (5 min in case of Verizon). You have no control about that.
However, the connection does get disconnected sometime, a random thing, that's why your program needs to wait for the "NOTIFICATION_EVENT_NET_DISCONNECT" event. Note that when you unplug your phone from our computer, it also generates this event, so your program needs to deal with that too.
How long you can use Sleep() is defined by the power settings. For example, if you set your phone to suspend in 60 seconds, you cannot use Sleep(61000). Anyway, you should not use Sleep() at all, because it'll either prevent your phone from suspending or hang your program till the phone wake up.
This is how I do wait when needed:
Code:
SYSTEMTIME GetTimeAfterSeconds(DWORD nTimeInSeconds)
{
SYSTEMTIME sTime;
FILETIME fTime;
GetLocalTime (&sTime);
SystemTimeToFileTime(&sTime, &fTime);
ULARGE_INTEGER uTime;
uTime.HighPart = fTime.dwHighDateTime;
uTime.LowPart = fTime.dwLowDateTime;
uTime.LowPart += nTimeInSeconds*1000*1000*10;
fTime.dwHighDateTime = uTime.HighPart;
fTime.dwLowDateTime = uTime.LowPart;
FileTimeToSystemTime(&fTime, &sTime);
return sTime;
}
void Wait(HANDLE hEventTimer, DWORD dwTime)
{
CeRunAppAtTime (_T("\\\\.\\Notifications\\NamedEvents\\EventTimer"),&GetTimeAfterSeconds(dwTime));
WaitForSingleObject(hEventTimer, INFINITE);
}
main()
{
HANDLE hEventTimer = CreateEvent (NULL, false, false, _T("EventTimer"));
......
Wait(hEventTimer,60);
......
CloseHandle(hEventTimer);
}
Note that WaitForSingleObject(hObject, 60000) won't work, like Sleep(60000).
SOHKis said:
this sounds like a nearly perfect solution, now if it could only be done w/2-3 accounts.
i'll have to give this method a try someday when i get some freetime on my hands. thanks man!
Click to expand...
Click to collapse
Multiple accounts sync should be easy, just tell which account to sync in the http request.
Fixup said:
I've done embedded programming for 15 years, so you can trust my code.
Click to expand...
Click to collapse
It's not that I don't trust your code; as a programmer (non-embedded Java and some C#) I'm just interested in what components like these exactly do. Anyway, I had some time left yesterday so I installed xImapPusher. So far it's working good, too early to compare battery usage with EmailScheduler yet though.
Fixup said:
Actually my current push solution is direct http push, very reliable and no any impact to battery life.
Click to expand...
Click to collapse
This indeed looks like a very good solution. Unfortunately it currently requires a Windows machine running 24/7 (which I don't have) and is too difficult to set up for the average user. For me, a good alternative would be to run the 'IMAP IDLE to HTTP request' component on my CH3SNAS.
Of course, the ultimate solution would be to have a hosted solution on which users can register their IMAP accounts, together with a program on their PPC that both listens for push notifications send by the hosted solution, and sends IP updates to the hosted solution.
camro said:
i'm not sure, if this save battery ..... maybe you are interested on this more in detail
Click to expand...
Click to collapse
Basically, I got the idea by reading somewhere that Pocket Outlook IMAP solutions are always less efficient than, for example, ActiveSync. This is because every time Outlook needs to retrieve mail, it needs to set up a TCP/IP connection, set up SSL if applicable and do a LOGON (and afterwards do a LOGOFF, close the connection).
With an IMAP IDLE solution like xImapPusher you already have a secured and authenticated connection set up, so why not have Pocket Outlook re-use that same connection? However, I don't know how much data and processing power is involved in setting up and closing the connection, and thus how much impact this could have on battery life and time taken to retrieve new mail.
So basically, xImapPusher would not only function as an IMAP client, but also as an IMAP server. The xImapPusher server component handles incoming connections, together with LOGON and LOGOFF requests. All commands between LOGON and LOGOFF are simply passed on to the real IMAP server via the connection that was previously set up by the IMAP IDLE client component (which has temporarily suspended IDLE operation).
Fixup said:
Multiple accounts sync should be easy, just tell which account to sync in the http request.
Click to expand...
Click to collapse
sorry, the multple accounts was in reference to the re-writing of imappusher to c++
still gonna give the http method a shot when i get some time. thanks again man
<deleted by user>
<deleted by user>
rsenden said:
Basically, I got the idea by reading somewhere that Pocket Outlook IMAP solutions are always less efficient than, for example, ActiveSync. This is because every time Outlook needs to retrieve mail, it needs to set up a TCP/IP connection, set up SSL if applicable and do a LOGON (and afterwards do a LOGOFF, close the connection).
With an IMAP IDLE solution like xImapPusher you already have a secured and authenticated connection set up, so why not have Pocket Outlook re-use that same connection? However, I don't know how much data and processing power is involved in setting up and closing the connection, and thus how much impact this could have on battery life and time taken to retrieve new mail.
So basically, xImapPusher would not only function as an IMAP client, but also as an IMAP server. The xImapPusher server component handles incoming connections, together with LOGON and LOGOFF requests. All commands between LOGON and LOGOFF are simply passed on to the real IMAP server via the connection that was previously set up by the IMAP IDLE client component (which has temporarily suspended IDLE operation).
Click to expand...
Click to collapse
Compared to the excessive battery drain from the 5-min timeouts, nothing else matters.
Don't believe too easily what you see on the net. Highschool bloggers dont know what they talk about. If IMAP idle is not good, why MS Live uses it?
I've done extensive tests between imap idle and ActiveSync. I also tested z-push (AS clone) and many other things in searching for the best push solution.
The real problem with imap idle is there is only few mobile clients support it and none of them work. That's why I spent time on this project.
Fixup said:
Compared to the excessive battery drain from the 5-min timeouts, nothing else matters.
Don't believe too easily what you see on the net. Highschool bloggers dont know what they talk about. If IMAP idle is not good, why MS Live uses it?
Click to expand...
Click to collapse
I don't believe everything I see ;-). I was just trying to find an explanation why for example EmailScheduler drained the battery so much faster than Windows Live. After trying out xImapSync for the last few days, I now know that it is just caused by the way EmailScheduler is implemented.
With xImapPusher battery drain is about the same as Windows Live I think, and it's also more stable than EmailScheduler (e.g. I don't have to force a reconnect every now and then). So thank you for your contribution to this project!
This is by far my push solution. It does not need any open connection between the phone and the server. True and pure push. This solves the problem of 5-min timeout with many 3G providers such as Verizon. Such 5-min timeout kills battery, because push is like 5-min polling. Both ActiveSync and IMAP idle suffers from the timeouts.
Before, 4 hours of push running would drain 10% battery, now with my direct http push, 10% will run the phone for 24 hours, like it is no push running at all!
Here is how to do it:
1) Run Depeche, a http server for PPC. Modify the SimplTex ISAPI to tell Outlook to sync mail when it gets a http request.
2) Run Pocket DynDNS to update "mypocketIP.homeip.net". This program works, but it uses Sleep(60 seconds) to update DynDNS. You know, Sleep() does not work as soon as the phone goes into suspend mode. So I made "XinServerManager", a service similar to "XinConnManager", to keep the connection and meanwhile call PDD to update dyndns immediately after a new (re)connection. Then kill the PDD.
3) Run PPC emulator on a XP machine and run a slightly modified xImapPusher on top of it. When email arrives, it sends a http request to my phone and the phone then will do a sync to get the new mail.
The only requirement is a public IP address on the phone. At least Verizon offers this, not sure about other carriers.
:s....man can you make a sort of guide for this ? U explained it all in a hurry and to an average (me) user it makes some sense..but still i cant understand enough to implement this :S
I'm not sure if this is a HTC Wildifre S or an Android Gingerbread related issue and looking through the web I did'n find any solution (to be fair I didn't find other people having the same issue), but this is my problem:
I configured my HTC built-in email app in order to check my email account. I set the incoming mail protocol as POP3. Now, every time my email account gets checked on my phone, nearly all (but strangely NOT ALL) the downloaded emails are authomatically marked as read on the server, so if I look afterwards at my emails on the webmail or on my pc (Thunderbird set wit IMAP protocol) they look to be read, even though I never opened them! Only on my phone unread emails are correctly marked as unread, as the marking seems to happen after the downloading process and thus doesn't affect the already downloaded emails.
This is of course a problem, as I risk to miss unread emails that don't appear to be unread on my pc even though they actually ARE unread.
Did anybody experience the same issue?
Any suggestion?
Thank you
I just discovered your question with no answers last night when scrolling through on my phone before falling asleep so:
This primarily has to do with the difference between web email and client email. Keep in mind that, as always, terms can mean different things depending on the content in which they are used. So web mail, typically uses IMAP as it's protocol and you can read mail on the email server from a variety of devices. When a device (computer, tablet, phone) reads it, the mail is marked as read on the server and when any other device checks for mail it will find it as read. An email client typically uses POP (although some can use IMAP also) and will download mail to the client and delete it from the server; however, often the option to leave it on the server can be selected, but it might still be marked as read because it is also downloaded.
A good example would be the aol desktop program that one would install on their computer, going back to dial-up. You could set it to dial in at intervals and download new mail to the desktop, then disconnect from the aol server. If you read that same mail downloaded to another computer that also had the aol desktop program installed, the first computer would still show it unread and the second would show you read it.
It's kind of the same with current, always connected devices, and to add a layer of confusion (or mystery?) consider how you have the program, on a particular device you're using, set to check mail. If it checks and says you have mail, but you don't check it on that first device but read it on a second device it will still show unread on the first device until it checks the server, for example every hour or whatever time interval you have set. If you have it set to check every hour AND on opening then you might see it flash unread and then show read on that first device (having read it on the second device). Throw in something like your phone's email program checking mutliple sources, aol, gmail, etc. against the above scenarios and it can be hard to keep it all straight...oh yeah, throw in Thunderbird on the same device and...good luck
Thank you MiCeltic. It's probably as you say. Still, I already used to check my emails with different web clients on different devices, some set with POP and some with IMAP protocol, and it never happened to me that a POP-using web client marks all emails as "read" on the server simply by checking them. But the default email client on my android phone probably brehaves like this, as you say. My solution was, in the end, to set all my email clients with IMAP protocol: at least every email is now marked as read (on all devices) only if I actually READ it.
Bye
Mic