CONFIDENTIAL
Everyone.net XRC Remote API
Document Version: 1.0.4
Copyright © Everyone.net
Contents
Introduction
Welcome to Everyone.net's eXtensible
Remote Control. XRC exposes the rich
functionality of the Everyone.net email system via a remote
API. Everyone.net partners that use XRC often have one or more of
the following needs.
-
Provisioning integration.
ASPs, ISPs and web hosts usually
offer several services to their users in addition to
email. When the mailbox and/or email service provisioning must
occur transparently to the user during sign-up at the partner's
site, XRC is required.
-
Access to specialized functionality.
Some features of the
Everyone.net email system are not available through the
web-based control center. XRC exposes this specialized
functionality.
-
Custom administration tools.
Partners that wish to provide users
with their own branded tools to administer their email service
may do so via XRC.
Basics
Typical usage of XRC involves the XRC client (hosted by the
partner) sending a request to the XRC server (hosted by
Everyone.net). The XRC server processes the request and sends back
a response.
XRC rides on top of one of several supported transports, referred
to as the XRC
transport. The current implementation supports two
XRC transports: HTTP POST and HTTP GET. HTTP POST is a robust transport
that can handle all of the XRC methods efficiently. HTTP GET is
generally simpler to use, but is restricted to passing arguments
with small serialized representations.
Every XRC request consists of three parts : metadata, method name,
and method arguments. Every XRC response consists of two parts:
metadata and return value. Each XRC transport has its own means of
transporting these parts to and from the XRC server. Details of
each transport are found in HTTP
POST and HTTP GET.
XRC supports a single authentication mechanism. This
mechanism requires an XRC
client to provide its client identifier
(clientID) and a
password with each request. The XRC server validates the password
and XRC client source IP before processing any request. The
partner must provide their account representative with the IP
addresses they plan to use in both their production and testing
environments. Failure to authenticate causes the
AUTHENTICATION_FAILURE exception to
be thrown by every XRC method.
Metadata
XRC metadata is used to pass auxiliary information such as
authentication information and exception codes. All XRC metadata
consists of key-value paired strings, where the key is from the
set of alphanumeric characters and the value is restricted to be a
single line (carriage returns and newlines forbidden). Characters
in both the key and the value are taken from the set of unicode
characters.
More formally, a key and a value in the metadata are defined as
follows:
key = 1*ALPHANUMERIC
value = *CHAR-NOT-CRLF
ALPHANUMERIC = "A" - "Z" / "a" - "z" / "0" - "9"
CHAR-NOT-CRLF = < any unicode character except \u000D and \u000A >
Again, the XRC transport specifies how these key-value pairs are
passed to and from the XRC server.
Request Metadata
Every request must have the following key-value pairs.
version |
The protocol version, must always be the string "1" (without the
quotes).
|
clientID |
The clientID of the calling XRC client as a sequence of
decimal digits.
|
password |
The password for the calling XRC client. If you have a
distributor control center account, this password is the same
as the distributor admin account password. (The same as the
password you use with your distadmin account in
DCC.)
|
Response Metadata
A response will have the following key-value pairs.
version |
The protocol version, will always be the string "1" (without the
quotes).
|
status |
An integer that identifies whether the operation was successful
(status of zero), and if not identifies the exception by its
numerical code. See XRC
Exceptions for a mapping of status codes to exceptions.
|
errorDescription |
Optional. A human-readable description of the exception
when status is non-zero. Note that not all
exceptions generate this key-value pair.
|
server |
Identifies which machine in the XRC pool handled the
request. Used for debugging.
|
timestamp |
The time the request was received by the server in
milliseconds since Jan. 1, 1970. Used for debugging.
|
Object Types
All objects in XRC have a type. XRC supports a small set of basic
types and an extensible set of application-specific complex
types. The set of basic types is unlikely to change over time,
however new complex types will be introduced as XRC provides more
functionality.
Every XRC object can be serialized into a sequence of bytes, and
converted back into an equivalent object from those bytes. The
method of serializing and deserializing each object is
determined solely by its type. The description of each primitive
type describes how to serialize objects of that type. When
describing how an object is serialized, a reference may be made
to an "output stream". The output stream collects bytes as
objects are being serialized and either directly transmits them
to the peer, or provides a means of extracting its contents
later.
Complex types are similar to structs in the C programming
language. They have a number of named fields each with a type of
its own. The value of each field must be another XRC object or
the special value NULL.
All complex types are serialized in the same manner, therefore
serialization details are not provided below for each complex
type. The process of serializing an object of complex type is
as follows. First, the byte 0x3A (US-ASCII colon) is added to
the output stream. Next, the UTF-8 encoded type name is added to
the output stream. Next, a list is formed containing all the
pairs of field names and field values. Each field value
immediately follows its corresponding field name in the
list. The list is serialized to the output stream as described
in list with one exception: field names are
UTF-8 encoded without escaping or sandwiching. This exception is
possible because field names are restricted to alphanumeric
characters only.
There is no requirement placed on the order of the fields in the
list. Therefore, correctly implemented client libraries must not
assume any field order.
complex-type = ":" typename list
typename = 1*ALPHA *ALPHANUMERIC
ALPHA = "A" - "Z" / "a" - "z"
Any method argument or complex type field value may have the
special value NULL unless otherwise specified by
the method or type requirements. A null value is equivalent to
(void *)0 in C, or null in Java, or
undef in Perl. A null effectively references "no
object". When a null value is serialized it appears as the 5
byte UTF-8 representation of the string "/NULL".
During deserialization of a complex type, if a field is missing
the value of that field is set to NULL if
NULL is an acceptable value for that field.
Otherwise, a SERIALIZE exception
is thrown.
1. Basic Type : int
|
A 32-bit signed integer.Details
An int may take any value from -2^31 to 2^31 - 1
inclusive, just as any 32-bit 2's complement integer.
Serialization
The serialized form of an int is generated as
follows. First, the decimal representation of the integer is
computed as a string of decimal characters. If the integer
value is negative, the first character is the minus sign
("-"), all other characters are from the set { "0" - "9"
}. Second, UTF-8 encode the resulting string into
bytes. (Since all possible characters in the string are
US-ASCII, this is equivalent to encoding the string into bytes
with the US-ASCII charset.)
int = [ "-" ] 1*DIGIT
DIGIT = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9"
Examples
The integer 33.
The integer -1.
|
2. Basic Type : string
|
A unicode string.Details
A string is a sequence of unicode characters.
Serialization
An object of type string is serialized as
follows. First, generate an escaped string by inserting a
backslash before every occurrence of a double quote or
backslash in the source string. Second sandwich the escaped
string between a pair of double quote characters. The
serialized form is the resulting UTF-8 encoding of that
sandwiched string.
string = DBLQUOTE *( non-special-char quoted-char ) DBLQUOTE
non-special-char = < any char except double-quote and back-slash >
quoted-char = "\" "\" / "\" DBLQUOTE
DBLQUOTE = '"' ;; 0x22
Examples
The string foobar.
The empty string.
The string foo"bar.
The string \/\/\//\/\/\.
|
3. Basic Type : boolean
|
true or falseDetails
A boolean takes only the values true and false.
Serialization
The serialized form of a true boolean and a false
boolean are the UTF-8 encodings of the strings
"/T" and "/F" respectively.
boolean = TRUE / FALSE
TRUE = "/" "T"
FALSE = "/" "F"
Examples
True
False
|
4. Basic Type : bytes
|
A sequence of bytes.Details
An object of type bytes is a sequence of bytes of
arbitrary length. The XRC server is implemented to handle
large objects of type bytes, but only via the
HTTP POST transport. Methods
that take an object or return an object of type
bytes should not be called using the HTTP GET
transport.
Serialization
An object of type bytes is serialized as
follows. First, add the byte 0x7B (US-ASCII open curly) to the
output stream. Next, add to the output stream the serialized
representation of the byte count as an
int. Next, add the byte 0x7D (US-ASCII
closed curly) to the output stream. Finally, add the bytes of
the byte object onto the output stream in order.
It is emphasized that there is no content encoding implied by
the serialization of the bytes. It is up to the transport to
determine how to safely transmit binary data.
bytes = "{" length "}" raw
length = int
raw = < a sequence of bytes with the specified length >
Examples
A four bytes bytes object consisting of the bytes
{ 0x34, 0x3A, 0x7A, 0x7E } would appear after serialization
and viewed with a US-ASCII/UTF-8 terminal as follows.
Zero bytes.
|
5. Basic Type : list
|
An ordered collection of zero or more objects.Details
A list is the building block of complex types. Any other object,
including another list, can be a member of a list.
Serialization
An object of type list is serialized as
follows. First, add the byte 0x28 (US-ASCII open parenthesis)
to the output stream. Next, for each object in the list, place
the serialized form of that object on the output stream
followed by one of 0x20 (US-ASCII space), 0x09 (US-ASCII tab),
or 0x0A (US-ASCII newline). After the last object has been
serialized and added to the output stream, add the byte 0x29
(US-ASCII closed parenthesis).
list = "(" *part ")"
part = obj SPACE
SPACE = " " / "\t" / "\n"
obj = < serialized form of any other object >
Examples
A two element list, the first the string "foobar", the second the integer 9.
Empty list
A list of lists, each with integers and a string.
( ( 1 2 "three" ) ( 4 5 "six" ) ( 7 8 "nine" ) )
|
|
6. Complex Type : AliasInfo
|
Information about an email alias.Fields
name | string |
The name of the alias.
|
recipients | string |
A single string of comma seperated recipient email addresses.
Each receipient must be a valid email address.
|
|
7. Complex Type : EmailClientSummary
|
Summary information about a client and its email service.Fields
clientID | int |
The clientID to which this summary applies.
|
primaryEmailDomain | string |
The email domain on which this client receives email.
|
webmailHostname | string |
The hostname portion of the URL that locates the client's webmail service.
|
isMXReady | boolean |
True if and only if the MX records of the primary email domain have been validated.
|
catchAllDestination | string |
An email address that catches all mail for unknown addresses
on the primary email domain, or NULL if catch all
is disabled.
|
offerIDs | list |
The list of offer identifiers that have been applied to the
client. Each member of this list is of type
int.
|
|
8. Complex Type : WebmailPresentation
|
Data that determines the appearance of the webmail interface.Details
All string fields that take a color only accept valid RGB
color strings for its value. A valid RGB color string is of
the form #RRGGBB. That is the first character is
a pound sign ("#") and the next 6 characters are the
hexadecimal representation of the single byte red, green, and
blue components respectively.
Fields
BackgroundBannerColor | string |
The color that appears behind the large logo.
|
BackgroundColor | string |
The color that appears behind the whole interface, unless a background image is used.
|
ClientSignature | string |
The signature appended to all outgoing emails.
|
ClientSiteName | string |
The name of the client's site when referenced in the
interface. For example if the value of this field is "Joe's
Garage" then a link in the interface returning to the main
website would read "Return to Joe's Garage".
|
DefaultFontColor | string |
The default color of the text.
|
DefaultFontSize | string |
The default size of the text.
|
DefaultFontStyle | string |
The default style of the text.
|
FooterHTML | string |
The HTML that appears at the bottom of every page.
|
LargeLogoType | int |
Identifies what to do with the large logo.
- 0 : do not show a logo,
- 1 : show the uploaded logo,
- 2 : use the logo hosted at LargeLogoURL
|
LinkActiveColor | string |
The color of active links.
|
LinkColor | string |
The color of links.
|
LinkVisitedColor | string |
The color of visited links.
|
LoginCustomHTML | string |
The HTML shown on the login page.
|
LoginPageTemplateID | int |
The template of the login page.
- 0 : Text fields on left, large logo in center.
- 1 : Text fields on left, large logo on left.
- 2 : Text fields on right, large logo in center.
- 3 : Text fields on right, large logo on right.
|
NavbarColor | string |
The color shown behind the navigation bar buttons.
|
PageTitleText | string |
The title (in the HEAD section) on all interface pages.
|
PrimaryBarColor | string |
The color shown behind the primary horizontal controls.
|
PrimaryBarTextColor | string |
The color of text shown in the primary horizontal controls.
|
SecondaryBarColor | string |
The color behind the secondary horizontal controls.
|
SecondaryBarTextColor | string |
The color of text shown in the secondary horizontal controls.
|
SmallLogoType | int |
Identifies what to do with the small logo.
- 0 : do not show any logo,
- 1 : show the uploaded logo,
- 2 : use the logo hosted at SmallLogoURL
|
WebmailPageTemplateID | int |
The template of all pages except login, logout, and hint.
- 0 : 2 frames; navigation bar in one, all else in other.
- 1 : 4 frames; navigation bar in one, large logo in another, advertising in a third, all else in fourth.
- 2 : No frames.
- 3 : 4 frames; same as 1 but large logo moved to left.
Note : Templates 0 and 2 are
recommended for ad-free services.
|
WelcomeMessageText | string |
Customizable text shown in welcome page.
|
SmallLogoURL | string |
URL of small logo. Used only when SmallLogoType has value 2
|
LargeLogoURL | string |
URL of large logo. Used only when LargeLogoType has value 2
|
ClientSiteURL | string |
URL of client's site. Used when generating links out of webmail.
|
ShowPasswordHintLink | boolean |
Show the password hint page link on the login page. If not
shown then directions on how users can obtain lost password
information should be included in the
LoginCustomHTML
|
PasswordHintURL | string |
Determines what the password hint link targets when
ShowPasswordHintLink is true. If this field has
value NULL the default password hint pages are
used. Otherwise the value of this field must be a valid URL
locating instructions on how a user can obtain a lost
password.
|
|
9. Complex Type : Letter
|
Generic model of a letter.Fields
IsActive | boolean |
If true this letter is used, otherwise it is disabled.
|
IsHTML | boolean |
True if the body shall be interpreted as HTML,
false if interpreted as plain text.
|
Sender | string |
Sender address, must be a valid email address.
|
Subject | string |
The subject of the email.
|
Body | string |
The body of the email.
|
|
Methods
Below are the XRC methods. Each method shows an example of its
usage. Notice that whenever an object of type
bytes is shown in serialized form, the true
serialized form is replaced with {123}[123 bytes
...]. Further notice that in HTTP GET examples, the query
string may be truncated if it is too long. In all other cases
the serialized form of method arguments and return objects is
accurate.
In both HTTP GET and HTTP POST examples, the HTTP headers are
shown in both requests and responses. It should be noted that
the HTTP headers themselves are not part of the XRC transport
request or response documents, but are shown anyways. Other HTTP
headers are likely to be present in both requests and responses
but are not shown here for brevity.
Method Quick Lookup
createEmailAlias ( clientID : int, name : string, recipients : list ) : void |
createEmailClient ( offerIDs : list, emailDomain : string, webmailHostname : string ) : int |
createUser ( clientID : int, offerIDs : list, username : string, password : string ) : int |
deleteClient ( clientID : int ) : void |
deleteEmailAlias ( clientID : int, name : string ) : void |
deleteUser ( clientID : int, username : string ) : void |
getClientOffers ( clientID : int ) : list |
getClientPassword ( clientID : int ) : string |
getEmailAliasRecipients ( clientID : int, name : string ) : List |
getEmailServiceCatchAll ( clientID : int ) : string |
getQuotaWarningLetter ( clientID : int ) : Letter |
getUnreadCountForUserMailbox ( clientID : int, username : string ) : int |
getUserOffers ( clientID : int, username : string ) : list |
getUserPassword ( clientID : int, username : string ) : string |
getWebmailPresentation ( clientID : int ) : WebmailPresentation |
getWelcomeLetter ( clientID : int ) : Letter |
isAccountNameAvailable ( clientID : int, name : string ) : boolean |
listClientIDsOfDistributor ( ) : list |
listEmailAliasInfoOfClient ( clientID : int ) : List |
listUserNamesOfClient ( clientID : int ) : List |
loginWebmail ( clientID : int, username : string ) : string |
logoutWebmail ( cv : string ) : void |
lookupMXReadyClientIDByEmailDomain ( emailDomain : string ) : int |
noop ( ) : void |
purgeSuspendedUserAccount ( clientID : int, username : string ) : void |
setClientOffers ( clientID : int, offerIDs : List ) : void |
setClientPassword ( clientID : int, password : string ) : void |
setEmailAliasRecipients ( clientID : int, name : string, recipients : list ) : void |
setEmailServiceCatchAll ( clientID : int, catchall : string ) : void |
setQuotaWarningLetter ( clientID : int, letter : Letter ) : void |
setUserOffers ( clientID : int, username : string, offerIDs : List ) : void |
setUserPassword ( clientID : int, username : string, password : string ) : void |
setWebmailLogos ( clientID : int, smallLogoImage : bytes, largeLogoImage : bytes ) : void |
setWebmailNavbarImages ( clientID : int, inboxImage : bytes, composeImage : bytes, addressesImage : bytes, foldersImage : bytes, searchImage : bytes, optionsImage : bytes, helpImage : bytes, logoutImage : bytes ) : void |
setWebmailPresentation ( clientID : int, presentation : WebmailPresentation ) : void |
setWelcomeLetter ( clientID : int, letter : Letter ) : void |
summarizeEmailClient ( clientID : int ) : EmailClientSummary |
summarizeEmailClientsOfDistributor ( ) : List |
suspendUser ( clientID : int, username : string ) : void |
unsuspendUser ( clientID : int, username : string ) : void |
1. Method : noop
|
Does nothing, used for testing.Arguments
This method has no arguments.
Return Value
This method has return type void.
Exceptions
This method only throws
system exceptions
.
ExamplesTest XRC server connectivity.HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=noop&args=() HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
noop ( )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
2. Method : loginWebmail
|
Generate credentials for webmail integrated login.
Arguments
1 | clientID | int |
Identifies client owning user to login.
|
2 | username | string |
Username of user to login.
|
Return Value
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to use IL for the client.
(Caller must be the distributor of the client or the client itself.)
|
USER_DOES_NOT_EXIST |
If user specified by clientID, username pair does not
exist.
|
In addition this method may throw
system exceptions
.
Details
loginWebmail is the principal XRC
method for supporting integrated
login capabilities to partner sites. Integrated
login allows a user to login once on the partner's website and
not need to login again when accessing their mailbox via
the webmail service.
Integrated login entails the following sequence of events:
- User authenticates self at partner's site.
- Partner's server invokes loginWebmail XRC
method identifying the user by clientID and username.
- XRC returns the CV value.
- Partner's server directs the user's browser to the
login integration URL described below.
- Webmail service accepts CV value as credentials for the
user and establishes an authenticated session for future
visits by the browser.
- Webmail service redirects browser to partner specified
redirection URL.
The return value of this method is a so-called CV value. This
value securely embeds within itself the identity of the user. The
login integration URL in step 4 is formed as follows:
http://<webmail hostname>/email/scripts/setupSession.pl?cv=<CV>&url=<redirect URL>
-
<webmail hostname> is replaced with
the webmail
hostname of the user's email service
-
<CV> is replaced with the URL encoded
return value of this method,
-
<redirect URL> is replaced with the
URL encoded value of the URL to redirect the browser after the
session is established.
Note: The session established is only valid for the normal session lifetime: two hours.
ExamplesGiven a user with name monty and owned by a
client with clientID
812, complete step 4 of the integrated login
process.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=loginWebmail&args=(812+%22monty%22+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
loginWebmail ( 812 "monty" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
"ABCDEF"
|
|
3. Method : logoutWebmail
|
Cancel credentials created by loginWebmail.Arguments
Return Value
This method has return type void.
Exceptions
This method only throws
system exceptions
.
Details
logoutWebmail allows canceling
credentials previously established by
loginWebmail. Once this method is
invoked with a given CV value, the user associated with that CV
value will have to login again to access the webmail
service. (The user associated with the CV value was the one
specified in the call to loginWebmail when the CV value was
generated.)
The behavior is undefined if the CV value passed to this method
was not previously generated by
loginWebmail.
ExamplesGiven a CV value of ABCDEF that had been
previously generated by loginWebmail
to establish credentials for a specific user, cancel those
credentials so the specific user must login again when
returning to the webmail service.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=logoutWebmail&args=(%22ABCDEF%22+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
logoutWebmail ( "ABCDEF" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
4. Method : isAccountNameAvailable
|
A convenience method to determine if a given name can be used for a username or alias name.Arguments
1 | clientID | int |
Identifies client who would own the new user or alias.
|
2 | name | string |
The name to check for availability.
|
Return Value
boolean |
True if and only if name is available on the specified client.
|
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to view the client.
(Caller must be the distributor of the client or the client itself.)
|
In addition this method may throw
system exceptions
.
Details
isAccountNameAvailable is a
convenience method that returns true if and only if
name is valid by the rules in Name Restrictions and has not
been taken by another user or alias of the same client.
It should be noted that a successful call to this method does
not absolutely guarantee a subsequent call to
createUser or
createEmailAlias will succeed. A new
user or alias may be provisioned in the interim. Nonetheless
this method is a convenient means of checking prior to
provisioning whether the name is likely to be successful
allocated.
ExamplesTest if the name homer is available for a new
alias or user name on the client with clientID 838328.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=isAccountNameAvailable&args=(838328+%22homer%22+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
isAccountNameAvailable ( 838328 "homer" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/T
|
|
5. Method : lookupMXReadyClientIDByEmailDomain
|
Quickly retrieve the clientID of a client that receives
email on the given domain.
Arguments
Return Value
int |
The clientID of
the client that receives email on the given domain, or
-1 if no such client is found. |
Exceptions
This method only throws
system exceptions
.
Details
lookupMXReadyClientIDByEmailDomain
provides a fast way to find the clientID given an email
domain. Since the XRC server requires the clientID for nearly
every method invocation, an XRC client must either store the
clientID in their own database, or key clients off email domain
and use this method to retrieve the clientID.
This method has been designed to execute quickly so partners
that chose not to store the clientID in their own database can
perform this lookup prior to every other XRC method that
requires a clientID.
In order to get a matching client, the following must be satisfied.
- The matching client must have an email service with
primary email domain matching emailDomain.
- Said email service must have validated
MX records.
- The caller must have view privilege for the matching
client.
If any of these criterion fails, -1 is returned,
otherwise the clientID of the matching client
is returned.
Examples
Lookup the clientID of the client with email domain
qbert.com.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=lookupMXReadyClientIDByEmailDomain&args=(%22qbert.com%2...
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
lookupMXReadyClientIDByEmailDomain ( "qbert.com" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
838383
|
|
6. Method : listClientIDsOfDistributor
|
Returns a list of clientID,
one for each client of the distributor.
Arguments
This method has no arguments.
Return Value
list |
A list of integers. Each integer is a clientID corresponding to
a client of the calling distributor.
|
Exceptions
In addition this method may throw
system exceptions
.
Details
listClientIDsOfDistributor returns a
list of integer clientID,
one for each client of the calling distributor.
The returned clientIDs are in no particular order.
ExamplesList all clients of the calling distributor.HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=listClientIDsOfDistributor&args=() HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
listClientIDsOfDistributor ( )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
( 3881 9 3838282 )
|
|
7. Method : createEmailClient
|
Creates a new client and email service.Arguments
1 | offerIDs | list |
A list of offer identifiers of type
int. Each offer in this list is applied to
the new client after creation.
Each offer must be available from the caller and must be
applicable to clients (i.e. not a user offer).
|
2 | emailDomain | string |
The email domain on which the new client's email service will
receive mail. The value must be a legal email domain (see
Name Restrictions) and
must not be in use already.
|
3 | webmailHostname | string |
The hostname portion of the URL for the new client's webmail
service. The value must be a legal webmail hostname (see Name Restrictions) and must
not be in use already.
|
Return Value
Exceptions
In addition this method may throw
system exceptions
.
Details
createEmailClient creates a new client,
distributed by the caller. This new client is immediately
provisioned an email service with the given
emailDomain and webmailHostname.
The caller becomes the distributor of the newly created
client and hence is granted administrative privileges by XRC
and the web-based tools (control
center and distributor
control center). Those privileges include
creating and deleting users, creating and deleting email
aliases, changing webmail look and feel, and deleting the new
client.
All new clients must currently have one offer. (The purpose of the list as
an argument type is to allow, in the future, multiple client
offers in an ala-cart style. )
The new client's password is randomly generated. To set it use
setClientPassword.
Examples
Create a new client and email service. The client will be
assigned the single offer identified by offerID
19. The email service will accept email for the
domain ifonlyihadadomain.com. The webmail
interface will be hosted at the URL
http://webmail.ifonlyihadadomain.com.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=createEmailClient&args=((+19+)+%22ifonlyihadadomain.com...
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
createEmailClient ( ( 19 ) "ifonlyihadadomain.com" "webmail.ifonlyihadadomain.com" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
371
|
|
8. Method : deleteClient
|
Deletes the specified client and all its services and users.Arguments
Return Value
This method has return type void.
Exceptions
In addition this method may throw
system exceptions
.
Details
deleteClient deletes the specified
client, all the client's users, and any services the client may
have had (specifically email service). There is no mechanism to
undo this operation so it should be invoked with greatest
caution.
Examples
Delete the client with clientID 9939.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=deleteClient&args=(9939+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
deleteClient ( 9939 )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
9. Method : getClientOffers
|
Retrieve the list of offers assigned to a specific client.Arguments
1 | clientID | int |
The clientID of the client whose offers are returned.
|
Return Value
list |
A list of offer identifiers of type int.
|
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to view the client.
(Caller must be the distributor of the client or the client itself.)
|
CLIENT_DOES_NOT_EXIST |
If the specified client does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Get the offers of the client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=getClientOffers&args=(1111+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
getClientOffers ( 1111 )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
( 3 )
|
|
10. Method : getClientPassword
|
Retrieve the password of a specific client.Arguments
1 | clientID | int |
The clientID of the client whose password is returned.
|
Return Value
string |
The password of the client.
|
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to view the client.
(Caller must be the distributor of the client or the client itself.)
|
CLIENT_DOES_NOT_EXIST |
If the specified client does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Get the password of the client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=getClientPassword&args=(1111+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
getClientPassword ( 1111 )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
"we-love-email"
|
|
11. Method : getEmailServiceCatchAll
|
Retrieve the catch all destination of a specific client's email service.Arguments
1 | clientID | int |
The clientID of
the client whose email service's catch all is returned.
|
Return Value
string |
The catch all destination of the client or NULL
if a catch all has not been set.
|
Exceptions
In addition this method may throw
system exceptions
.
Examples
Get the email service catch all of the client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=getEmailServiceCatchAll&args=(1111+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
getEmailServiceCatchAll ( 1111 )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
"somewhere-else@randomdomain.com"
|
|
12. Method : getQuotaWarningLetter
|
Retrieve the quota warning letter of a specific client's email service.Arguments
1 | clientID | int |
The clientID of
the client whose quota warning letter is returned.
|
Return Value
Letter |
The quota warning letter of the client or NULL if
using default letter.
|
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to view the client.
(Caller must be the distributor of the client or the client itself.)
|
CLIENT_DOES_NOT_EXIST |
If the specified client does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Get the quota warning letter for the client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=getQuotaWarningLetter&args=(1111+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
getQuotaWarningLetter ( 1111 )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
:Letter( IsActive /T
IsHTML /F
Sender "admin@someisp.com"
Subject "Your mailbox is nearly full."
Body "You can upgrade this mailbox by contacting support@myisp.com. Reference upgrade code \"3321\"."
)
|
|
13. Method : getWebmailPresentation
|
Retrieve the webmail presentation data for a specific client's email service.Arguments
1 | clientID | int |
The clientID of
the client whose webmail presentation data is returned.
|
Return Value
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to view the client.
(Caller must be the distributor of the client or the client itself.)
|
CLIENT_DOES_NOT_EXIST |
If the specified client does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Get the webmail presentation data for the client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=getWebmailPresentation&args=(1111+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
getWebmailPresentation ( 1111 )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
:WebmailPresentation( BackgroundBannerColor "#FF00CC"
BackgroundColor "#00FFCC"
ClientSignature "Support my cause ..."
ClientSiteName "Joe's Garage"
DefaultFontColor "#FFAACC"
DefaultFontSize
DefaultFontStyle "Arial,Helvetica,sans-serif"
FooterHTML
LargeLogoType 0
LinkActiveColor "#FF00DD"
LinkColor "#0000CC"
LinkVisitedColor "#000000"
LoginCustomHTML "Login to Joe's Garage's email service, hosted by <a href=\"http://bobsisp.com\">Bob's ISP<a>"
LoginPageTemplateID 0
NavbarColor "#AABBCC"
PageTitleText "Joe's Garage's Email"
PrimaryBarColor "#001122"
PrimaryBarTextColor "#FFFFFF"
SecondaryBarColor "#FF00CC"
SecondaryBarTextColor "#AA00CC"
SmallLogoType 2
WebmailPageTemplateID 3
WelcomeMessageText "Welcome to Joe's Garage's email."
SmallLogoURL "http://bobsisp.com/images/smalllogo.gif"
LargeLogoURL /NULL
ClientSiteURL "http://joesgarage.com"
ShowPasswordHintLink /T
PasswordHintURL "http://bobsisp.com/passwordhint.php"
)
|
|
14. Method : getWelcomeLetter
|
Retrieve the welcome letter of a specific client's email service.Arguments
1 | clientID | int |
The clientID of
the client whose welcome letter is returned.
|
Return Value
Letter |
The welcome letter of the client or NULL if no
letter is sent.
|
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to view the client.
(Caller must be the distributor of the client or the client itself.)
|
CLIENT_DOES_NOT_EXIST |
If the specified client does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Get the welcome letter for the client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=getWelcomeLetter&args=(1111+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
getWelcomeLetter ( 1111 )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
:Letter( IsActive /T
IsHTML /T
Sender "admin@someisp.com"
Subject "Welcome to the email service."
Body "<b>Enjoy</b>"
)
|
|
15. Method : setClientOffers
|
Set the client offers of the existing client.Arguments
1 | clientID | int |
The clientID of
the client whose offers are changed.
|
2 | offerIDs | List |
A list of offer identifiers of type int.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to modify the offers of the client.
(Caller must be the distributor of the client.)
|
CLIENT_DOES_NOT_EXIST |
If the specified client does not exist.
|
OFFER_NOT_AVAILABLE |
If any offer identified in offerIDs does not
exist, is not available from the caller, or is not applicable to
clients (i.e. a user offer).
|
INVALID_ARGUMENT |
If the offer list does not have exactly one offer identifier.
|
In addition this method may throw
system exceptions
.
Examples
Change the offers for client 1111 to offer 7 only.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=setClientOffers&args=(1111+(+7+)+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
setClientOffers ( 1111 ( 7 ) )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
16. Method : setClientPassword
|
Set the password of the existing client.Arguments
1 | clientID | int |
The clientID of
the client whose password is changed.
|
2 | password | string |
The new password.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to modify the client.
(Caller must be the distributor of the client or the client itself.)
|
CLIENT_DOES_NOT_EXIST |
If the specified client does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Change the password for client 1111 to aawfeam.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=setClientPassword&args=(1111+%22aawfeam%22+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
setClientPassword ( 1111 "aawfeam" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
17. Method : setEmailServiceCatchAll
|
Set the catch all of the existing client's email service.Arguments
1 | clientID | int |
The clientID of
the client whose email service catch all is changed.
|
2 | catchall | string |
The new catch all destination. Must be a valid email address.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to modify the client.
(Caller must be the distributor of the client or the client itself.)
|
CLIENT_DOES_NOT_EXIST |
If the specified client does not exist.
|
INVALID_ADDRESS |
If the specified catch all destination is not NULL or a valid email address.
|
EMAIL_SERVICE_NOT_FOUND |
If the specified client does not have an email service.
|
In addition this method may throw
system exceptions
.
Examples
Change the email service catch all for client 1111 to mailnet@somewhere.com.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=setEmailServiceCatchAll&args=(1111+%22mailnet%40somewhe...
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
setEmailServiceCatchAll ( 1111 "mailnet@somewhere.com" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
18. Method : setWebmailLogos
|
Set the small and large logos displayed on the webmail interface.Arguments
1 | clientID | int |
The clientID of
the client whose logos are changed.
|
2 | smallLogoImage | bytes |
Bytes that forms a valid GIF image.
|
3 | largeLogoImage | bytes |
Bytes that forms a valid GIF image.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to modify the client.
(Caller must be the distributor of the client or the client itself.)
|
EMAIL_SERVICE_NOT_FOUND |
If the specified client does not have an email service.
|
In addition this method may throw
system exceptions
.
Examples
Change the small and large logos shown in the webmail
interface for client 1111 to the given sequences
of bytes.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=setWebmailLogos&args=(1111+%7B123%7D%5B123+bytes+...%5D...
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
setWebmailLogos ( 1111 {123}[123 bytes ...] {123}[123 bytes ...] )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
19. Method : setQuotaWarningLetter
|
Set the quota warning letter of a specific client's email service.Arguments
1 | clientID | int |
The clientID of
the client whose quota warning letter is changed.
|
2 | letter | Letter |
The new quota warning letter or NULL to use the
default letter.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to modify the client.
(Caller must be the distributor of the client or the client itself.)
|
EMAIL_SERVICE_NOT_FOUND |
If the specified client does not have an email service.
|
In addition this method may throw
system exceptions
.
Examples
Set the quota warning letter for the client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=setQuotaWarningLetter&args=(1111+%3ALetter(+IsActive+%2...
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
setQuotaWarningLetter ( 1111 :Letter( IsActive /T
IsHTML /F
Sender "admin@someisp.com"
Subject "Your mailbox is nearly full."
Body "You can upgrade this mailbox by contacting support@myisp.com. Reference upgrade code \"3321\"."
) )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
20. Method : setWebmailNavbarImages
|
Set the images shown in the navigation bar of the webmail interface.Arguments
1 | clientID | int |
The clientID of
the client whose logos are changed.
|
2 | inboxImage | bytes |
Bytes that forms a valid GIF image.
|
3 | composeImage | bytes |
Bytes that forms a valid GIF image.
|
4 | addressesImage | bytes |
Bytes that forms a valid GIF image.
|
5 | foldersImage | bytes |
Bytes that forms a valid GIF image.
|
6 | searchImage | bytes |
Bytes that forms a valid GIF image.
|
7 | optionsImage | bytes |
Bytes that forms a valid GIF image.
|
8 | helpImage | bytes |
Bytes that forms a valid GIF image.
|
9 | logoutImage | bytes |
Bytes that forms a valid GIF image.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to modify the client.
(Caller must be the distributor of the client or the client itself.)
|
EMAIL_SERVICE_NOT_FOUND |
If the specified client does not have an email service.
|
In addition this method may throw
system exceptions
.
Examples
Change the navigation bar images for client 1111 to the
given sequences of bytes.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=setWebmailNavbarImages&args=(1111+%7B123%7D%5B123+bytes...
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
setWebmailNavbarImages ( 1111 {123}[123 bytes ...] {123}[123 bytes ...]
{123}[123 bytes ...] {123}[123 bytes ...]
{123}[123 bytes ...] {123}[123 bytes ...]
{123}[123 bytes ...] )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
21. Method : setWebmailPresentation
|
Update the webmail presentation data for a specific client's email service.Arguments
1 | clientID | int |
The clientID of
the client whose webmail presentation data is modified.
|
2 | presentation | WebmailPresentation |
The new webmail presentation data.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to modify the client.
(Caller must be the distributor of the client or the client itself.)
|
EMAIL_SERVICE_NOT_FOUND |
If the specified client does not have an email service.
|
In addition this method may throw
system exceptions
.
Examples
Set the webmail presentation data for the client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=setWebmailPresentation&args=(1111+%3AWebmailPresentatio...
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
setWebmailPresentation ( 1111 :WebmailPresentation( BackgroundBannerColor "#FF00CC"
BackgroundColor "#00FFCC"
ClientSignature "Support my cause ..."
ClientSiteName "Joe's Garage"
DefaultFontColor "#FFAACC"
DefaultFontSize
DefaultFontStyle "Arial,Helvetica,sans-serif"
FooterHTML
LargeLogoType 0
LinkActiveColor "#FF00DD"
LinkColor "#0000CC"
LinkVisitedColor "#000000"
LoginCustomHTML "Login to Joe's Garage's email service, hosted by <a href=\"http://bobsisp.com\">Bob's ISP<a>"
LoginPageTemplateID 0
NavbarColor "#AABBCC"
PageTitleText "Joe's Garage's Email"
PrimaryBarColor "#001122"
PrimaryBarTextColor "#FFFFFF"
SecondaryBarColor "#FF00CC"
SecondaryBarTextColor "#AA00CC"
SmallLogoType 2
WebmailPageTemplateID 3
WelcomeMessageText "Welcome to Joe's Garage's email."
SmallLogoURL "http://bobsisp.com/images/smalllogo.gif"
LargeLogoURL /NULL
ClientSiteURL "http://joesgarage.com"
ShowPasswordHintLink /T
PasswordHintURL "http://bobsisp.com/passwordhint.php"
) )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
22. Method : setWelcomeLetter
|
Set the welcome letter of a specific client's email service.Arguments
1 | clientID | int |
The clientID of
the client whose welcome letter is changed.
|
2 | letter | Letter |
The new welcome letter or NULL to use no welcome letter.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to modify the client.
(Caller must be the distributor of the client or the client itself.)
|
EMAIL_SERVICE_NOT_FOUND |
If the specified client does not have an email service.
|
In addition this method may throw
system exceptions
.
Examples
Set the welcome letter for the client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=setWelcomeLetter&args=(1111+%3ALetter(+IsActive+%2FT+%0...
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
setWelcomeLetter ( 1111 :Letter( IsActive /T
IsHTML /T
Sender "admin@someisp.com"
Subject "Welcome to the email service."
Body "<b>Enjoy</b>"
) )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
23. Method : summarizeEmailClient
|
Return a summary of commonly requested information about a specific client and its email service.Arguments
1 | clientID | int |
The clientID of
the client whose summary is requested.
|
Return Value
Exceptions
In addition this method may throw
system exceptions
.
Examples
Get a summary of the client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=summarizeEmailClient&args=(1111+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
summarizeEmailClient ( 1111 )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
:EmailClientSummary( clientID 1111
primaryEmailDomain "joesgarage.com"
webmailHostname "webmail.joesgarage.com"
isMXReady /T
catchAllDestination /NULL
offerIDs ( 7 )
)
|
|
24. Method : summarizeEmailClientsOfDistributor
|
Return a summary of commonly requested information about all
clients owned by the calling distributor.
Arguments
This method has no arguments.
Return Value
Exceptions
In addition this method may throw
system exceptions
.
Examples
Get a summary of all client for the calling distributor.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=summarizeEmailClientsOfDistributor&args=() HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
summarizeEmailClientsOfDistributor ( )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
( :EmailClientSummary( clientID 1111
primaryEmailDomain "joesgarage.com"
webmailHostname "webmail.joesgarage.com"
isMXReady /T
catchAllDestination /NULL
offerIDs ( 7 )
) :EmailClientSummary( clientID 1119
primaryEmailDomain "marybank.com"
webmailHostname "webmail.marybank.com"
isMXReady /T
catchAllDestination /NULL
offerIDs ( 9 )
) )
|
|
25. Method : listUserNamesOfClient
|
Return the list of usernames for the specified client.
Arguments
1 | clientID | int |
The clientID of
the client whose user list is requested.
|
Return Value
List |
A list of string objects, each one the
username of a user belonging to the specified client.
|
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to view the client.
(Caller must be the distributor of the client or the client itself.)
|
In addition this method may throw
system exceptions
.
Examples
Get a list of users for client with clientID 1111
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=listUserNamesOfClient&args=(1111+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
listUserNamesOfClient ( 1111 )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
( "jim" "bob" "tim" "sam" )
|
|
26. Method : listEmailAliasInfoOfClient
|
Return the list of email aliases with their recipients for the specified client.
Arguments
1 | clientID | int |
The clientID of
the client whose alias list is requested.
|
Return Value
List |
A list of AliasInfo objects, one for each
alias belonging to the specified client.
|
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to view the client.
(Caller must be the distributor of the client or the client itself.)
|
In addition this method may throw
system exceptions
.
Examples
Get a list of aliases for client with clientID 1111
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=listEmailAliasInfoOfClient&args=(1111+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
listEmailAliasInfoOfClient ( 1111 )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
( :AliasInfo( name "sales"
recipients ( "jim@joesgarage.com" "bob@joesgarage.com" )
) :AliasInfo( name "fieldstaff"
recipients ( "tim@joesgarage.com" "sam@joesgarage.com" "larry@yahoo.com" )
) )
|
|
27. Method : createEmailAlias
|
Create a new email alias for the specified client.
Arguments
1 | clientID | int |
The clientID of
the client that will own the email alias.
|
2 | name | string |
The name of the alias. The alias accepts incoming email for
the address <name>@<email domain>
where name is this argument and email
domain is the email domain of the owning client
specified by clientID. the client that will own
the email alias.
|
3 | recipients | list |
The list of recipient addresses. Each must be a
fully-qualified email address (localpart and domain). There
must be at least one recipient address.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to create aliases for the client.
(Caller must be the distributor of the client or the client itself.)
|
ACCOUNT_NAME_TAKEN |
If name is already in use as a username or the name of another alias.
|
INVALID_ACCOUNT_NAME |
If name is not a legal account name.
See Name Restrictions.
|
EMAIL_SERVICE_NOT_FOUND |
If the specified client does not have an email service.
|
EMAIL_SERVICE_NOT_READY |
If the specified client has an email service, but the MX records have not been validated.
|
INVALID_ADDRESS |
One or more of the addresses in recipients was
not a valid email address, or there was not at least one
address in recipients.
|
In addition this method may throw
system exceptions
.
Examples
Create a new email alias for client with clientID
1111 which redirects email from the name
social to this list of addresses :
joe@hotmail.com, sam@joesgarage.com,
anne@joesgarage.com
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=createEmailAlias&args=(1111+%22social%22+(+%22joe%40hot...
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
createEmailAlias ( 1111 "social" ( "joe@hotmail.com" "sam@joesgarage.com" "anne@joesgarage.com" ) )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
28. Method : deleteEmailAlias
|
Deletes an existing email alias for the specified client.
Arguments
1 | clientID | int |
The clientID of
the client that owns the email alias to delete.
|
2 | name | string |
The name of the alias to delete.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to delete aliases for the client.
(Caller must be the distributor of the client or the client itself.)
|
ALIAS_DOES_NOT_EXIST |
If the specified alias does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Delete the email alias for client with clientID
1111 and name social.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=deleteEmailAlias&args=(1111+%22social%22+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
deleteEmailAlias ( 1111 "social" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
29. Method : getEmailAliasRecipients
|
Retrieve the list of recipients of an existing email alias.
Arguments
1 | clientID | int |
The clientID of
the client that owns the email alias.
|
2 | name | string |
The name of the alias.
|
Return Value
List |
A list of String objects, one for each
recipient address of the alias.
|
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to view the client.
(Caller must be the distributor of the client or the client itself.)
|
ALIAS_DOES_NOT_EXIST |
If the specified alias does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Retrieve the recipient list of the email alias with name
social and owned by the client with clientID
1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=getEmailAliasRecipients&args=(1111+%22social%22+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
getEmailAliasRecipients ( 1111 "social" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
( "phil@joesgarage.com" )
|
|
30. Method : setEmailAliasRecipients
|
Change the recipients of an existing email alias.
Arguments
1 | clientID | int |
The clientID of
the client that owns the email alias to change.
|
2 | name | string |
The name of the alias to change.
|
3 | recipients | list |
The list of new recipient addresses for the alias. Each
element of the list is of type string.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to modify the client.
(Caller must be the distributor of the client or the client itself.)
|
ALIAS_DOES_NOT_EXIST |
If the specified alias does not exist.
|
INVALID_ADDRESS |
One or more of the addresses in recipients was
not a valid email address, or there was not at least one
address in recipients.
|
In addition this method may throw
system exceptions
.
Examples
Change the recipient list of the email alias with name
social and owned by the client with clientID
1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=setEmailAliasRecipients&args=(1111+%22social%22+(+%22ph...
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
setEmailAliasRecipients ( 1111 "social" ( "phil@joesgarage.com" ) )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
31. Method : createUser
|
Create a new user (and mailbox for that user if the owning client has an email service).
Arguments
1 | clientID | int |
The clientID of
the client that will own the new user.
|
2 | offerIDs | list |
A list of offer identifiers of type
int. These will be applied to the new
user upon creation. It is valid to make offerIDs
an empty list or null to indicate no special offers are
applied to this user. In this case the service options are
inherited from the client offer of the owning client.
|
3 | username | string |
The username of the new user.
|
4 | password | string |
The password of the new user.
|
Return Value
int |
The user identifier of the user.
|
Exceptions
In addition this method may throw
system exceptions
.
Examples
Create a new user with username ron, password
tryandguessthis to be owned by client with
clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=createUser&args=(1111+(+19+)+%22ron%22+%22tryandguessth...
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
createUser ( 1111 ( 19 ) "ron" "tryandguessthis" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
3811883
|
|
32. Method : deleteUser
|
Delete an existing user.
Arguments
1 | clientID | int |
The clientID of
the client that owns the user to delete.
|
2 | username | string |
The username of the user to delete.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to delete users for the client.
(Caller must be the distributor of the client or the client itself.)
|
USER_DOES_NOT_EXIST |
The specified user does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Delete the user with username ron and owned by
client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=deleteUser&args=(1111+%22ron%22+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
deleteUser ( 1111 "ron" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
33. Method : getUserOffers
|
Get the offer identifiers applied to an existing user.
Arguments
1 | clientID | int |
The clientID of
the client that owns the user to retrieve offers.
|
2 | username | string |
The username of the user to retrieve offers.
|
Return Value
list |
A list of offer identifiers of type int.
|
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to view users of the client.
(Caller must be the distributor of the client or the client itself.)
|
USER_DOES_NOT_EXIST |
The specified user does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Return the offer identifiers of the user with username joe and owned by
client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=getUserOffers&args=(1111+%22joe%22+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
getUserOffers ( 1111 "joe" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
( 19 )
|
|
34. Method : getUserPassword
|
Get the password of the specified user.
Arguments
1 | clientID | int |
The clientID of
the client that owns the user to retrieve the password.
|
2 | username | string |
The username of the user to retrieve the password.
|
Return Value
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to view users of the client.
(Caller must be the distributor of the client or the client itself.)
|
USER_DOES_NOT_EXIST |
The specified user does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Return the password of the user with username joe and owned by
client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=getUserPassword&args=(1111+%22joe%22+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
getUserPassword ( 1111 "joe" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
"qwerty"
|
|
35. Method : setUserOffers
|
Set the user offers of the specified user.
Arguments
1 | clientID | int |
The clientID of
the client that owns the user to set the offers.
|
2 | username | string |
The username of the user to set the offers.
|
3 | offerIDs | List |
A list of offer identifiers of type int.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to modify users of the client.
(Caller must be the distributor of the client.)
|
USER_DOES_NOT_EXIST |
The specified user does not exist.
|
OFFER_NOT_AVAILABLE |
If any offer identified in offerIDs does not
exist, is not available from the caller, or is not applicable to
users (i.e. a client offer).
|
INVALID_ARGUMENT |
If the offer list does not have exactly zero or one offer identifier.
|
In addition this method may throw
system exceptions
.
Examples
Change the offers of the user with username joe and owned by
client with clientID 1111 to the offer identifier 3.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=setUserOffers&args=(1111+%22joe%22+(+3+)+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
setUserOffers ( 1111 "joe" ( 3 ) )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
36. Method : setUserPassword
|
Set the password of the specified user.
Arguments
1 | clientID | int |
The clientID of
the client that owns the user to set the password.
|
2 | username | string |
The username of the user to set the password.
|
3 | password | string |
The user's new password.
|
Return Value
This method has return type void.
Exceptions
In addition this method may throw
system exceptions
.
Examples
Change the password of the user with username joe and owned by
client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=setUserPassword&args=(1111+%22joe%22+%22mynewpassword19...
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
setUserPassword ( 1111 "joe" "mynewpassword193783" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
37. Method : getUnreadCountForUserMailbox
|
Get the number of unread messages in the mailbox of the specified user.
Arguments
1 | clientID | int |
The clientID of
the client that owns the user to retrieve the unread message count.
|
2 | username | string |
The username of the user to retrieve the unread message count.
|
Return Value
int |
The user's unread email message count.
|
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to view users of the client.
(Caller must be the distributor of the client or the client itself.)
|
USER_DOES_NOT_EXIST |
The specified user does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Return the unread message count of the user with username joe
and owned by client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=getUnreadCountForUserMailbox&args=(1111+%22joe%22+) HTT...
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
getUnreadCountForUserMailbox ( 1111 "joe" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
8
|
|
38. Method : suspendUser
|
Suspend the email service of an user.
Arguments
1 | clientID | int |
The clientID that
owns the user to be suspended.
|
2 | username | string |
The username of the user to be suspended.
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to suspend users of the client.
(Caller must be the distributor of the client or the client itself.)
|
USER_DOES_NOT_EXIST |
The specified user does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Suspend a user with username ron and owned by client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=suspendUser&args=(1111+%22ron%22+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
suspendUser ( 1111 "ron" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
39. Method : unsuspendUser
|
Unsuspend the email service of an user.
Arguments
1 | clientID | int |
The clientID of
the client that owns the user to be unsuspended.
|
2 | username | string |
The username of the user to be unsuspended
|
Return Value
This method has return type void.
Exceptions
PERMISSION_DENIED |
If the caller does not have the rights to suspend users of the client.
(Caller must be the distributor of the client or the client itself.)
|
USER_DOES_NOT_EXIST |
The specified user does not exist.
|
In addition this method may throw
system exceptions
.
Examples
Unsuspend a user with username ron and owned by client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=unsuspendUser&args=(1111+%22ron%22+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
unsuspendUser ( 1111 "ron" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
40. Method : purgeSuspendedUserAccount
|
Delete the content of a suspended mailbox. After the action, the mailbox
will have no data remaining, similar to a reserved account.
Arguments
1 | clientID | int |
The clientID of
the client that owns the suspended user to be purged.
|
2 | username | string |
The username of the suspended user to be purged.
|
Return Value
This method has return type void.
Exceptions
In addition this method may throw
system exceptions
.
Examples
Purge the mailbox of suspended user ron owned by client with clientID 1111.
HTTP-GET Transport Request
GET /ccc/xrc?version=1&clientID=99199&password=qOOd3mai1&cmd=purgeSuspendedUserAccount&args=(1111+%22ron%22+) HTTP/1.0
Host: xrc.everyone.net
|
HTTP-POST Transport Request
POST /ccc/xrc HTTP/1.0
Host: xrc.everyone.net
Content-Type: application/x-eon-xrc-request
version: 1
clientID: 99199
password: qOOd3mai1
purgeSuspendedUserAccount ( 1111 "ron" )
|
HTTP-POST or HTTP-GET Response
Content-Type: application/x-eon-xrc-response
version: 1
status: 0
server: machine33
timestamp: 33234234324
/NULL
|
|
Exceptions
Exceptions come in two forms : system exceptions and
application
exceptions.
System exceptions can be thrown by any method and indicates a
unexpected failure on the part of the XRC client or XRC
server. Application exceptions are not unexpected as they simply
indicate that the "normal" course of operation could not be
followed.
For example an attempt to create a user with a username that is
already in use throws an application exception
(ACCOUNT_NAME_TAKEN). A failure
to properly serialize an argument throws a system exception
(PROTOCOL or
SERIALIZE).
Exception Quick Lookup
1. Exception : PROTOCOL
|
Status Code : 1Description
- EOF while reading metadata
- a metadata line exceeded 8192 bytes
- missing a required metadata key-value pair
- metadata value malformed
- missing method name and/or method arguments
Thrown By
This is a system exception, it can be thrown by any XRC method. |
2. Exception : UNKNOWN_COMMAND
|
Status Code : 2Description
The method name does not match a known method.
Thrown By
This is a system exception, it can be thrown by any XRC method. |
3. Exception : IO
|
Status Code : 4Description
IO error or premature EOF while parsing method arguments
Thrown By
This is a system exception, it can be thrown by any XRC method. |
4. Exception : AUTHENTICATION_FAILURE
|
Status Code : 5Description
Credentials offered in metadata are not valid.
Thrown By
This is a system exception, it can be thrown by any XRC method. |
5. Exception : SYSTEM_FAILURE
|
Status Code : 6Description
An internal error in the XRC server. Everyone.net is automatically notified.
Thrown By
This is a system exception, it can be thrown by any XRC method. |
6. Exception : PERMISSION_DENIED
|
Status Code : 7Description
The caller does not have necessary rights.
Thrown By
This is a system exception, it can be thrown by any XRC method. |
7. Exception : ARGUMENT_TYPE_MISMATCH
|
Status Code : 8Description
One or more of the method arguments was not of the correct type,
or the number of arguments to the method was incorrect.
Thrown By
This is a system exception, it can be thrown by any XRC method. |
8. Exception : UNKNOWN_TYPE
|
Status Code : 10Description
The name of a complex type is not known.
Thrown By
This is a system exception, it can be thrown by any XRC method. |
9. Exception : SYNTAX
|
Status Code : 11Description
An error in the format of the XRC request.
Thrown By
This is a system exception, it can be thrown by any XRC method. |
10. Exception : SERIALIZE
|
Status Code : 13Description
A value of a complex type was of the wrong type or failed to
meet the requirements of the type specification.
Thrown By
This is a system exception, it can be thrown by any XRC method. |
11. Exception : INVALID_ARGUMENT
|
Status Code : 200Description
An argument to a method did not meet the requirements of the
specification.
Thrown By
|
12. Exception : EMAIL_SERVICE_ALREADY_SETUP
|
Status Code : 201Description
An attempt was made to setup an email service for a client that
already has an email service.
|
13. Exception : WEBMAIL_HOSTNAME_NOT_READY
|
Status Code : 202Description
The webmail hostname is not properly configured. See DNS Requirements.
Thrown By
|
14. Exception : EMAIL_DOMAIN_NAME_NOT_READY
|
Status Code : 203Description
The email domain is not properly configured. See DNS Requirements.
Thrown By
|
15. Exception : WEBMAIL_HOSTNAME_TAKEN
|
Status Code : 204Description
The webmail hostname is in use by another client.
Thrown By
|
16. Exception : EMAIL_DOMAIN_NAME_TAKEN
|
Status Code : 205Description
The email domain is in use by another client.
Thrown By
|
17. Exception : ACCOUNT_NAME_TAKEN
|
Status Code : 206Description
The username or alias name is in use.
Thrown By
|
18. Exception : CLIENT_DOES_NOT_EXIST
|
Status Code : 207Description
An operation was attempted on a client that cannot be found.
Thrown By
|
19. Exception : INVALID_PASSWORD
|
Status Code : 208Description
The password is not valid. See Name Restrictions.
Thrown By
|
20. Exception : INVALID_ADDRESS
|
Status Code : 209Description
An email address was not of legal form.
Thrown By
|
21. Exception : EMAIL_SERVICE_NOT_READY
|
Status Code : 210Description
The MX records of the email service have not been validated.
Thrown By
|
22. Exception : INVALID_WEBMAIL_HOSTNAME
|
Status Code : 211Description
The webmail hostname is not valid. See Name Restrictions.
Thrown By
|
23. Exception : INVALID_EMAIL_DOMAIN
|
Status Code : 212Description
The email domain is not valid. See Name Restrictions.
Thrown By
|
24. Exception : USER_DOES_NOT_EXIST
|
Status Code : 213Description
An operation was attempted on a user that cannot be found.
Thrown By
|
25. Exception : INVALID_ACCOUNT_NAME
|
Status Code : 214Description
The username or alias name is not valid. See Name Restrictions.
Thrown By
|
26. Exception : OFFER_NOT_AVAILABLE
|
Status Code : 215Description
The distributor attempted to apply an offer to a user or client
that does not exist, applies to the wrong beneficiary, or does
not belong to the distributor.
Thrown By
|
27. Exception : ALIAS_DOES_NOT_EXIST
|
Status Code : 216Description
An operation was attempted on an alias that cannot be found.
Thrown By
|
28. Exception : USER_NO_MAILBOX
|
Status Code : 217Description
The user does not have a mailbox.
|
29. Exception : EMAIL_SERVICE_NOT_FOUND
|
Status Code : 218Description
The client does not have an email service.
Thrown By
|
30. Exception : ACCOUNT_NOT_SUSPENDED
|
Status Code : 219Description
The user mailbox cannot be purged because the user account is not in suspended mode.
Thrown By
|
HTTP POST Transport
The HTTP POST Transport is the preferred transport for XRC. It is
designed to handle arbitrarily large argument and return values
efficiently. The XRC server listens for HTTP POST requests at
the URL http://xrc.everyone.net/ccc/xrc.
A document of content type
application/x-eon-xrc-request transports the
request to the XRC server. The document body consists of
metadata, a blank line, the method name and the serialized
method argument list.
post-request = 1*(md-line) line-terminator method-name method-args
md-line = md-key ":" md-value line-terminator
line-terminator = LF / CRLF
LF = "\n"
CR = "\r" "\n"
method-name = 1*ALPHA *ALPHANUMERIC
method-args = < serialized argument list >
Each metadata key-value pair is placed on its own line, with a
colon (":") separating the key from the value. The metadata ends
with a single blank line. Lines are terminated by a linefeed
(0x0A) and if the linefeed is immediately preceded with a
carriage return (0x0D), the carriage return is considered part
of the line terminator and not part of the metadata value.
After processing, a response document is generated by the XRC
server. This document is of content type
application/x-eon-xrc-response. The response
document body consists of metadata, a blank line, and the
serialized return object. The return object of a method with a
void return type will always be NULL.
post-response = 1*(md-line) line-terminator return-obj
return-obj = < serialized return object >
It is important that an XRC client check the status
metadata. If the value is non-zero, an exception was thrown and
the return object is irrelevant and must be ignored. A correct XRC
client implementation should be prepared to handle any exception
code, regardless of the method invoked.
HTTP GET Transport
The HTTP GET transport is a convenient means of making requests
without requiring a request document. Its primary use is to
familiarize partners to the methods. Because of its limitations,
HTTP GET should not be used for production work. The XRC server
listens for HTTP GET requests at the URL
http://xrc.everyone.net/ccc/xrc.
An HTTP GET request is formed by appending a query string to the
XRC server URL. The query string is a set of key-value pairs
separated by equal signs and joined with ampersands. The keys
and values are url encoded per RFC 1738. (This
should be recognized as the form submittal method used by web
browsers.)
Every request metadata key is a HTTP GET key. In addition, the
special key cmd is used for the method name, and
the special key args is used for the serialized
argument list. There will never be a metadata value with name
cmd or args so flattening the key
namespace will never pose a problem.
Since the serialized argument list can be very long (especially
if one or more of the arguments is of type
bytes), HTTP GET cannot be used for all
methods. It is ill-advised to use HTTP GET if the total length
of the query string exceeds 2048 bytes. Note that limit is
after proper url encoding, which will add 200% to the
length of non-printable characters. It is for this reason that
HTTP POST is the preferred production transport.
The response document is exactly the same as for HTTP POST.
Name Restrictions
A number of names and values used in XRC have restrictions on their
format. Those restrictions are described here.
Password
A password must be at least 6 characters long and no more than
24 characters long. All characters must be taken from the set of
printable ASCII characters (0x20-0x7e). The first and last
character may not be a space (0x20).
Account Name
An account name (either an alias name or username) must be at
least one character long and no more than 32 characters
long. All characters must be from the set composed of the
alphanumerics, the underscore, the hyphen, and the period. The
first and last character must be an alphanumeric. It may not
contain consecutive non-alphanumeric characters.
Webmail Hostname and Email Domain
A webmail hostname or email domain must satisfy the restrictions
for a hostname.
A hostname must consist of two or more period separated
labels. Each label must have at least one character and must
contain only alphanumerics and the hyphen. Hyphens may not
appear at the beginning or end of a label nor can they appear
consecutively within a label. All labels must be no longer than
63 characters and the last label must not contain any
digits. The total length of a hostname cannot exceed 255
characters.
DNS Issues
Setting MX Records
It is critical that MX records for email domains using
Everyone.net email are setup properly and maintained. The
highest priority MX records for the email domain must target
sitemail.everyone.net. It is recommended that a
second MX record of lower priority target
sitemail2.everyone.net. No other MX records should
be assigned to the email domain.
As an example, for the email domain "mydomain.com", the relevant
portions of a BIND zone file are shown below.
mydomain.com. IN MX 0 sitemail.everyone.net.
mydomain.com. IN MX 10 sitemail2.everyone.net.
Note that lower priority values for an MX record have higher
priority.
Setting CNAME Records
For private label service, it is recommended that the
webmail
hostname be on a domain other than
"everyone.net". To do so a CNAME record must be setup for the
desired hostname that targets siteurl.everyone.net. For proper
operation, no other DNS records of any type may be assigned to
the same hostname.
As an example, for the webmail hostname "webmail.mydomain.com",
the relevant portions of a BIND zone file are shown below.
webmail.mydomain.com. IN CNAME siteurl.everyone.net.
Note that webmail interfaces located on a subdomain of
mail.everyone.net do not require setting up or maintaining
CNAME records, but such a configuration does not provide a true
private label solution.
Glossary
application exception
An exception that does not imply a system problem, but indicate
that the "normal" course of operation of the method could not be
followed. For example attempting to create a user with a
username that is already in use will throw an application
exception.
client
An organization that benefits from one or more Everyone.net
services. In the case of the email service, the client owns the
domain for which Everyone.net provides email. Every client
receives service either from a distributor or directly from
Everyone.net. In the former case, the client is said to be
"owned" by the given distributor. A Distributor is a client
that has the Distribution service.
clientID
An identifier unique to every client in the Everyone.net
system. All clients whether they are distribution partners, XRC
clients, or clients of distributors have a unique clientID. A
clientID is a 32-bit unsigned integer. Distributors need not store
clientIDs of their clients in their own database if they key their
clients by email domain. The
lookupMXReadyClientIDByEmailDomain method
provides a fast converter from email domain to clientID.
control center
A web-based administration tool used by client admins and
distributor admins to manage a single client account.
CV value
An opaque string that securely embeds the identity of a
user. Used by
integrated
login to pass credentials between partner's
site and webmail.
distributor
An organization that provides Everyone.net services to other
clients and end users.. Typical examples of distributors are
web hosts, ISPs, and ASPs.
distributor control center
A web-based administration tool used by distributors to create,
delete, and manage multiple clients.
end user
An individual that uses an Everyone.net service. Every user
belongs to exactly one client.
integrated login
A limited form of single sign-on that allows a user to login once
at the partner's site and not need to login again when accessing
the webmail service.
offer
A collection of options the distributor makes available to its
owned clients or users. Examples of offers are "2 MB Mailbox
with POP" and "6 MB Mailbox with POP and AntiVirus".
service
A hosted application provided by Everyone.net or a distributor
that benefits clients and end users. Examples of services are
Email and Distribution.
system exception
An exception that indicates an unexpected problem with the
system. The problem could be with either the XRC client or XRC
server. Any XRC method can throw a system exception.
URL encoded
The result of URL encoding a string. This process is defined in
RFC 1738 and is summarized here. First, the string is converted
to bytes via UTF-8 transformation. Next, each byte that is not in
the set { 0x41 - 0x5a, 0x61 - 0x7a, 0x30 - 0x39, 0x2d, 0x5f,
0x2e, 0x21, 0x7e, 0x2a, 0x5c, 0x28, 0x29 } is replaced with a
three byte sequence whose ASCII interpretation is "%XY". X and Y
are the hexadecimal digits of the replaced byte value.
webmail hostname
The hostname portion of the URL that locates a client's webmail
interface. For example if the webmail hostname for
a client is foobar.com, then users would visit
http://foobar.com to access that client's webmail
service.
XRC client
Depending on context, either the client software using the XRC
protocol to make a request and process a response, or the
partner site using such client software.
XRC transport
The means of transporting the metadata, method name, method
arguments, and return object between XRC client and XRC
server. Two transports are currently offered
HTTP POST and
HTTP GET.
Revision History
1.0 - 7/31/2002
First public release.
1.0.1 - 8/6/2002
1.0.2 - 9/15/2003
1.0.3 - 10/15/2003
1.0.4 - 6/15/2003