Email Notification

Overview

Many protocols has integrated email notification feature. Usually, email notification is done through polling by a email client. The IM's email notification is an interesting feature since it allow getting notified of incoming mails without the full round trip to the server. The IM server simply send a signal telling you information about unread mail that just arrived.

Protocols

The biggest problem is that every protocols that support this feature has there own specific level of information. The Telpathy Email Notification spec aims at integrating as many as possible features while giving good hint to the user on what is and is not support by the Connection.

As a first step, the API will divide two things that usually comes independently in protocols: the Unread Status and the New Emails Notification. The Unread Status is defined as a mechanic that allow tracking information about messages (or threads) in folders of your email account. Currently no protocol support other folder then Inbox, but we will keep it in mind in the design to make sure the expansion would not be too hard. The Unread Status information should be updated based on newly arrived emails or modification of the unread status in the server database. While this is the full solution (currently only implemented by GTalk), some protocol have partial implementation of it. Refer to table titled Unread Status Support for a list supported feature by known protocols. Note that some protocol may just give initial information and not update it after all. Protocol Developers should not try to emulate any unsupported features, it's UI Developer's job to figure out how to display this information in a consistent way.

The New Emails Notification is generally done in a fire and forget way. For this reason, it would be a great overhead to force the Protocol implementer to store this information into properties. This would also lead to leaky design since there is no good solution to when the older notification should be discarded. Refer to the table New Emails Notification for list of what is supported per protocols. Note that protocols with sufficiently complete Unread Status support does not have to support this feature.

Unread Status

Protocols

Unread Count

Froms

Tos

Subjects

Quote

Inbox URL

Email URL

Cookie

Updated

MSN

Yes

No

No

No

No

Yes

No

No

Yes

Yahoo

Yes

No

No

No

No

Yes

No

Yes?

?

GTalk

Yes

Yes

No

Yes

Yes

Yes

Yes

No

Yes

Jabber

No

No

No

No

No

No

No

No

No

LibPurple

Yes

Yes 2

Yes 2

Yes 3

No

Yes

Yes 2

No

?

Note: Most protocols are documented from libpurple source base, information may be inaccurate or incomplete.

2 Very often this feature is emulated

3 Optional and often omitted

New Emails Notificiation

Protocols

Froms

Tos

Subjects

Quote

Folder URL

Email URL

MSN

Yes

No

Yes

No

Yes

Yes

Yahoo

Yes

No

Yes

Yes

Yes

No

GTalk

Yes

No

Yes

Yes

Yes

Yes

Jabber

No

No

No

No

No

No

LibPurple

Yes

Yes 2

Yes

No

Yes

Yes 3

MSN

MSN provide three message that let you keep track of the unread message count. It's not possible to maintain detailed list about all unread messages because the protocol does not send it. Also, when a message is marked read or deleted, you get a notification but it's not possible to match with a specific new mail notification. For this reason, MSN is a candidate to implement both the unread status (with only unread count information) and the fire and forget new e-mails notification.

Information to forward (Unread Status):

Information to forward (New Emails):

More details about MSN Notification at [http://www.hypothetic.org/docs/msn/notification/messages.php].

Yahoo

TODO

Google Talk

Google provides an extension to XMPP to allow e-mail notification. Google email notification differs from other protocols because it does not provide notification about e-mails, but threads. The biggest difference between an email and a thread is that a thread has multiple senders, and within that list of senders you can have multiple unread senders.

One could consider the first unread sender to be the only useful information, but let say you are getting hundreds of messages with many threads every day. You probably don't go read you e-mails every time there is unread message. At the same time, if somebody that more meaningful to you sends a reply (e.g. like your boss) you may consider reading your mails.

Google Talk does not have a fire and forget New Email notification. This is mainly unneeded since full information about unread threads is send. This protocol should not implement the New Emails signal.

Information to Forward:

More details about Gooble Talk Email Notifcation found at [http://code.google.com/intl/fr/apis/talk/jep_extensions/gmail.html]

Jabber/XMPP

Jabber/XMPP does not have standard email notification.