Exchange Mailbox (Rest API)

From Rackspace Email & Apps API
Revision as of 12:01, 30 November 2009 by Kevin.lin (talk | contribs) (Update to latest live version.)
Jump to: navigation, search


Index

URL:

[GET] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes


Description:

Shows a list of mailboxes under the domain


Remarks:

The show operation only supports the GET HTTP verb. For .xml format refer to the following schema document: MailboxList.xsd


Example:

get '/customers/12345678/domains/example.com/ex/mailboxes', 'text/xml'


XML Result Example:

<?xml version="1.0" encoding="utf-8"?>
<mailboxList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:mailboxList">
  <offset>0</offset>
  <size>50</size>
  <total>3</total>
  <mailboxes>
    <mailbox>
      <name>apiexmailbox55</name>
      <displayName>API Test</displayName>
    </mailbox>
    <mailbox>
      <name>apiexmailbox6</name>
      <displayName>API Test</displayName>
    </mailbox>
    <mailbox>
      <name>apiexmailbox90</name>
      <displayName>API Test</displayName>
    </mailbox>
  </mailboxes>
</mailboxList>


Json Result Example:

{"offset":0,"size":50,"total":3,"mailboxes":[{"name":"apiexmailbox55","displayName":"API Test"},{"name":"apiexmailbox6","displayName":"API Test"},{"name":"apiexmailbox90","displayName":"API Test"}]}


Show

URL:

[GET] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)


Description:

The show operation will return detailed information about the specified mailbox.


Remarks:

The show operation only supports the GET HTTP verb. For .xml format refer to the following schema document: Mailbox.xsd

The "samAccountName" is the logon name used to support clients and servers running older versions of the operating system.


Example:

get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml'


XML Result Example:

<?xml version="1.0" encoding="utf-8"?>
<mailbox xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:mailbox">
  <name>apiexmailbox90</name>
  <displayName>API Test</displayName>
  <size>2048</size>
  <currentUsage>0</currentUsage>
  <isHidden>false</isHidden>
  <isPublicFolderAdmin>true</isPublicFolderAdmin>
  <enabled>true</enabled>
  <contactInfo>
    <firstName>API</firstName>
    <lastName>Test</lastName>
    <jobTitle>Dev</jobTitle>
    <company>My Company</company>
    <department>R&D</department>
    <businessNumber>111-1111</businessNumber>
    <homeNumber>222-2222</homeNumber>
    <mobileNumber>333-3333</mobileNumber>
    <faxNumber>444-4444</faxNumber>
    <pagerNumber>1234</pagerNumber>
    <addressLine1>123 Main Street</addressLine1>
    <city>Blacksburg</city>
    <state>VA</state>
    <zip>24060</zip>
    <country>USA</country>
    <notes>My Notes</notes>
  </contactInfo>
  <emailForwardingAddress />
  <emailAddressList>
    <emailAddress>
      <address>apiexmailbox90@apidomain92.com</address>
      <replyTo>true</replyTo>
    </emailAddress>
  </emailAddressList>
  <hasBlackBerryMobileService>false</hasBlackBerryMobileService>
  <hasActiveSyncMobileService>false</hasActiveSyncMobileService>
  <samAccountName>apiexmailbox90_53B5B</samAccountName>
</mailbox>


Json Result Example:

{"name":"apiexmailbox90","displayName":"API Test","size":2048,"currentUsage":0,"isHidden":false,"isPublicFolderAdmin":true,"enabled":true,"contactInfo":{"firstName":"API","lastName":"Test","jobTitle":"Dev","company":"My Company","department":"R&D","businessNumber":"111-1111","homeNumber":"222-2222","mobileNumber":"333-3333","faxNumber":"444-4444","pagerNumber":"1234","addressLine1":"123 Main Street","city":"Blacksburg","state":"VA","zip":"24060","country":"USA","notes":"My Notes"},"emailForwardingAddress":"","emailAddressList":[{"address":"apiexmailbox90@apidomain92.com","replyTo":true}],"hasBlackBerryMobileService":false,"hasActiveSyncMobileService":false,"samAccountName":"apiexmailbox90_53B5B"}


Add/Edit

URL:

Add: [POST] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)
Edit: [PUT] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)


Description:

Adds/edits a mailbox using the specified form fields. All required fields must be supplied when adding. Other fields may be omitted.


