在thunderbird中创建具有主机名和用户名的帐户列表

时间:2011-10-18 10:40:11

标签: javascript firefox-addon xul thunderbird

我正在开发一个附加组件,需要使用主机名和用户名创建帐户列表。我可以使用nsIMsgAccountManager来做到这一点但是当我使用手动设置创建新帐户时,主机名出现给我默认的imap服务器名称即imap.googlemail.com,即使我已将其更改为{{1 }}。理想情况下,我应该将主机名称设为192.168.0.25,但它会给我192.168.0.25。这是我使用的代码:

imap.googlemail.com

请任何人告诉我哪里错了。

1 个答案:

答案 0 :(得分:0)

请勿直接使用mail.accountmanager.accounts偏好设置,而是使用nsIMsgAccountService.accountsnsISupportsArray实例)。实际上有一个code example on how one would iterate over all accounts。您应该查看的属性是nsIMsgAccount.incomingServer,它是nsIMsgIncomingServer个实例,并包含所有必要信息。您可能需要属性realHostNamerealUsername

var accountManager = Components.classes["@mozilla.org/messenger/account-manager;1"]
                               .getService(Components.interfaces.nsIMsgAccountManager);
var accounts = accountManager.accounts;
for (var i = 0; i < accounts.Count(); i++) {
  var account = accounts.QueryElementAt(i, Components.interfaces.nsIMsgAccount);
  var server = account.incomingServer;
  if (server.type == "pop3" || server.type == "imap")
    alert(server.realHostName + " " + server.realUsername)
}