Yahoo Imap support for Thunderbird 3.1

on Wednesday, 02 June 2010. Posted in Thunderbird, Frontpage

We previously mentioned that there is a patch available at crasseux.com that enabled Yahoo Imap support for Thunderbird 2.0 and 3.0. Unfortunately the patch can not be applied any more as of 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
--- 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);

Social Bookmarks

Comments (75)

Leave a comment

You are commenting as guest.

Cancel Submitting comment...
  • Shaun Rotman
    Shaun Rotman
    15 June 2010 at 11:23 |

    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!

  • J N
    J N
    22 June 2010 at 08:20 |

    Would it be possible to turn this patch into an extension/add-on that could be easily applied by the end user?

    • KeeForm
      KeeForm
      22 June 2010 at 18:04 |

      I don't think this is technically possible. But if anybody knows how, please let me know. I would give it a try.

  • Fernando Guimarães
    Fernando Guimarães
    30 June 2010 at 16:09 |

    THANK YOU! For years I'm looking for it.

  • Giannini
    Giannini
    01 July 2010 at 09:18 |

    Is there an easy way to convert it into a non-english version? Thanks.

    • KeeForm
      KeeForm
      01 July 2010 at 22:26 |

      You could post a question in the forum :-)

  • Pezhmaan
    Pezhmaan
    01 July 2010 at 09:29 |

    WooooooooooooooooW
    It's Realy works,
    thank u so much.

  • mark
    mark
    02 July 2010 at 17:42 |

    FINALLY - the missing link!

    • KeeForm
      KeeForm
      02 July 2010 at 18:56 |

      Glad to hear this patch is useful. The 3.1 patch was only possible because of Bijan's research (at crasseux.com).

  • HJ
    HJ
    03 July 2010 at 04:18 |

    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!

    • KeeForm
      KeeForm
      03 July 2010 at 06:23 |

      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 ;-)

      • HJ
        HJ
        10 July 2010 at 04:59 |

        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.

        • KeeForm
          KeeForm
          11 July 2010 at 00:17 |

          That's great news. Will send email to you shortly.

          • KeeForm
            KeeForm
            11 July 2010 at 00:20 |

            If anybody has a linux build, please let us know!

  • Hans
    Hans
    03 July 2010 at 06:46 |

    Works great on Windows 7 64 bit.

  • Greg
    Greg
    03 July 2010 at 10:20 |

    Thanks for this! But where can I find the binaries for linux/ubuntu? I am not a technical person :-)

    • KeeForm
      KeeForm
      03 July 2010 at 10:47 |

      I don't use Linux, but if anybody has a build, please send me an email and I will share here.

  • Rajesh
    Rajesh
    03 July 2010 at 14:00 |

    I got here via crasseux .com/linux. I am glad somebody continues to work on this topic! Many thanks!

  • Stefan
    Stefan
    04 July 2010 at 12:15 |

    That's what I needed. A German version would be nice though.

  • John
    John
    04 July 2010 at 12:40 |

    I need a Linux version!!!

  • aka
    aka
    05 July 2010 at 08:18 |

    works like a charm! :D
    thanks!

  • Cindy
    Cindy
    05 July 2010 at 22:18 |

    Perfect :-)

  • Jochen
    Jochen
    06 July 2010 at 13:15 |

    Good stuff!

  • Winston
    Winston
    07 July 2010 at 17:34 |

    Thanks!

  • Dhavid
    Dhavid
    08 July 2010 at 03:12 |

    its work great on my windows, but i need this on my ubuntu 10.04. is anyone can help me?

    • KeeForm
      KeeForm
      08 July 2010 at 03:20 |

      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.

  • zach
    zach
    16 July 2010 at 23:01 |

    ...how do i actually apply the patch?

    on ubuntu 10.04

    • KeeForm
      KeeForm
      17 July 2010 at 04:31 |

      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.

  • Linas
    Linas
    17 July 2010 at 14:05 |

    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.

    • KeeForm
      KeeForm
      17 July 2010 at 17:35 |

      Sounds great. I just sent you an email.

  • al_9x
    al_9x
    17 July 2010 at 17:45 |

    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?

    • KeeForm
      KeeForm
      17 July 2010 at 17:56 |

      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.

      • al_9x
        al_9x
        17 July 2010 at 18:39 |

        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"))

        • KeeForm
          KeeForm
          17 July 2010 at 20:21 |

          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.

  • ciprian
    ciprian
    17 July 2010 at 23:02 |

    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.

    • KeeForm
      KeeForm
      18 July 2010 at 01:18 |

      Works for me. Sometimes Yahoo servers are not very responsive. Did you login to the webmail interface from the same ip address as well?

  • ciprian
    ciprian
    18 July 2010 at 02:17 |

    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

    • KeeForm
      KeeForm
      18 July 2010 at 02:29 |

      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.

  • Wave
    Wave
    18 July 2010 at 09:28 |

    It works really well. Thank you very much!

  • ciprian
    ciprian
    18 July 2010 at 10:09 |

    Yes, probably... I will try again for many times maybe will work someday. :-D Thanks

    • KeeForm
      KeeForm
      18 July 2010 at 14:02 |

      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.

  • Thunderbirdie
    Thunderbirdie
    20 July 2010 at 13:49 |

    Thunderbird 3.1.1 released today?

    • KeeForm
      KeeForm
      20 July 2010 at 17:17 |

      Just released the patched version for Windows ...

  • Thunderbirdie
    Thunderbirdie
    20 July 2010 at 23:05 |

    Thank you!!

  • CL
    CL
    21 July 2010 at 05:02 |

    Awesome. Thanks!!

  • Adilson dos Santos Dantas
    Adilson dos Santos Dantas
    22 July 2010 at 18:45 |

    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.

  • Cal
    Cal
    25 July 2010 at 19:52 |

    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

    • KeeForm
      KeeForm
      26 July 2010 at 18:58 |

      You have to add the domain to your username as well.

      • Cal
        Cal
        26 July 2010 at 21:02 |

        What do you mean exactly when you say domain?

        • KeeForm
          KeeForm
          26 July 2010 at 22:30 |

          Your username should be "username"@yahoo.com

          • Cal
            Cal
            27 July 2010 at 06:35 |

            Okay. I've tried that and still get the same result.

  • R2D2
    R2D2
    26 July 2010 at 05:39 |

    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

    • KeeForm
      KeeForm
      26 July 2010 at 19:02 |

      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 :-)

  • marc
    marc
    09 August 2010 at 01:19 |

    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???

    • KeeForm
      KeeForm
      09 August 2010 at 09:45 |

      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)?

      • marc
        marc
        10 August 2010 at 13:01 |

        I thought I had. I will re-check this..

        • plop
          plop
          01 September 2010 at 15:37 |

          Have you got finded the workaround ? I have the same pb.

  • truc
    truc
    09 August 2010 at 05:10 |

    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 :(

    • KeeForm
      KeeForm
      09 August 2010 at 09:42 |

      I guess there is no extension for this yet, unfortunately.

  • Sere
    Sere
    09 August 2010 at 20:53 |

    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

    • KeeForm
      KeeForm
      09 August 2010 at 23:04 |

      It also works with "Portableapps Thunderbird". That is what I actually use. See also previous comment.

      • Sere
        Sere
        10 August 2010 at 07:48 |

        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.

        • KeeForm
          KeeForm
          10 August 2010 at 10:18 |

          Glad to hear this.

  • Shawn
    Shawn
    20 August 2010 at 14:16 |

    Working great :)

  • CL
    CL
    21 August 2010 at 19:44 |

    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??

    • KeeForm
      KeeForm
      21 August 2010 at 19:49 |

      You probably have an error in your configuration :-)

    • CL
      CL
      22 August 2010 at 06:42 |

      It's working again, on both new and old computer, this morning when I wake up.... still don't know what happened yesterday... weird...

      • KeeForm
        KeeForm
        22 August 2010 at 07:00 |

        There could have been a Yahoo server outage/maintenance ...

  • Tata Calu
    Tata Calu
    01 September 2010 at 11:42 |

    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!

    • KeeForm
      KeeForm
      01 September 2010 at 20:28 |

      Try with @yahoo.com :-)

      • Tata Calu
        Tata Calu
        02 September 2010 at 09:42 |

        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]

        • KeeForm
          KeeForm
          02 September 2010 at 18:08 |

          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 :-)

          • Wave
            Wave
            02 September 2010 at 20:07 |

            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)

  • Wasiq Cheema
    Wasiq Cheema
    03 September 2010 at 08:16 |

    Thanks. You're awesome!

  • KeeForm
    KeeForm
    02 September 2010 at 20:12 |

    @yahoo.com should also work. Other yahoo users must use @ymail.com or @rocketmail.com etc

English Arabic Chinese French German Greek Japanese Portuguese Russian Spanish Swahili Thai

Must Have Freeware

Latest News