我正在开发一个附加组件,需要使用主机名和用户名创建帐户列表。我可以使用nsIMsgAccountManager
来做到这一点但是当我使用手动设置创建新帐户时,主机名出现给我默认的imap服务器名称即imap.googlemail.com
,即使我已将其更改为{{1 }}。理想情况下,我应该将主机名称设为192.168.0.25
,但它会给我192.168.0.25
。这是我使用的代码:
imap.googlemail.com
请任何人告诉我哪里错了。
答案 0 :(得分:0)
请勿直接使用mail.accountmanager.accounts
偏好设置,而是使用nsIMsgAccountService.accounts
(nsISupportsArray实例)。实际上有一个code example on how one would iterate over all accounts。您应该查看的属性是nsIMsgAccount.incomingServer
,它是nsIMsgIncomingServer个实例,并包含所有必要信息。您可能需要属性realHostName
和realUsername
:
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)
}