Exchange Mailbox (Rest API)
Contents
v1 - Current
Index
URL:
[GET] http://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name) /ex/mailboxes
Description:
Shows a list of mailboxes under the domain
Filter/Search:
Mailbox searches may be filtered by the 'enabled' flag using query methods ?enabled=true and ?enabled=false.
Remarks:
The show operation only supports the GET HTTP verb.
Example:
get '/customers/12345678/domains/example.com/ex/mailboxes'
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"}]}
Custom Fields:
The result displays each mailbox's 'name' and 'displayName' as default. There is a query string 'fields' that allows the result to display more mailbox properties. The additional properties are: 'size', 'currentUsage', 'hasBlackBerryMobileService', 'hasActiveSyncMobileService'.
Example:
get '/customers/12345678/domains/example.com/ex/mailboxes?fields=size,currentUsage'
Show
URL:
[GET] https://api.emailsrvr.com/v1/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.
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'
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> <visibleInRackspaceEmailCompanyDirectory>false</visibleInRackspaceEmailCompanyDirectory> <isPublicFolderAdmin>true</isPublicFolderAdmin> <enabled>true</enabled> <lastLogin>2/12/2010 1:00:00 AM</lastLogin> <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> <customID>0123456789</customID> </contactInfo> <emailForwardingAddress>apiexmailbox8@apidomain24.com</emailForwardingAddress> <saveForwardedEmail>false</saveForwardedEmail> <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, "lastLogin":"2\/12\/2006 1:00:00 AM", "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", "customID":"0123456789"}, "emailForwardingAddress":"apiexmailbox8@apidomain24.com", "saveForwardedEmail":false, "emailAddressList":[{"address":"apiexmailbox90@apidomain92.com", "replyTo":true}], "hasBlackBerryMobileService":false, "hasActiveSyncMobileService":false, "samAccountName":"apiexmailbox90_53B5B", "visibleInRackspaceEmailCompanyDirectory":false}
Add/Edit
URL:
Add: [POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name) /ex/mailboxes/(mailbox name) Edit: [PUT] https://api.emailsrvr.com/v1/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.
Note: this route requires that you submit the request body in Content-Type: application/x-www-form-urlencoded
format
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 |
customID | string | A custom field that can be used to tie user mailboxes to external user systems |
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.) |
saveForwardedEmail | boolean | When true, copies of forwarded email are saved in this mailbox. When false, email is forwarded but not saved. |
visibleInRackspaceEmailCompanyDirectory | boolean | Flag indicating whether the mailbox is visible in the company directory |
enabled | boolean | Enable/Disable mailbox, input must be "true" or "false" |
lastLogin (read only) | string | Date of last login, EST Time (in string format) |
Example:
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', { 'displayName' => 'Alex Smith', 'password' => 'Secret123!@#', 'size' => '2048' }
put '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', { '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/v1/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'
Add Email Address
URL:
[POST] https://api.emailsrvr.com/v1/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', {}
Delete Email Address
URL:
[DELETE] https://api.emailsrvr.com/v1/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'
Spam Settings
See Exchange Mailbox Spam Settings.
Mailbox Permissions
Exchange mailboxes can be given permissions. A permission is defined as a tuple (mailbox, permissionType).
permissionType:= (SendAs | FullAccess | Both)
Index Permissions
URL:
[GET] http://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name) /ex/mailboxes/(user)/permissions
Description:
Shows the current set of permissions granted on a user's mailbox.
Example:
get '/customers/100012/domains/enterpriseallservices.net/ex/mailboxes/jane.doe/permissions'
XML Result Example:
<?xml version="1.0" encoding="utf-8"?> <permissionList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:permissionList"> <offset>0</offset> <size>50</size> <total>0</total> <permissions> <permission> <emailAddress>joe.schmoe@enterpriseallservices.net</emailAddress> <permissionType>fullAccess</permissionType> </permission> </permissions> </permissionList>
Json Result Example:
{"offset":0,"size":50,"total":0,"permissions":[{"emailAddress":"joe.schmoe@enterpriseallservices.net","permissionType":"fullAccess"}]}
Comments: The above result shows the permission list for user Jane Doe's mailbox. The list contains one entry corresponding to that of user Joe Schmoe with permission type of "FullAccess".
Adding Permission
URL:
[POST] http://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name) /ex/mailboxes/(user1)/permissions/(user2)
Description:
Grants user2 the specified permission on mailbox of user1.
Note: this route requires that you submit the request body in Content-Type: application/x-www-form-urlencoded
format
Field Name | Data Type | Description |
---|---|---|
permission | string | permissionType (Required) |
Example:
post '/customers/100012/domains/enterpriseallservices.net/ex/mailboxes/jane.doe/permissions/john.doe', {'permission' => 'fullAccess'}
Comments: The above result shows that on the mailbox of user Jane Doe, the user John Doe has been granted the permission of type "fullAccess".
Editing Permission
URL:
[PUT] http://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name) /ex/mailboxes/(user1)/permissions/(user2)
Description:
Modifies permission granted to user2 on the mailbox of user1.
Note: this route requires that you submit the request body in Content-Type: application/x-www-form-urlencoded
format
Field Name | Data Type | Description |
---|---|---|
permission | string | permissionType (Required) |
Example:
put '/customers/100012/domains/enterpriseallservices.net/ex/mailboxes/jane.doe/permissions/john.doe', {'permission' => 'both'}
Comments: The permission granted to user John Doe on the mailbox of Jane Doe is modified to "both".
Deleting Permission
URL:
[DELETE] http://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name) /ex/mailboxes/(user1)/permissions/(user2)
Description:
Deletes permission granted to user2 on the mailbox of user1.
Example:
delete '/customers/100012/domains/enterpriseallservices.net/ex/mailboxes/jane.doe/permissions/john.doe'
Comments: The permission granted to user John Doe on the mailbox of Jane Doe is deleted.
ActiveSync Mobile Service
Index
URL:
[GET] https://api.emailsrvr.com/v1/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.
Example:
get '/customers/12345678/domains/example.com/ex/activesyncmobileservices'
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/v1/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.
Example:
get '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/activesyncmobileservice'
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/v1/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', {}
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/v1/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'