Field Name Data Type Description
displayName string Display name (Required for Add)
password string Password (Required for Add)
size positive integer Mailbox size in megabytes (Required for Add)
isHidden boolean Indicates whether or not the mailbox is hidden from the Global Address List
isPublicFolderAdmin boolean Indicates whether or not the account is a public folder administrator
firstName string First name
lastName string Last name
company string Company
department string Department
jobTitle string Job title
addressLine1 string Street address
city string City
state string State
zip string Zip or postal code
country string Country
businessNumber string Business phone number
pagerNumber string Pager phone number
homeNumber string Home phone number
mobileNumber string Mobile phone number
faxNumber string Fax phone number
notes string Notes field
emailForwardingAddress string Forwarding email address (If this field is assigned an email address, then email forwarding will be turned on. If this field is not assigned or assigned an empty string, then email forwarding will be disabled.)
enabled string Enable/Disable mailbox, input must be "true" or "false"


Example:

post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml', 
{ 
  'displayName' => 'Alex Smith',
  'password' => 'Secret123!@#',
  'size' => '2048'
} 
put '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml',
{ 
  'homenumber' => '8005551234'
}  


Errors:

Description HTTP Response Code Sample Message
New mailbox name (user name) doesn't meet the naming requirements 400 Invalid user name
New mailbox display name doesn't meet the naming requirements 400 Invalid display name
New mailbox password doesn't meet the password pattern requirements 400 Password must be at least 8 characters long
New mailbox name (user name) already exists 400 The email address john.doe@abc.com is already in use


Delete

URL:

[DELETE] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
            /ex/mailboxes/(mailbox name)


Description:

Deletes the mailbox.


Remarks:

The mailbox and mailbox contents are deleted permanently.


Example:

delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml'


Add Email Address

URL:

[POST] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/emailaddresses/(email address)


Description:

Adds a mailbox's email address.


Example:

post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/emailaddresses/alex@example.com', 'text/xml'


Delete Email Address

URL:

[DELETE] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
            /ex/mailboxes/(mailbox name)/emailaddresses/(email address)


Description:

Deletes the email address.


Remarks:

The operation will fail if the email address does not exist.


Example:

delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/emailaddresses/alex@example.com', 'text/xml'


Spam

Index Blacklist

URL:

[GET] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/spam/blacklist


Description:

This operation returns email address blacklist associated with the mailbox.


Remarks:

The Index operation only supports the GET HTTP verb. For .xml format refer to the following schema document: Blacklist.xsd


Example:

get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist', 'text/xml'


XML Result Example:

<?xml version="1.0" encoding="utf-8"?>
<blacklist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:blacklist">
  <addresses>
    <address>name1@spam.com</address>
    <address>name2@spam.com</address>
  </addresses>
</blacklist>


Json Result Example:

{"addresses":["name1@spam.com","name2@spam.com"]}


Index IP Blacklist

URL:

[GET] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/spam/ipblacklist


Description:

This operation returns IP blacklist associated with the mailbox.


Remarks:

The Index operation only supports the GET HTTP verb. For .xml format refer to the following schema document: IpBlacklist.xsd


Example:

get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipblacklist', 'text/xml'

XML Result Example':

<?xml version="1.0" encoding="utf-8"?>
<ipBlacklist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:ipBlacklist">
  <addresses>
    <ip>216.12.34.1</ip>
    <ip>216.12.34.2</ip>
  </addresses>
</ipBlacklist>


Json Result Example:

{"addresses":["216.12.34.1","216.12.34.2"]}


Index Safelist

URL:

[GET] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/spam/safelist


Description:

This operation returns email address safelist associated with the mailbox.


Remarks:

The Index operation only supports the GET HTTP verb. For .xml format refer to the following schema document: Safelist.xsd


Example:

get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist', 'text/xml'


XML Result Example:

<?xml version="1.0" encoding="utf-8"?>
<safelist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:safelist">
  <addresses>
    <address>name1@notspam.com</address>
    <address>name2@notspam.com</address>
  </addresses>
</safelist>


Json Result Example:

{"addresses":["name1@notspam.com","name2@notspam.com"]}


Index IP Safelist

URL:

[GET] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/spam/ipsafelist


Description:

This operation returns IP safelist associated with the mailbox.


Remarks:

The Index operation only supports the GET HTTP verb. For .xml format refer to the following schema document: IpSafelist.xsd


Example:

get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipsafelist', 'text/xml'


XML Result Example:

<?xml version="1.0" encoding="utf-8"?>
<ipSafelist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:ipSafelist">
  <addresses>
    <ip>192.168.0.1</ip>
    <ip>192.168.0.2</ip>
  </addresses>
</ipSafelist>


Json Result Example:

{"addresses":["192.168.0.1","192.168.0.2"]}


Add Blacklist

URL:

[POST] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/spam/blacklist/(email address)


