I'd really like to know what is the minimum amount of work (starting
from scratch) to get the datasource populated for folders. What I would
like to avoid:
creating a tree
using a msgWindow
I'd really like to be able to access mail resources without having the
actual messenger application open. I really want access to the users
mail folders and messages from outside of messenger. I see the API and
so far I've gone so far as to find the attributes of the INBOX for all
the accounts a user may have but I can't seem to get beyond that. What
I seem to be missing is the link where the datasource is actually
filled. Here's some quick code that I've been playing with that, so far
gets me the inbox folder attributes. If I call any functionality on the
folder I don't get anything back, for example calling
getNumUnread(true), always returns -1.
start example:
function tryRDF()
{
try
{
RDF =
Components.clases["@mozilla.org/rdf/rdf-service;1"].getService();
RDF = RDF.QueryInterface(Components.interfaces.nsIRDFService);
}
catch(ex)
{
alert("no RDF?");
return;
}
var AccountManager =
Components.classes["@mozilla.org/messenger/account-manager;1"];
var AccountManagerService = AccoutnManagerComponent.getService();
var AccountManager =
AccountManagerService.QueryInterface(Components.interfaces.nsIMsgAccountManager);
var Accounts = AccountManager.accounts;
for (var i = 0; i < Accounts.Count(); i++)
{
var Account = Accounts.GetlElementAt(i);
Account =
Account.QueryInterface(Components.interfaces.nsIMsgAccount);
IncomingServer = Account.incomingServer;
if (IncomingServer.hostName != "Local Folders")
{
var Folder;
var Mailbox = "mailbox://" + IncomingServer.username + "@"
+ IncomingServer.hostName + "/INBOX";
if (IncomingServer.type == "imap" || IncomingServer.type ==
"pop3")
{
Folder = RDF.GetResource(MailBox);
Folder =
Folder.QueryInterface(Components.interfaces.nsIMsgFolder);
alert("pretty name - " + Folder.prettiestName);
alert("Unread msgs = " + Folder.getNumUnread(true));
}
else
{
dump("not a mail account");
}
}
}
}
what I get:
first alert returns:
pretty name - INBOX
second alert returns:
Unread msgs = -1
There are currently 22 unread messages in one of the INBOX folders for
the accounts I have setup. What am I missing?
Dan
(to get to me directly, remove the -nospam's from my reply address)