Yahoo Imap support for Thunderbird 3.1
In this blog post we introduce a modified patch that works with the latest version of Thunderbird (currently Thunderbird 3.1.2). You can find the patch below or download at tb312_patch.txt.
Of course patching and building Thunderbird might be challenging for quite a few people. To make it a bit easier we have compiled the patched Thunderbird source 3.1.2 for the Windows platform and made the binary available here: thunderbird312_yahooimap_bin.7z.
Installation: Please note the binary is for windows only. To install the Yahoo imap Thunderbird version just download thunderbird312_yahooimap_bin.7z and unpack the contents of the bin folder into your existing Thunderbird 3.1.2 installation (that is the folder which contains thunderbird.exe). As always, it is recommended to backup your existing installation before you try this and there is no guarantee, so try at your own risk :-)
After this you can configure Yahoo imap with the following servers:
imap.mail.yahoo.com port 993 (SSL/TLS)
smtp.mail.yahoo.com port 465 (SSL/TLS)
I hope that I followed the Yahoo and Mozilla open source guidelines correctly. If not, please let me know.
--- nsImapProtocol.cpp Thu Jan 15 01:13:00 1970
***************
*** 5719,5724 ****
--- 5719,5731 ----
else if (flag & kHasAuthOldLoginCapability)
{
PR_LOG(IMAP, PR_LOG_DEBUG, ("old-style auth"));
+ // Patch to enable Yahoo Imap protocol support
+ nsCString command_guid (GetServerCommandTag());
+ command_guid.Append(" id (\"GUID\" \"1\")" CRLF);
+ rv = SendData (command_guid.get());
+ NS_ENSURE_SUCCESS(rv, rv);
+ ParseIMAPandCheckForNewMail();
+
ProgressEventFunctionUsingId (IMAP_STATUS_SENDING_LOGIN);
IncrementCommandTagNumber();
nsCString command (GetServerCommandTag());
*** nsImapServerResponseParser.cpp Thu Jan 15 01:13:00 1970
--- nsImapServerResponseParser.cpp Thu Jan 15 01:13:00 1970
***************
*** 550,555 ****
--- 550,562 ----
// pre-flight the possibilities based on the first letter of the token.
switch (toupper(fNextToken[0]))
{
+ // Patch to enable Yahoo Imap protocol support
+ case 'I':
+ if (toupper(fNextToken[1]) == 'D')
+ language_data();
+ else
+ SetSyntaxError(PR_TRUE);
+ break;
case 'O': // OK
if (toupper(fNextToken[1]) == 'K')
resp_cond_state(PR_FALSE);
Comments (75)
I don't know why no one has said thank you yet so allow me: THANK YOU! Stumbling upon this page has literally made my day!
Would it be possible to turn this patch into an extension/add-on that could be easily applied by the end user?
I don't think this is technically possible. But if anybody knows how, please let me know. I would give it a try.
THANK YOU! For years I'm looking for it.
Is there an easy way to convert it into a non-english version? Thanks.
You could post a question in the forum :-)
WooooooooooooooooW
It's Realy works,
thank u so much.
FINALLY - the missing link!
Glad to hear this patch is useful. The 3.1 patch was only possible because of Bijan's research (at crasseux.com).
I'm on OS X (Leopard). I tried applying the patch to the TB 3.1 source tree and building, but ran into tons of problems. (The instructions at https://developer.mozilla.org/en/Simple_Thunderbird_build are anything but simple; I can't find the hg binary anywhere on my system; the python checkout command fails; etc.).
Any chance you could put together an OS X build? I'll keep trying in the meantime.
Thanks!
Unfortunately I don't have a Mac. But if anyone built a Mac patched version successfully, please send to me and I will post here. Or if you send me a Mac I could try myself ;-)
After a good bit more fiddling, I managed to build it under Leopard. I've been using it with my Yahoo email account (via IMAP) for about a week now with no problems.
I'd be happy to contribute my build (of course with no guarantees that it won't erase someone's hard drive or something, just that it works fine for me here). Please let me know if you're interested and, if so, how I can get my .app bundle to you.
That's great news. Will send email to you shortly.
If anybody has a linux build, please let us know!
Works great on Windows 7 64 bit.
Thanks for this! But where can I find the binaries for linux/ubuntu? I am not a technical person :-)
I don't use Linux, but if anybody has a build, please send me an email and I will share here.
I got here via crasseux .com/linux. I am glad somebody continues to work on this topic! Many thanks!
That's what I needed. A German version would be nice though.
I need a Linux version!!!
works like a charm! :D
thanks!
Perfect :-)
Good stuff!
Thanks!
its work great on my windows, but i need this on my ubuntu 10.04. is anyone can help me?
Unfortunately I don't have Ubuntu. But you could build it yourself, if you want.Instructions can be found at https://developer.mozilla.org/en/Simple_Thunderbird_build . All tools are actually free.
...how do i actually apply the patch?
on ubuntu 10.04
On Ubuntu you could use the "patch" command (diffutil package) to patch the source code automatically. Or you just copy and paste the code manually, which should be pretty straight forward. Building Thunderbird is actually the tougher part.
I have a Linux build of patched thunderbird (although I used a slightly different patch, I published it at mozilla 493064).
Two different builds, for x86 and x86_64 may be needed, though.
Send me a mail and we will see what to do with it.
Sounds great. I just sent you an email.
Is the reason you are not calling IncrementCommandTagNumber at the start of the patched code because it is called at the beginning of the function?
So does the unpatched code have a bug in that IncrementCommandTagNumber is called twice for the kHasAuthOldLoginCapability case?
Correct, that was the idea. I am not sure whether it is a bug (in the unpatched version). I suppose redundant IncrementCommandTagNumber calls don't create any problems. I just wanted to keep my patch as small as possible. If you think I should call this twice as well, please let me know. Thanks.
I don't know, I asked ob mozilla.dev.apps.thunderbird
http://groups.google.com/group/mozilla.dev.apps.thunderbird/browse_thread/thread/bf088edb03246a38
_____________________________________
On a side note, perhaps it makes sense to only do this for yahoo:
if (m_realHostName.EqualsLiteral("imap.mail.yahoo.com"))
I thought about this too and tested whether is has a negative impact on other IMAP services. Couldn't find any. And there are more Yahoo servers (there was also imap.next. ...). Also some people might use IP addresses and so on. Handling all this would have made the patch significantly bigger.
Not working anymore...why?
"Login to server imap.mail.yahoo.com failed."
I don't know why... :( When i try to add another email address with imap settings he give me error.
Works for me. Sometimes Yahoo servers are not very responsive. Did you login to the webmail interface from the same ip address as well?
No, i'm not... Very strange..some address yahoo working but others not working. Here is error she give me http://img827.imageshack.us/img827/8043/19960874.jpg
Configuration looks ok. I get a lot of "can not sign into Yahoo" errors on my phone, but after an hour or so it works again. Yahoo's servers are not the most reliable ones, so it is probably a Yahoo issue.
It works really well. Thank you very much!
Yes, probably... I will try again for many times maybe will work someday. :-D Thanks
By the way, if you think there could be a problem with the patch, you could also use the Imap proxy to test. Only problem is that the proxy is not secure.
Thunderbird 3.1.1 released today?
Just released the patched version for Windows ...
Thank you!!
Awesome. Thanks!!
This patch works nice here even with imaps.
So I adapted the sources packages from: https://launchpad.net/~ricotz/+archive/ppa/+packages and appied the patch. Now its possible to build a thunderbird with yahoo imap support for Debian and Ubuntu. Just get thunderbird_3.1.1+nobinonly.orig.tar.gz from the ppa above. Them get the modified diff from: http://www.4shared.com/file/lkEraQkB/_2__thunderbird_311nobinonly-0.html and build the packages. The instuctions for buiding is found at http://www.adilson.net.br/2010/07/habilitando-o-suporte-imap-do-yahoo.html . The page is in Portuguese so you can use Google translate from: http://translate.google.com/translate?js=y&prev=_t&hl=pt-BR&ie=UTF-8&layout=1&eotf=1&u=www.adilson.net.br/2010/07/habilitando-o-suporte-imap-do-yahoo.html&sl=pt&tl=en&act=url
Thanks for the patch.
I followed your instructions, and it still won't work for me. I get to the Mail Account Setup screen and change the incoming server and the only error I get is this: "Configuration could not be verified - is the username or password wrong?". Here's a screenshot of what it look like: http://farm5.static.flickr.com/4073/4828794049_174ccb7f77_b.jpg Thanks ahead of time for any help you may be able to provide.
Cal
You have to add the domain to your username as well.
What do you mean exactly when you say domain?
Your username should be "username"@yahoo.com
Okay. I've tried that and still get the same result.
Hi,
Its work pretty well, but I have a question. Why should I almost all file of my Thunderbird installation change, when tb311_patch.txt has only 36 rows? It is not possible, that I change only then Files, which I need?
Thanks
I believe all binaries should be built with the same tool. This is the safest approach. But if somebody did some research which minimum set of files would work, please let us know :-)
Hi,
I just finshed updating my Patched copy of Thunderbird I got off
crasseux.com some months back. I first updated the 3.0.8 version
to the Mozilla standard 3.1.2 version. Then I downloaded and
extracted your patched version to the \programs\mozilla thunderbird\
directory as per your instructions.
I did all of this with my Norton 2010 turned off. Ran Thunderbird
and began to check all of my four email accounts. Everything worked
as before, flawlessly. Except for Yahoo. Now when I try to get new
mail I get a dialog box that states "Login to server imap.mail.
yahoo.com failed (Retry/Enter new Password/Cancel"
If I hit the "retry" button enough times, I get another dialog
box which states "Server ms7440@yahoo.com has been disconnected.
the server may have gone down or there may be a network problem"
interestingly, I have checked and double checked the settings
for this account and they have not changed, they are just as
they should be.
I am at a loss here. Suggestions???
Did you unpack the contents of the bin folder into your existing Thunderbird 3.1.2 installation (that is the folder which contains thunderbird.exe)?
I thought I had. I will re-check this..
Have you got finded the workaround ? I have the same pb.
Thank you!! Happy to see someone follow the evolutions of Thunderbird ;)
Just a question now: how can you sync contacts between yahoo mail and Thunderbird? I have searched for a long time, but with no results... With Gmail it is simple (I use Zindus), but with Yahoo, it's more complicated to find something interesting :(
I guess there is no extension for this yet, unfortunately.
Thanks for this, been searching for something like this for a long time. Is there anyway to modify this to work with Portable Thunderbird? It works with regular thunderbird though.
Thanks
It also works with "Portableapps Thunderbird". That is what I actually use. See also previous comment.
Sorry, my bad. I extracted the 7z file in the wrong place.
I extracted it in the folder containing "ThunderbirdPortable.exe" ("H:\ThunderbirdPortable\") instead of folder containing "thunderbird.exe" ("H:\ThunderbirdPortable\App\Thunderbird\").
Previously, it gave an error saying my password was wrong which is what confused me. I guess i should have RTFM.
Thanks KeeForm! All works fine now. I'll spread the word.
Glad to hear this.
Working great :)
Help! It doesn't work anymore. I had this thunderbird setup on my old laptop about a month ago and it's been working very well. Just got a new laptop this week and was setting up thunderbird on new laptop today. It kept giving me error and couldn't connect. after that, the thunderbird on my old laptop wouldn't work anymore either... why??
You probably have an error in your configuration :-)
It's working again, on both new and old computer, this morning when I wake up.... still don't know what happened yesterday... weird...
There could have been a Yahoo server outage/maintenance ...
Hey!
First of all, THANK YOU !!!
On the other hand, I have a question:
What are the complete SMTP settings needed ?
I am not able to send e-mails, keep getting the following message:
Login to server smtp.mail.yahoo.com failed.
My settings are:
Server Name: smtp.mail.yahoo.com
Port: 465
Connection security: SSL/TLS
Authentication method: Normal Password
User Name: myYahooId (without @yahoo.com)
Has anyone else experienced something like this ?
Thanks!
Try with @yahoo.com :-)
I have tried with @yahoo.com :-) and no, it does not work.
Can anyone please post their SMTP server settings ?
[anyone who can actually send mail using SMTP]
Could you please post your question in the forum? I think I have the answer, but it is easier for other users to find it in the forum :-)
I figured it out. Just remove outgoing
account, then re-set up as
Server Name: smtp.mail.yahoo.com
Port: 465
Connection security: SSL/TLS
Authentication method: Normal Password
User Name: myYahooId (without @yahoo.com)
Thanks. You're awesome!
@yahoo.com should also work. Other yahoo users must use @ymail.com or @rocketmail.com etc