Description:

Adds an email address or domain to the blacklist.


Example:

post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist/anyone@spam.com', 'text/xml'


Errors:

Description HTTP Response Code Sample Message
Entered invalid email or domain 400 invalid email address: abc
Entered current domain 400 Adding example.com would blacklist the current domain


Add IP Blacklist

URL:

[POST] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/spam/ipblacklist/(ip address)


Description:

Adds an IP to the blacklist.


Example:

post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist/216.12.34.1', 'text/xml'


Add Safelist

URL:

[POST] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/spam/safelist/(email address)


Description:

Adds an email address or domain to the safelist.


Example:

post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist/anyone@yahoo.com', 'text/xml'


Errors:

Description HTTP Response Code Sample Message
Entered invalid email or domain 400 invalid email address: abc


Add IP Safelist

URL:

[POST] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/spam/safelist/(ip address)


Description:

Adds an IP to the safelist.


Example:

post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist/216.12.34.1', 'text/xml'


Errors:

Description HTTP Response Code Sample Message
Entered invalid IP address 400 invalid ip address: 123


Delete Blacklist

URL:

[DELETE] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
            /ex/mailboxes/(mailbox name)/spam/blacklist/(email address)


Description:

Removes an email address or domain from the blacklist.


Example:

delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist/anyone@yahoo.com', 'text/xml'


Errors:

Description HTTP Response Code Sample Message
Entered invalid email or domain 400 invalid email address: abc
Entered email or domain is not on the current blacklist 400 abc@junkmail.com is not found on the blacklist


Delete IP Blacklist

URL:

[DELETE] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
            /ex/mailboxes/(mailbox name)/spam/ipblacklist/(ip address)


Description:

Removes an IP from the blacklist.


Example:

delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipblacklist/216.12.34.1', 'text/xml'


Errors:

Description HTTP Response Code Sample Message
Entered IP is not on the current blacklist 400 216.12.34.1 is not found on the blacklist


Delete Safelist

URL:

[DELETE] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
            /ex/mailboxes/(mailbox name)/spam/safelist/(email address)


Description:

Removes an email address or domain from the safelist.


Example:

delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist/anyone@yahoo.com', 'text/xml'


Errors:

Description HTTP Response Code Sample Message
Entered invalid email or domain 400 invalid email address: abc
Entered email or domain is not on the current safelist 400 anyone@yahoo.com is not found on the safelist


Delete IP Safelist

URL:

[DELETE] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
            /ex/mailboxes/(mailbox name)/spam/ipsafelist/(email address)


Description:

Removes an IP from the safelist.


Example:

delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipsafelist/216.12.34.1', 'text/xml'


Errors:

Description HTTP Response Code Sample Message
Entered IP is not on the current safelist 400 216.12.34.1 is not found on the safelist


Show Spam Setting

URL:

[GET] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/spam/settings


Description:

This operation returns the spam settings associated with the mailbox.


Remarks:

The Show operation only supports the GET HTTP verb. For .xml format refer to the following schema document: MailboxSpamSetting.xsd


Example:

get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/settings', 'text/xml'


XML Result Example:

<?xml version="1.0" encoding="utf-8"?>
<MailboxSpamSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:MailboxSpamSettings">
  <filterLevel>on</filterLevel>
  <sendToDomainQuarantine>false</sendToDomainQuarantine>
  <quarantineOwner />
</MailboxSpamSettings>


Json Result Example:

{"filterLevel":"on","sendToDomainQuarantine":false,"quarantineOwner":""}


Edit Spam Setting

URL:

[PUT] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/spam/settings


Description:

This operation will modify the mailbox spam setting. Only 'filterlevel' is the required form field.


Field Name Data Type Description
filterlevel string Spam filter status, must be 'on' or 'off' or 'exclusive' (Required)
sendtodomainquarantine boolean Indicates whether or not send spam to domain quarantine
quarantineowner string The email address that quarantine notifications be sent to


Remarks:

Form field "filterlevel" is always required.
When "filterlevel" is "on", spam will be sent to mailbox quarantine as default, unless "sendtodomainquarantine" is set to "true".
Changing "filterlevel" to "off" will force "sendtodomainquarantine" to be "false".
When "filterlevel" is "exclusive", spam will be sent to mailbox quarantine as default, unless "sendtodomainquarantine" is set to "true". In addition, mailbox will only receive email from addresses and IPs on its safelist.


Example:

put '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/settings', 'text/xml',
{ 
  'filterlevel' => 'off'
}  


Errors:

Description HTTP Response Code Sample Message
Invalid input for form field 'filterlevel' 400 Invalid filterLevel, input must be: on/off/exclusive


