1999-04-10 21:04:50 +00:00
|
|
|
/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
1999-04-06 22:35:13 +00:00
|
|
|
*
|
1999-11-06 03:43:54 +00:00
|
|
|
* The contents of this file are subject to the Netscape Public
|
|
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
|
|
* except in compliance with the License. You may obtain a copy of
|
|
|
|
* the License at http://www.mozilla.org/NPL/
|
1999-04-06 22:35:13 +00:00
|
|
|
*
|
1999-11-06 03:43:54 +00:00
|
|
|
* Software distributed under the License is distributed on an "AS
|
|
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
|
|
* implied. See the License for the specific language governing
|
|
|
|
* rights and limitations under the License.
|
1999-04-06 22:35:13 +00:00
|
|
|
*
|
1999-11-06 03:43:54 +00:00
|
|
|
* The Original Code is mozilla.org code.
|
|
|
|
*
|
|
|
|
* The Initial Developer of the Original Code is Netscape
|
1999-04-06 22:35:13 +00:00
|
|
|
* Communications Corporation. Portions created by Netscape are
|
1999-11-06 03:43:54 +00:00
|
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All
|
|
|
|
* Rights Reserved.
|
|
|
|
*
|
|
|
|
* Contributor(s):
|
1999-04-06 22:35:13 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#include "nsISupports.idl"
|
1999-09-09 04:11:38 +00:00
|
|
|
#include "nsIFileSpec.idl"
|
1999-04-06 22:35:13 +00:00
|
|
|
|
1999-05-26 23:51:53 +00:00
|
|
|
interface nsIFolder;
|
1999-07-17 03:26:24 +00:00
|
|
|
interface nsIMsgFolderCache;
|
2000-01-29 15:53:14 +00:00
|
|
|
interface nsIMsgWindow;
|
2000-03-28 04:58:05 +00:00
|
|
|
interface nsIMsgFilterList;
|
|
|
|
|
1999-07-01 06:00:55 +00:00
|
|
|
/*
|
|
|
|
* Interface for incoming mail/news host
|
|
|
|
* this is the base interface for all mail server types (imap, pop, nntp, etc)
|
|
|
|
* often you will want to add extra interfaces that give you server-specific
|
|
|
|
* attributes and methods.
|
|
|
|
*/
|
1999-04-06 22:35:13 +00:00
|
|
|
|
1999-05-27 05:19:55 +00:00
|
|
|
[scriptable, uuid(60dcb100-e3f2-11d2-b7fc-00805f05ffa5)]
|
1999-04-06 22:35:13 +00:00
|
|
|
interface nsIMsgIncomingServer : nsISupports {
|
|
|
|
|
1999-10-28 20:22:06 +00:00
|
|
|
/**
|
|
|
|
* internal pref key - guaranteed to be unique across all servers
|
|
|
|
*/
|
1999-04-10 21:04:50 +00:00
|
|
|
attribute string key;
|
1999-07-01 06:00:55 +00:00
|
|
|
|
1999-10-28 20:22:06 +00:00
|
|
|
/**
|
|
|
|
* pretty name - should be "userid on hostname"
|
|
|
|
* if the pref is not set
|
|
|
|
*/
|
1999-08-10 04:39:22 +00:00
|
|
|
attribute wstring prettyName;
|
2000-08-19 20:52:31 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* helper function to construct the pretty name in a server type
|
|
|
|
* specific way - e.g., mail for foo@test.com, news on news.mozilla.org
|
|
|
|
*/
|
|
|
|
readonly attribute wstring constructedPrettyName;
|
1999-07-01 06:00:55 +00:00
|
|
|
|
1999-10-28 20:22:06 +00:00
|
|
|
/**
|
|
|
|
* hostname of the server
|
|
|
|
*/
|
1999-04-06 22:35:13 +00:00
|
|
|
attribute string hostName;
|
1999-10-26 23:34:30 +00:00
|
|
|
|
|
|
|
/* port of the server */
|
|
|
|
attribute long port;
|
1999-07-01 06:00:55 +00:00
|
|
|
|
1999-10-28 20:22:06 +00:00
|
|
|
/**
|
|
|
|
* userid to log into the server
|
|
|
|
*/
|
1999-05-27 05:36:10 +00:00
|
|
|
attribute string username;
|
1999-07-01 06:00:55 +00:00
|
|
|
|
1999-10-28 20:22:06 +00:00
|
|
|
/**
|
|
|
|
* protocol type, i.e. "pop3", "imap", "nntp", "none", etc
|
|
|
|
* used to construct URLs
|
|
|
|
*/
|
1999-07-13 19:23:40 +00:00
|
|
|
attribute string type;
|
1999-07-01 06:00:55 +00:00
|
|
|
|
1999-10-28 20:22:06 +00:00
|
|
|
/**
|
|
|
|
* the schema for the local mail store, such
|
|
|
|
* as "mailbox", "imap", or "news"
|
|
|
|
* used to construct URIs
|
|
|
|
*/
|
|
|
|
readonly attribute string localStoreType;
|
|
|
|
|
1999-07-01 06:00:55 +00:00
|
|
|
/* should we remember the password? */
|
1999-04-16 00:36:52 +00:00
|
|
|
attribute boolean rememberPassword;
|
1999-07-01 06:00:55 +00:00
|
|
|
|
1999-10-28 20:22:06 +00:00
|
|
|
/* cleartext version of the password */
|
1999-09-22 02:21:18 +00:00
|
|
|
attribute string password;
|
1999-10-28 20:22:06 +00:00
|
|
|
|
|
|
|
/* prompt the user for a password */
|
2000-04-26 22:31:59 +00:00
|
|
|
string getPasswordWithUI(in wstring aPromptString, in wstring aPromptTitle, in nsIMsgWindow aMsgWindow, out boolean okayValue);
|
1999-04-16 00:36:52 +00:00
|
|
|
|
2000-02-03 05:01:42 +00:00
|
|
|
/* forget the password in memory and in single signon database */
|
|
|
|
void forgetPassword();
|
|
|
|
|
1999-07-01 06:00:55 +00:00
|
|
|
/* should we download whole messages when biff goes off? */
|
2000-01-11 20:03:51 +00:00
|
|
|
/* in 4.x, this was "mail.pop3_gets_new_mail" for pop */
|
|
|
|
/* "mail.imap.new_mail_get_headers" for imap, and it was global. in 5.x, it is per server */
|
1999-04-16 00:36:52 +00:00
|
|
|
attribute boolean downloadOnBiff;
|
1999-07-01 06:00:55 +00:00
|
|
|
|
|
|
|
/* should we biff the server? */
|
1999-04-06 22:35:13 +00:00
|
|
|
attribute boolean doBiff;
|
1999-07-01 06:00:55 +00:00
|
|
|
|
|
|
|
/* how often to biff */
|
1999-04-06 22:35:13 +00:00
|
|
|
attribute long biffMinutes;
|
1999-04-16 00:36:52 +00:00
|
|
|
|
1999-07-01 06:00:55 +00:00
|
|
|
/* the on-disk path to message storage for this server */
|
1999-09-09 04:11:38 +00:00
|
|
|
attribute nsIFileSpec localPath;
|
1999-10-28 20:22:06 +00:00
|
|
|
|
|
|
|
|
1999-07-01 06:00:55 +00:00
|
|
|
/* the RDF URI for the root mail folder */
|
2000-05-16 21:17:55 +00:00
|
|
|
readonly attribute string serverURI;
|
1999-05-26 23:51:53 +00:00
|
|
|
|
1999-07-01 06:00:55 +00:00
|
|
|
/* the root folder for this server */
|
1999-05-26 23:51:53 +00:00
|
|
|
attribute nsIFolder RootFolder;
|
1999-06-11 22:07:08 +00:00
|
|
|
|
1999-08-31 06:52:27 +00:00
|
|
|
/* are we already getting new Messages on the current server..
|
|
|
|
This is used to help us prevent multiple get new msg commands from
|
|
|
|
going off at the same time. */
|
|
|
|
attribute boolean serverBusy;
|
|
|
|
|
2000-03-28 04:58:05 +00:00
|
|
|
/* should we use a secure channel? */
|
|
|
|
attribute boolean isSecure;
|
|
|
|
|
2000-02-15 06:57:45 +00:00
|
|
|
/* what kind of logon redirector to use for this server, if any */
|
|
|
|
attribute string redirectorType;
|
2000-03-28 04:58:05 +00:00
|
|
|
|
2000-05-15 14:55:22 +00:00
|
|
|
/* empty trash on exit */
|
|
|
|
attribute boolean emptyTrashOnExit;
|
|
|
|
|
2000-03-28 04:58:05 +00:00
|
|
|
readonly attribute nsIMsgFilterList filterList;
|
|
|
|
|
1999-09-14 09:03:40 +00:00
|
|
|
/* we use this to set the default local path. we use this when migrating prefs */
|
|
|
|
void SetDefaultLocalPath(in nsIFileSpec aDefaultLocalPath);
|
|
|
|
|
1999-07-01 06:00:55 +00:00
|
|
|
/* do a biff */
|
1999-06-11 22:07:08 +00:00
|
|
|
void PerformBiff();
|
2000-04-13 02:59:01 +00:00
|
|
|
|
2000-04-14 06:54:19 +00:00
|
|
|
/* this checks if a server needs a password to do biff */
|
|
|
|
readonly attribute boolean serverRequiresPasswordForBiff;
|
2000-04-13 02:59:01 +00:00
|
|
|
|
2000-04-03 02:06:57 +00:00
|
|
|
/* this gets called when the server is expanded in the folder pane */
|
2000-04-21 22:55:18 +00:00
|
|
|
void PerformExpand(in nsIMsgWindow aMsgWindow);
|
2000-04-03 02:06:57 +00:00
|
|
|
|
1999-10-28 20:22:06 +00:00
|
|
|
/* Write out all known folder data to panacea.dat */
|
1999-07-17 03:26:24 +00:00
|
|
|
void WriteToFolderCache(in nsIMsgFolderCache folderCache);
|
|
|
|
|
1999-10-28 20:22:06 +00:00
|
|
|
/* close any server connections */
|
1999-09-30 01:44:30 +00:00
|
|
|
void CloseCachedConnections();
|
|
|
|
|
1999-09-09 04:11:38 +00:00
|
|
|
/* access to generic attributes */
|
|
|
|
boolean getBoolValue(in string attr);
|
|
|
|
void setBoolValue(in string attr, in boolean value);
|
1999-07-17 03:26:24 +00:00
|
|
|
|
1999-09-09 04:11:38 +00:00
|
|
|
string getCharValue(in string attr);
|
|
|
|
void setCharValue(in string attr, in string value);
|
|
|
|
|
1999-12-03 00:10:00 +00:00
|
|
|
wstring getUnicharValue(in string attr);
|
|
|
|
void setUnicharValue(in string attr, in wstring value);
|
|
|
|
|
1999-09-09 04:11:38 +00:00
|
|
|
long getIntValue(in string attr);
|
|
|
|
void setIntValue(in string attr, in long value);
|
|
|
|
|
|
|
|
nsIFileSpec getFileValue(in string attr);
|
|
|
|
void setFileValue(in string attr, in nsIFileSpec value);
|
2000-01-15 03:06:39 +00:00
|
|
|
|
2000-02-11 00:55:54 +00:00
|
|
|
/**
|
|
|
|
* this is really dangerous. this destroys all pref values
|
|
|
|
* do not call this unless you know what you're doing!
|
|
|
|
*/
|
|
|
|
void clearAllValues();
|
2000-03-15 07:12:59 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* this is also very dangerous. this will remove the files
|
|
|
|
* associated with this server on disk.
|
|
|
|
*/
|
|
|
|
void removeFiles();
|
2000-02-11 00:55:54 +00:00
|
|
|
|
2000-01-15 03:06:39 +00:00
|
|
|
attribute boolean valid;
|
1999-09-09 04:11:38 +00:00
|
|
|
|
|
|
|
wstring toString();
|
2000-01-19 01:16:35 +00:00
|
|
|
|
2000-01-26 04:11:14 +00:00
|
|
|
/* used for comparing nsIMsgIncomingServers */
|
|
|
|
boolean equals(in nsIMsgIncomingServer server);
|
2000-12-21 23:34:22 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* can this server be removed from the account manager? for
|
|
|
|
* instance, local mail is not removable, but an imported folder is
|
|
|
|
*/
|
|
|
|
attribute boolean canDelete;
|
|
|
|
|
2000-12-22 23:32:32 +00:00
|
|
|
attribute boolean loginAtStartUp;
|
1999-04-06 22:35:13 +00:00
|
|
|
};
|
1999-09-09 04:11:38 +00:00
|
|
|
|
|
|
|
%{C++
|
|
|
|
/* some useful macros to implement nsIMsgIncomingServer accessors */
|
|
|
|
#define NS_IMPL_SERVERPREF_STR(_class, _postfix, _prefname) \
|
|
|
|
NS_IMETHODIMP \
|
|
|
|
_class::Get##_postfix(char **retval) \
|
|
|
|
{ \
|
|
|
|
return GetCharValue(_prefname, retval); \
|
|
|
|
} \
|
|
|
|
NS_IMETHODIMP \
|
1999-09-19 23:46:35 +00:00
|
|
|
_class::Set##_postfix(const char *chvalue) \
|
1999-09-09 04:11:38 +00:00
|
|
|
{ \
|
|
|
|
return SetCharValue(_prefname, chvalue); \
|
|
|
|
}
|
|
|
|
|
|
|
|
#define NS_IMPL_SERVERPREF_BOOL(_class, _postfix, _prefname)\
|
|
|
|
NS_IMETHODIMP \
|
|
|
|
_class::Get##_postfix(PRBool *retval) \
|
|
|
|
{ \
|
|
|
|
return GetBoolValue(_prefname, retval); \
|
|
|
|
} \
|
|
|
|
NS_IMETHODIMP \
|
|
|
|
_class::Set##_postfix(PRBool bvalue) \
|
|
|
|
{ \
|
|
|
|
return SetBoolValue(_prefname, bvalue); \
|
|
|
|
}
|
|
|
|
|
|
|
|
#define NS_IMPL_SERVERPREF_INT(_class, _postfix, _prefname)\
|
|
|
|
NS_IMETHODIMP \
|
|
|
|
_class::Get##_postfix(PRInt32 *retval) \
|
|
|
|
{ \
|
|
|
|
return GetIntValue(_prefname, retval); \
|
|
|
|
} \
|
|
|
|
NS_IMETHODIMP \
|
|
|
|
_class::Set##_postfix(PRInt32 ivalue) \
|
|
|
|
{ \
|
|
|
|
return SetIntValue(_prefname, ivalue); \
|
|
|
|
}
|
|
|
|
|
|
|
|
#define NS_IMPL_SERVERPREF_FILE(_class, _postfix, _prefname)\
|
|
|
|
NS_IMETHODIMP \
|
|
|
|
_class::Get##_postfix(nsIFileSpec **retval) \
|
|
|
|
{ \
|
|
|
|
return GetFileValue(_prefname, retval); \
|
|
|
|
} \
|
|
|
|
NS_IMETHODIMP \
|
|
|
|
_class::Set##_postfix(nsIFileSpec* ivalue) \
|
|
|
|
{ \
|
|
|
|
return SetFileValue(_prefname, ivalue); \
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
%}
|