The Yahoo! Developer blog has an entry entitled Introducing the Yahoo! Mail Web Service which states
While we are certainly proud of the success of Yahoo! Mail, today we
are announcing how we are going beyond the boundaries of the Yahoo!
network and enabling developers to build new tools or applications
around Yahoo! Mail. We are thrilled to announce the open availability
of the Yahoo! Mail Web Service, web service for Yahoo! Mail (accessible via SOAP or JSON-RPC) that we previewed to Yahoo! Hack Day attendees.
With the Yahoo! Mail Web Service, you can connect to the core mail
platform to perform typical mailbox tasks for premium users such as
list messages and folders, and compose and send messages (you can also
build mail preview tools for free users with limited Web Service
functionality). In other words, developers outside of Yahoo! can now
build mail tools or applications on the same infrastructure we use to
build the highly-scaled Yahoo! Mail service that serves nearly 250
million Yahoo! Mail users today -- users who might want to help you
make some cash with your application.
...
The Yahoo! Mail Web Service is a big release for Yahoo! and the
Internet, and it's only the beginning of what you'll be seeing from
Yahoo!. Jump into our code samples for Java, .NET, PHP, Perl and Python,
and build your dream mail app today, then be sure to give us feedback
on your experience so we can continue to make the API even better. Be
sure to leverage the online Yahoo! Mail Web Service support group
where you can get help from the Yahoo! Mail Web Service team and your
fellow developers. We can't wait to see what applications you will
build when you add your imagination to the platform. Maybe you want to
build an application that backs up Yahoo! mail targeted at a large
number of Yahoo! users, or maybe you just want to add a niche feature
that makes Yahoo! Mail better for your mom. For inspiration, we've
gathered a few applications:
First things first, this is an unprecedented and very welcome move on the part of Yahoo! This is another example of why I think of the three major Web portals, Yahoo! has done the best job of turning their services into a developer platform. I like the fact that the Web service is exposed over multiple protocols and the code samples are in multiple programming languages that run the gamut from enterprise developer fare (Java/.NET) to Web geek fare (Perl/Python/PHP). Mad props to the developer platform folks at Yahoo!, good work.
With that out of the way, there is some stuff that has me scratching my head after taking a look at the Yahoo! Mail Web Service
User Guide and API Reference. The first thing that is weird is that although Yahoo! provides SOAP and RESTful JSON web services for accessing one's mail, I still can't get POP access to my Yahoo! mail without shelling out $20/year. After all, GMail has POP access for free and users of the free versions of Windows Live Hotmail can get POP-like access if they use Windows Live Mail desktop although they are restricted to using one mail client.
So I decided to see if the Yahoo! Mail Web Services provides a way around this restriction but found out from the section on "Determining the Users Account Capabilities" that
The Yahoo! Mail Web Service limits the functionality available to free accounts. Premium accounts have no such limits. First call the GetUserData method to get the user’s account type from the web service.
Calls to other APIs will return an error.
So it looks like I actually can't build an application that can be used to read the actual mail messages from my Yahoo! Mail account with the API unless I'm a premium user. Otherwise, all I can do is list the messages but not actually get their content. That makes the APIs a lot less cool than I initially thought.
Like Sam Ruby and Paul Downey I initially wondered about the choice of exposing a SOAP API but then realized that it may be that they already use SOAP internally so this wasn't that much work for them in that case. I also wondered about the lack of a RESTful non-SOAP XML interface as well but after looking at the complex object models I can see why they went with data formats that are pretty much serialized object models (i.e. Javascript OBJECT Notation & Simple OBJECT Access Protocol) instead of expecting developers to write a bunch of gnarly XML parsing code for processing over a dozen different response formats from the 23 methods in the Yahoo! Mail Web Service.
I suspect that Yahoo! won't get as much traction as they expect with the API until they remove some of the restrictions on non-premium accounts. Even then it does look like there is enough to build Windows and Windows Live gadgets for Yahoo! Mail that show your messages. Except that there is no way to read the mail contents and not even a way to link to the message in way that sends the user to Yahoo! Mail to read its contents. I bet if Yahoo! fixed the latter and perhaps had a rev-share with people who drove clicks back to the Web-based mail client, things would get very interesting. I wonder if Jeremy is listening?