BlackBerry Mobile Service

Index

URL:

[GET] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/blackberrymobileservices


Description:

Returns a list of mailboxes that has BlackBerry mobile service enabled.


Remarks:

The index operation only supports the GET HTTP verb. For .xml format refer to the following schema document: BlackberryMobileServiceList.xsd


Example:

get '/customers/12345678/domains/example.com/ex/blackberrymobileservices', 'text/xml'


XML Result Example:

<?xml version="1.0" encoding="utf-8"?>
<blackBerryMobileServiceList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns="urn:xml:blackBerryMobileServiceList">
  <offset>0</offset>
  <size>50</size>
  <total>3</total>
  <mailboxes>
    <mailbox>apiexmailbox36</mailbox>
    <mailbox>apiexmailbox66</mailbox>
    <mailbox>apiexmailbox85</mailbox>
  </mailboxes>
</blackBerryMobileServiceList>


Json Result Example:

{"offset":0,"size":50,"total":3,"mailboxes":["apiexmailbox36","apiexmailbox66","apiexmailbox85"]}


Add

URL:

[POST] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/blackberrymobileservice


Description:

Attaches a BlackBerry mobile service to the mailbox.


Field Name Data Type Description
activationPassword string Activation password (Required)


Example:

post '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml',
{
  'activationPassword' => '12345'
}


Errors:

Description HTTP Response Code Sample Message
Mailbox already has BlackBerry Service 400 User john.smith@example.com has BlackBerry Mobile Service already


Delete

URL:

[DELETE] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
            /ex/mailboxes/(mailbox name)/blackberrymobileservice


Description:

Detaches a BlackBerry mobile service from a mailbox.


Example:

delete '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml'


ActiveSync Mobile Service

Index

URL:

[GET] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/activesyncmobileservices


Description:

Returns a list of mailboxes that have ActiveSync mobile service enabled.


Remarks:

The index operation only supports the GET HTTP verb. For .xml format refer to the following schema document: ActiveSyncMobileServiceList.xsd


Example:

get '/customers/12345678/domains/example.com/ex/activesyncmobileservices', 'text/xml'


XML Result Example:

<?xml version="1.0" encoding="utf-8"?>
<activeSyncMobileServiceList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns="urn:xml:activeSyncMobileServiceList">
  <offset>0</offset>
  <size>50</size>
  <total>3</total>
  <mailboxes>
    <mailbox>apiexmailbox36</mailbox>
    <mailbox>apiexmailbox66</mailbox>
    <mailbox>apiexmailbox85</mailbox>
  </mailboxes>
</activeSyncMobileServiceList>


Json Result Example:

{"offset":0,"size":50,"total":3,"mailboxes":["apiexmailbox36","apiexmailbox66","apiexmailbox85"]}


Show

URL:

[GET] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/activesyncmobileservice


Description:

Returns the mailbox ActiveSync mobile service setup information to access Hosted Exchange 2007.


Remarks:

The index operation only supports the GET HTTP verb. For .xml format, refer to the following schema document: ActiveSyncMobileService.xsd


Example:

get '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/activesyncmobileservice', 'text/xml'


XML Result Example:

<?xml version="1.0" encoding="utf-8"?>
<activeSyncMobileService xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:activeSyncMobileService">
  <emailAddress>john.smith@example.com</emailAddress>
  <serverAddress>mex07A.emailsrvr.com</serverAddress>
  <userName>johnsmith1234</userName>
  <domainAddress>mex07A.mlsrvr.com</domainAddress>
</activeSyncMobileService>


Json Result Example:

{"emailAddress":"john.smith@example.com","serverAddress":"mex07A.emailsrvr.com","userName":"johnsmith1234","domainAddress":"mex07A.mlsrvr.com"}


Errors:

Description HTTP Response Code Sample Message
Mailbox has no ActiveSync service 404 User john.smith@example.com has no active ActiveSync Mobile Service.

Add

URL:

[POST] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
        /ex/mailboxes/(mailbox name)/activesyncmobileservice


Description:

Attaches a ActiveSync service to the mailbox.


Example:

post '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/activesyncmobileservice', 'text/xml', {}


Errors:

Description HTTP Response Code Sample Message
Mailbox already has ActiveSync Service 400 User john.smith@example.com has ActiveSync Mobile Service already


Delete

URL:

[DELETE] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
            /ex/mailboxes/(mailbox name)/activesyncmobileservice


Description:

Detaches a ActiveSync mobile service from a mailbox.


Example:

delete '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/activesyncmobileservice', 'text/xml'