Difference between revisions of "Exchange Mailbox (Rest API)"

From Rackspace Email & Apps API
Jump to: navigation, search
(add sample response for spam show and index mobile services)
(v1 - Current)
 
(24 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
__TOC__
 
__TOC__
  
 +
== v1 - Current ==
  
== Index ==
+
=== Index ===
  
 
''URL'':  
 
''URL'':  
  
  <nowiki>[GET] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>[GET] http://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 
         /ex/mailboxes</nowiki>
 
         /ex/mailboxes</nowiki>
  
Line 13: Line 14:
  
 
Shows a list of mailboxes under the domain
 
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'':
 
''Remarks'':
  
The show operation only supports the GET HTTP verb. For .xml format refer to the following schema document: [http://api.emailsrvr.com/v0/Schemas/MailboxList.xsd MailboxList.xsd]
+
The show operation only supports the GET HTTP verb.
  
  
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
get '/customers/12345678/domains/example.com/ex/mailboxes', 'text/xml'
+
get '/customers/12345678/domains/example.com/ex/mailboxes'
 
</pre>
 
</pre>
  
Line 56: Line 62:
  
  
''Errors'':
+
''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'.
  
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|}
 
  
 +
''Example'':
 +
<pre>
 +
get '/customers/12345678/domains/example.com/ex/mailboxes?fields=size,currentUsage'
 +
</pre>
  
== Show ==
+
=== Show ===
  
 
''URL'':
 
''URL'':
  <nowiki>[GET] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 
         /ex/mailboxes/(mailbox name)</nowiki>
 
         /ex/mailboxes/(mailbox name)</nowiki>
  
Line 87: Line 86:
 
''Remarks'':
 
''Remarks'':
  
The show operation only supports the GET HTTP verb. For .xml format refer to the following schema document: [http://api.emailsrvr.com/v0/Schemas/Mailbox.xsd Mailbox.xsd]
+
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'':
 
''Example'':
 
<pre>
 
<pre>
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml'
+
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith'
 
</pre>
 
</pre>
  
Line 106: Line 107:
 
   <currentUsage>0</currentUsage>
 
   <currentUsage>0</currentUsage>
 
   <isHidden>false</isHidden>
 
   <isHidden>false</isHidden>
 +
  <visibleInRackspaceEmailCompanyDirectory>false</visibleInRackspaceEmailCompanyDirectory>
 
   <isPublicFolderAdmin>true</isPublicFolderAdmin>
 
   <isPublicFolderAdmin>true</isPublicFolderAdmin>
 
   <enabled>true</enabled>
 
   <enabled>true</enabled>
 +
  <lastLogin>2/12/2010 1:00:00 AM</lastLogin>
 
   <contactInfo>
 
   <contactInfo>
 
     <firstName>API</firstName>
 
     <firstName>API</firstName>
Line 125: Line 128:
 
     <country>USA</country>
 
     <country>USA</country>
 
     <notes>My Notes</notes>
 
     <notes>My Notes</notes>
 +
    <customID>0123456789</customID>
 
   </contactInfo>
 
   </contactInfo>
   <emailForwardingAddress />
+
   <emailForwardingAddress>apiexmailbox8@apidomain24.com</emailForwardingAddress>
 +
  <saveForwardedEmail>false</saveForwardedEmail>
 
   <emailAddressList>
 
   <emailAddressList>
 
     <emailAddress>
 
     <emailAddress>
Line 135: Line 140:
 
   <hasBlackBerryMobileService>false</hasBlackBerryMobileService>
 
   <hasBlackBerryMobileService>false</hasBlackBerryMobileService>
 
   <hasActiveSyncMobileService>false</hasActiveSyncMobileService>
 
   <hasActiveSyncMobileService>false</hasActiveSyncMobileService>
 +
  <samAccountName>apiexmailbox90_53B5B</samAccountName>
 
</mailbox>
 
</mailbox>
 
</pre>
 
</pre>
Line 141: Line 147:
 
''Json Result Example'':
 
''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}
+
{"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}
 
 
 
 
''Errors'':
 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| Mailbox not found
 
|}
 
 
 
  
== Add/Edit ==
+
=== Add/Edit ===
  
 
''URL'':
 
''URL'':
  <nowiki>Add: [POST] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>Add: [POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 
         /ex/mailboxes/(mailbox name)
 
         /ex/mailboxes/(mailbox name)
Edit: [PUT] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
Edit: [PUT] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 
         /ex/mailboxes/(mailbox name)</nowiki>
 
         /ex/mailboxes/(mailbox name)</nowiki>
  
Line 178: Line 162:
 
Adds/edits a mailbox using the specified form fields. All required fields must be supplied when adding. Other fields may be omitted.
 
Adds/edits a mailbox using the specified form fields. All required fields must be supplied when adding. Other fields may be omitted.
  
 +
{{RouteRequiresFormEncoded}}
  
{| border=1 class="simple"
+
{| class="wikitable"
 
!''Field Name''
 
!''Field Name''
 
!''Data Type''
 
!''Data Type''
Line 244: Line 229:
 
| Country
 
| Country
 
|-
 
|-
| businessnumber
+
| businessNumber
 
| string
 
| string
 
| Business phone number
 
| Business phone number
 
|-
 
|-
| pagernumber
+
| pagerNumber
 
| string
 
| string
 
| Pager phone number
 
| Pager phone number
 
|-
 
|-
| homenumber
+
| homeNumber
 
| string
 
| string
 
| Home phone number
 
| Home phone number
 
|-
 
|-
| mobilenumber
+
| mobileNumber
 
| string
 
| string
 
| Mobile phone number
 
| Mobile phone number
 
|-
 
|-
| faxnumber
+
| faxNumber
 
| string
 
| string
 
| Fax phone number
 
| Fax phone number
Line 267: Line 252:
 
| string
 
| string
 
| Notes field
 
| Notes field
 +
|-
 +
| customID
 +
| string
 +
| A custom field that can be used to tie user mailboxes to external user systems
 
|-
 
|-
 
| emailForwardingAddress
 
| emailForwardingAddress
 
| string
 
| 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.)
 
| 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
 
| enabled
 +
| boolean
 +
| Enable/Disable mailbox, input must be "true" or "false"
 +
|-
 +
| lastLogin '''''(read only)'''''
 
| string
 
| string
| Enable/Disable mailbox, input must be "true" or "false"
+
| Date of last login, EST Time (in string format)
 
|}
 
|}
  
Line 280: Line 281:
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml',  
+
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith',  
 
{  
 
{  
 
   'displayName' => 'Alex Smith',
 
   'displayName' => 'Alex Smith',
Line 289: Line 290:
  
 
<pre>
 
<pre>
put '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml',
+
put '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith',
 
{  
 
{  
   'homenumber' => '8005551234'
+
   'homeNumber' => '8005551234'
 
}   
 
}   
 
</pre>
 
</pre>
Line 298: Line 299:
 
''Errors'':
 
''Errors'':
  
{| border=1 class="simple"
+
{| class="wikitable"
 
!''Description''
 
!''Description''
 
!''HTTP Response Code''
 
!''HTTP Response Code''
 
!''Sample Message''
 
!''Sample Message''
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| Mailbox not found
 
|-
 
| Required form field is missing
 
| 400
 
| Missing required field: displayName
 
|-
 
| Required form field has null or empty string input
 
| 400
 
| Required field displayName cannot be empty
 
 
|-
 
|-
 
| New mailbox name (user name) doesn't meet the naming requirements
 
| New mailbox name (user name) doesn't meet the naming requirements
Line 330: Line 311:
 
| 400
 
| 400
 
| Invalid display name
 
| Invalid display name
|-
 
| Integer form field has non-integer input
 
| 400
 
| Invalid format for size, input must be an integer
 
|-
 
| Boolean form field has non-boolean input
 
| 400
 
| Invalid format for Enabled, input must be True or False
 
 
|-
 
|-
 
| New mailbox password doesn't meet the password pattern requirements
 
| New mailbox password doesn't meet the password pattern requirements
 
| 400
 
| 400
 
| Password must be at least 8 characters long
 
| Password must be at least 8 characters long
|-
 
| Form data has unrecognized field
 
| 400
 
| Unrecognized field: extraStorage
 
 
|-
 
|-
 
| New mailbox name (user name) already exists
 
| New mailbox name (user name) already exists
Line 352: Line 321:
 
|}
 
|}
  
 
+
=== Delete ===
== Delete ==
 
  
 
''URL'':
 
''URL'':
  <nowiki>[DELETE] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>[DELETE] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 
             /ex/mailboxes/(mailbox name)</nowiki>
 
             /ex/mailboxes/(mailbox name)</nowiki>
  
Line 372: Line 340:
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith', 'text/xml'
+
delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith'
 
</pre>
 
</pre>
  
  
''Errors'':
+
=== Add Email Address ===
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| Mailbox not found
 
|}
 
 
 
 
 
== Add Email Address ==
 
  
 
''URL'':
 
''URL'':
  <nowiki>[POST] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>[POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 
         /ex/mailboxes/(mailbox name)/emailaddresses/(email address)</nowiki>
 
         /ex/mailboxes/(mailbox name)/emailaddresses/(email address)</nowiki>
  
Line 407: Line 358:
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/emailaddresses/alex@example.com', 'text/xml'
+
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/emailaddresses/alex@example.com', {}
 
</pre>
 
</pre>
  
 
+
=== Delete Email Address ===
''Errors'':
 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|}
 
 
 
 
 
== Delete Email Address ==
 
  
 
''URL'':
 
''URL'':
  <nowiki>[DELETE] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>[DELETE] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 
             /ex/mailboxes/(mailbox name)/emailaddresses/(email address)</nowiki>
 
             /ex/mailboxes/(mailbox name)/emailaddresses/(email address)</nowiki>
  
Line 437: Line 370:
 
''Description'':
 
''Description'':
  
The delete email address.  
+
Deletes the email address.  
  
  
Line 447: Line 380:
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/emailaddresses/alex@example.com', 'text/xml'
+
delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/emailaddresses/alex@example.com'
</pre>
 
 
 
 
 
''Errors'':
 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|}
 
 
 
 
 
== Spam ==
 
 
 
=== Index Blacklist ===
 
 
 
''URL'':
 
<nowiki>[GET] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
        /ex/mailboxes/(mailbox name)/spam/blacklist</nowiki>
 
 
 
 
 
''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: [http://api.emailsrvr.com/v0/Schemas/Blacklist.xsd Blacklist.xsd]
 
 
 
 
 
''Example'':
 
<pre>
 
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist', 'text/xml'
 
</pre>
 
 
 
 
 
''XML Result Example'':
 
 
 
<pre>
 
<?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>
 
 
</pre>
 
</pre>
  
  
''Json Result Example'':
+
=== Spam Settings ===
  
{"addresses":["name1@spam.com","name2@spam.com"]}
+
See [[Mailbox_Spam_(Rest_API)| Exchange Mailbox Spam Settings]].
  
  
''Errors'': 
+
=== Mailbox Permissions ===
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Mailbox is not found
 
| 404
 
| No user with the email address alex.smith@example.com exists
 
|}
 
  
 +
Exchange mailboxes can be given permissions. A permission is defined as a tuple (mailbox, permissionType).
  
=== Index IP Blacklist ===
+
permissionType:= (SendAs | FullAccess | Both)
  
 +
==== Index Permissions ====
 
''URL'':
 
''URL'':
<nowiki>[GET] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
        /ex/mailboxes/(mailbox name)/spam/ipblacklist</nowiki>
 
  
 +
<nowiki>[GET] http://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 +
        /ex/mailboxes/(user)/permissions</nowiki>
  
 
''Description'':
 
''Description'':
  
This operation returns IP blacklist associated with the mailbox.  
+
Shows the current set of permissions granted on a user's mailbox.
 
 
 
 
''Remarks'':
 
 
 
The Index operation only supports the GET HTTP verb. For .xml format refer to the following schema document: [http://api.emailsrvr.com/v0/Schemas/IpBlacklist.xsd IpBlacklist.xsd]
 
 
 
  
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipblacklist', 'text/xml'
+
get '/customers/100012/domains/enterpriseallservices.net/ex/mailboxes/jane.doe/permissions'
</pre>
 
 
 
''XML Result Example':
 
 
 
<pre>
 
<?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>
 
 
</pre>
 
</pre>
 
 
''Json Result Example'':
 
 
{"addresses":["216.12.34.1","216.12.34.2"]}
 
 
 
''Errors'': 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Mailbox is not found
 
| 404
 
| No user with the email address alex.smith@example.com exists
 
|}
 
 
 
=== Index Safelist ===
 
 
''URL'':
 
<nowiki>[GET] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
        /ex/mailboxes/(mailbox name)/spam/safelist</nowiki>
 
 
 
''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: [http://api.emailsrvr.com/v0/Schemas/Safelist.xsd Safelist.xsd]
 
 
 
''Example'':
 
<pre>
 
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist', 'text/xml'
 
</pre>
 
 
  
 
''XML Result Example'':
 
''XML Result Example'':
 
 
<pre>
 
<pre>
 
<?xml version="1.0" encoding="utf-8"?>
 
<?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">
+
<permissionList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
   <addresses>
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:permissionList">
     <address>name1@notspam.com</address>
+
   <offset>0</offset>
    <address>name2@notspam.com</address>
+
  <size>50</size>
   </addresses>
+
  <total>0</total>
</safelist>
+
  <permissions>
 +
     <permission>
 +
      <emailAddress>joe.schmoe@enterpriseallservices.net</emailAddress>
 +
      <permissionType>fullAccess</permissionType>
 +
    </permission>
 +
   </permissions>
 +
</permissionList>
 
</pre>
 
</pre>
 
  
 
''Json Result Example'':
 
''Json Result Example'':
  
{"addresses":["name1@notspam.com","name2@notspam.com"]}
+
{"offset":0,"size":50,"total":0,"permissions":[{"emailAddress":"joe.schmoe@enterpriseallservices.net","permissionType":"fullAccess"}]}
 
 
 
 
''Errors'':
 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Mailbox is not found
 
| 404
 
| No user with the email address alex.smith@example.com exists
 
|}
 
  
 +
''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".
  
=== Index IP Safelist ===
+
==== Adding Permission ====
  
 
''URL'':
 
''URL'':
<nowiki>[GET] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
        /ex/mailboxes/(mailbox name)/spam/ipsafelist</nowiki>
 
  
 +
<nowiki>[POST] http://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 +
        /ex/mailboxes/(user1)/permissions/(user2)</nowiki>
  
 
''Description'':
 
''Description'':
  
This operation returns IP safelist associated with the mailbox.  
+
Grants user2 the specified permission on mailbox of user1.
  
 +
{{RouteRequiresFormEncoded}}
  
''Remarks'':
+
{| class="wikitable"
 
+
!''Field Name''
The Index operation only supports the GET HTTP verb. For .xml format refer to the following schema document: [http://api.emailsrvr.com/v0/Schemas/IpSafelist.xsd IpSafelist.xsd]
+
!''Data Type''
 
 
 
 
''Example'':
 
<pre>
 
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipsafelist', 'text/xml'
 
</pre>
 
 
 
 
 
''XML Result Example'':
 
 
 
<pre>
 
<?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>
 
</pre>
 
 
 
 
 
''Json Result Example'':
 
 
 
{"addresses":["192.168.0.1","192.168.0.2"]}
 
 
 
 
 
''Errors''
 
 
 
{| border=1 class="simple"
 
 
!''Description''
 
!''Description''
!''HTTP Response Code''
 
!''Sample Message''
 
 
|-
 
|-
| Format is invalid
+
| permission
| 404
+
| string
| Invalid format
+
| permissionType (Required)
|-
 
| Mailbox is not found
 
| 404
 
| No user with the email address alex.smith@example.com exists
 
 
|}
 
|}
 
 
=== Add Blacklist ===
 
 
''URL'':
 
<nowiki>[POST] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
        /ex/mailboxes/(mailbox name)/spam/blacklist/(email address)</nowiki>
 
 
 
''Description'':
 
 
Adds an email address or domain to the blacklist.
 
 
  
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist/anyone@spam.com', 'text/xml'
+
post '/customers/100012/domains/enterpriseallservices.net/ex/mailboxes/jane.doe/permissions/john.doe', {'permission' => 'fullAccess'}
 
</pre>
 
</pre>
  
 +
''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".
  
''Errors'':
+
==== Editing Permission ====
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| No user with the email address alex.smith@example.com exists
 
|-
 
| 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'':
 
''URL'':
<nowiki>[POST] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
        /ex/mailboxes/(mailbox name)/spam/ipblacklist/(ip address)</nowiki>
 
  
 +
<nowiki>[PUT] http://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 +
        /ex/mailboxes/(user1)/permissions/(user2)</nowiki>
  
 
''Description'':
 
''Description'':
  
Adds an IP to the blacklist.
+
Modifies permission granted to user2 on the mailbox of user1.
  
 +
{{RouteRequiresFormEncoded}}
  
''Example'':
+
{| class="wikitable"
<pre>
+
!''Field Name''
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist/216.12.34.1', 'text/xml'
+
!''Data Type''
</pre>
 
 
 
 
 
''Errors'':
 
 
 
{| border=1 class="simple"
 
 
!''Description''
 
!''Description''
!''HTTP Response Code''
 
!''Sample Message''
 
 
|-
 
|-
| Format is invalid
+
| permission
| 404
+
| string
| Invalid format
+
| permissionType (Required)
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| No user with the email address alex.smith@example.com exists
 
|-
 
| Entered invalid IP address
 
| 400
 
| invalid ip address: 123
 
 
|}
 
|}
 
 
=== Add Safelist ===
 
 
''URL'':
 
<nowiki>[POST] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
        /ex/mailboxes/(mailbox name)/spam/safelist/(email address)</nowiki>
 
 
 
''Description'':
 
 
Adds an email address or domain to the safelist.
 
 
  
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist/anyone@yahoo.com', 'text/xml'
+
put '/customers/100012/domains/enterpriseallservices.net/ex/mailboxes/jane.doe/permissions/john.doe',  
 +
{'permission' => 'both'}
 
</pre>
 
</pre>
  
 +
''Comments'':
 +
The permission granted to user John Doe on the mailbox of Jane Doe is modified to "both".
  
''Errors'':
+
==== Deleting Permission ====
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| No user with the email address alex.smith@example.com exists
 
|-
 
| Entered invalid email or domain
 
| 400
 
| invalid email address: abc
 
|}
 
 
 
 
 
=== Add IP Safelist ===
 
  
 
''URL'':
 
''URL'':
<nowiki>[POST] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
        /ex/mailboxes/(mailbox name)/spam/safelist/(ip address)</nowiki>
 
  
 +
<nowiki>[DELETE] http://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 +
        /ex/mailboxes/(user1)/permissions/(user2)</nowiki>
  
 
''Description'':
 
''Description'':
  
Adds an IP to the safelist.
+
Deletes permission granted to user2 on the mailbox of user1.
 
 
  
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
post '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist/216.12.34.1', 'text/xml'
+
delete '/customers/100012/domains/enterpriseallservices.net/ex/mailboxes/jane.doe/permissions/john.doe'
 
</pre>
 
</pre>
  
 +
''Comments'':
 +
The permission granted to user John Doe on the mailbox of Jane Doe is deleted.
  
''Errors'':
 
  
{| border=1 class="simple"
+
=== ActiveSync Mobile Service ===
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| No user with the email address alex.smith@example.com exists
 
|-
 
| Entered invalid IP address
 
| 400
 
| invalid ip address: 123
 
|}
 
  
 
+
==== Index ====
=== Delete Blacklist ===
 
  
 
''URL'':
 
''URL'':
<nowiki>[DELETE] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
            /ex/mailboxes/(mailbox name)/spam/blacklist/(email address)</nowiki>
+
         /ex/activesyncmobileservices</nowiki>
 
 
 
 
''Description'':
 
 
 
Removes an email address or domain from the blacklist.
 
 
 
 
 
''Example'':
 
<pre>
 
delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/blacklist/anyone@yahoo.com', 'text/xml'
 
</pre>
 
 
 
 
 
''Errors'':
 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| No user with the email address alex.smith@example.com exists
 
|-
 
| 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'':
 
<nowiki>[DELETE] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
            /ex/mailboxes/(mailbox name)/spam/ipblacklist/(ip address)</nowiki>
 
 
 
 
 
''Description'':
 
 
 
Removes an IP from the blacklist.
 
 
 
 
 
''Example'':
 
<pre>
 
delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipblacklist/216.12.34.1', 'text/xml'
 
</pre>
 
 
 
 
 
''Errors'':
 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| No user with the email address alex.smith@example.com exists
 
|-
 
| Entered invalid IP address
 
| 400
 
| invalid ip address: 123
 
|-
 
| Entered IP is not on the current blacklist
 
| 400
 
| 216.12.34.1 is not found on the blacklist
 
|}
 
 
 
 
 
=== Delete Safelist ===
 
 
 
''URL'':
 
<nowiki>[DELETE] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
            /ex/mailboxes/(mailbox name)/spam/safelist/(email address)</nowiki>
 
 
 
 
 
''Description'':
 
 
 
Removes an email address or domain from the safelist.
 
 
 
 
 
''Example'':
 
<pre>
 
delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/safelist/anyone@yahoo.com', 'text/xml'
 
</pre>
 
 
 
 
 
''Errors'':
 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| No user with the email address alex.smith@example.com exists
 
|-
 
| 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'':
 
<nowiki>[DELETE] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
            /ex/mailboxes/(mailbox name)/spam/ipsafelist/(email address)</nowiki>
 
 
 
 
 
''Description'':
 
 
 
Removes an IP from the safelist.
 
 
 
 
 
''Example'':
 
<pre>
 
delete '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/ipsafelist/216.12.34.1', 'text/xml'
 
</pre>
 
 
 
 
 
''Errors'':
 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| No user with the email address alex.smith@example.com exists
 
|-
 
| Entered invalid IP address
 
| 400
 
| invalid ip address: 123
 
|-
 
| Entered IP is not on the current safelist
 
| 400
 
| 216.12.34.1 is not found on the safelist
 
|}
 
 
 
 
 
=== Show Spam Setting ===
 
 
 
''URL'':
 
  <nowiki>[GET] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
         /ex/mailboxes/(mailbox name)/spam/settings</nowiki>
 
  
  
 
''Description'':
 
''Description'':
  
This operation returns the spam settings associated with the mailbox.
+
Returns a list of mailboxes that have ActiveSync mobile service enabled.
  
  
 
''Remarks'':
 
''Remarks'':
  
The Show operation only supports the GET HTTP verb. For .xml format refer to the following schema document: [http://api.emailsrvr.com/v0/Schemas/MailboxSpamSetting.xsd MailboxSpamSetting.xsd]
+
The index operation only supports the GET HTTP verb.
 
 
 
 
''Example'':
 
<pre>
 
get '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/settings', 'text/xml'
 
</pre>
 
 
 
 
 
''XML Result Example'':
 
 
 
<pre>
 
<?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>
 
</pre>
 
 
 
 
 
''Json Result Example'':
 
 
 
{"filterLevel":"on","sendToDomainQuarantine":false,"quarantineOwner":""}
 
 
 
 
 
''Errors'': 
 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| Mailbox not found
 
|}
 
 
 
 
 
=== Edit Spam Setting ===
 
 
 
''URL'':
 
<nowiki>[PUT] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
        /ex/mailboxes/(mailbox name)/spam/settings</nowiki>
 
 
 
 
 
''Description'':
 
 
 
This operation will modify the mailbox spam setting. Only 'filterlevel' is the required form field.
 
 
 
 
 
{| border=1 class="simple"
 
!''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. <br>
 
When "filterlevel" is "on", spam will be sent to mailbox quarantine as default, unless "sendtodomainquarantine" is set to "true". <br>
 
Changing "filterlevel" to "off" will force "sendtodomainquarantine" to be "false". <br>
 
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'':
 
''Example'':
 
<pre>
 
<pre>
put '/customers/12345678/domains/example.com/ex/mailboxes/alex.smith/spam/settings', 'text/xml',
+
get '/customers/12345678/domains/example.com/ex/activesyncmobileservices'
{
 
  'filterlevel' => 'off'
 
 
</pre>
 
 
 
 
 
''Errors'':
 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| No user with the email address alex.smith@example.com exists
 
|-
 
| Required form field is missing
 
| 400
 
| Missing required field: filterlevel
 
|-
 
| Required form field has null or empty string input
 
| 400
 
| Required field filterlevel cannot be empty
 
|-
 
| Form data has unrecognized field
 
| 400
 
| Unrecognized field: address
 
|-
 
| Boolean form field has non-boolean input
 
| 400
 
| Invalid format for sendtodomainquarantine, input must be true or false
 
|-
 
| Invalid input for form field 'filterlevel'
 
| 400
 
| Invalid filterLevel, input must be: on/off/exclusive
 
|}
 
 
 
 
 
== BlackBerry Mobile Service ==
 
 
 
=== Index ===
 
 
 
''URL'':
 
<nowiki>[GET] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
        /ex/blackberrymobileservices</nowiki>
 
 
 
 
 
''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: [http://api.emailsrvr.com/v0/Schemas/BlackberryMobileServiceList.xsd BlackberryMobileServiceList.xsd]
 
 
 
 
 
''Example'':
 
<pre>
 
get '/customers/12345678/domains/example.com/ex/blackberrymobileservices', 'text/xml'
 
 
</pre>
 
</pre>
  
Line 1,244: Line 548:
 
<pre>
 
<pre>
 
<?xml version="1.0" encoding="utf-8"?>
 
<?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"  
+
<activeSyncMobileServiceList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
xmlns="urn:xml:blackBerryMobileServiceList">
+
xmlns="urn:xml:activeSyncMobileServiceList">
 
   <offset>0</offset>
 
   <offset>0</offset>
 
   <size>50</size>
 
   <size>50</size>
Line 1,254: Line 558:
 
     <mailbox>apiexmailbox85</mailbox>
 
     <mailbox>apiexmailbox85</mailbox>
 
   </mailboxes>
 
   </mailboxes>
</blackBerryMobileServiceList>
+
</activeSyncMobileServiceList>
 
</pre>
 
</pre>
  
Line 1,262: Line 566:
 
{"offset":0,"size":50,"total":3,"mailboxes":["apiexmailbox36","apiexmailbox66","apiexmailbox85"]}
 
{"offset":0,"size":50,"total":3,"mailboxes":["apiexmailbox36","apiexmailbox66","apiexmailbox85"]}
  
 
+
==== Show ====
''Errors'':
 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|}
 
 
 
 
 
 
 
=== Add ===
 
  
 
''URL'':
 
''URL'':
  <nowiki>[POST] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>[GET] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
         /ex/mailboxes/(mailbox name)/blackberrymobileservice</nowiki>
+
         /ex/mailboxes/(mailbox name)/activesyncmobileservice</nowiki>
  
  
 
''Description'':
 
''Description'':
  
Attaches a BlackBerry mobile service to the mailbox.
+
Returns the mailbox ActiveSync mobile service setup information to access Hosted Exchange 2007.
 
 
 
 
{| border=1 class="simple"
 
!''Field Name''
 
!''Data Type''
 
!''Description''
 
|-
 
| activationPassword
 
| string
 
| Activation password (Required)
 
|}
 
 
 
 
 
''Example'':
 
<pre>
 
post '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml',
 
{
 
  'activationPassword' => '12345'
 
}
 
</pre>
 
 
 
 
 
''Errors'':
 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Format is invalid
 
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| Mailbox not found
 
|-
 
| Mailbox already has BlackBerry Service
 
| 400
 
| User john.smith@example.com has BlackBerry Mobile Service already
 
|}
 
 
 
 
 
=== Delete ===
 
 
 
''URL'':
 
<nowiki>[DELETE] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
            /ex/mailboxes/(mailbox name)/blackberrymobileservice</nowiki>
 
 
 
 
 
''Description'':
 
 
 
Detaches a BlackBerry mobile service from a mailbox.
 
 
 
 
 
''Example'':
 
<pre>
 
delete '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml'
 
</pre>
 
 
 
 
 
''Errors'':
 
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| Mailbox not found
 
|}
 
 
 
 
 
== ActiveSync Mobile Service ==
 
 
 
=== Index ===
 
 
 
''URL'':
 
<nowiki>[GET] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
 
        /ex/activesyncmobileservices</nowiki>
 
 
 
 
 
''Description'':
 
 
 
Returns a list of mailboxes that has ActiveSync mobile service enabled.
 
  
  
 
''Remarks'':
 
''Remarks'':
  
The index operation only supports the GET HTTP verb. For .xml format refer to the following schema document: [http://api.emailsrvr.com/v0/Schemas/ActiveSyncMobileServiceList.xsd ActiveSyncMobileServiceList.xsd]
+
The index operation only supports the GET HTTP verb.
 
 
  
  
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
get '/customers/12345678/domains/example.com/ex/activesyncmobileservices', 'text/xml'
+
get '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/activesyncmobileservice'
 
</pre>
 
</pre>
  
Line 1,403: Line 593:
 
<pre>
 
<pre>
 
<?xml version="1.0" encoding="utf-8"?>
 
<?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"  
+
<activeSyncMobileService xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:activeSyncMobileService">
xmlns="urn:xml:activeSyncMobileServiceList">
+
   <emailAddress>john.smith@example.com</emailAddress>
   <offset>0</offset>
+
   <serverAddress>mex07A.emailsrvr.com</serverAddress>
   <size>50</size>
+
   <userName>johnsmith1234</userName>
   <total>3</total>
+
   <domainAddress>mex07A.mlsrvr.com</domainAddress>
   <mailboxes>
+
</activeSyncMobileService>
    <mailbox>apiexmailbox36</mailbox>
 
    <mailbox>apiexmailbox66</mailbox>
 
    <mailbox>apiexmailbox85</mailbox>
 
  </mailboxes>
 
</activeSyncMobileServiceList>
 
 
</pre>
 
</pre>
  
Line 1,419: Line 604:
 
''Json Result Example'':
 
''Json Result Example'':
  
{"offset":0,"size":50,"total":3,"mailboxes":["apiexmailbox36","apiexmailbox66","apiexmailbox85"]}
+
{"emailAddress":"john.smith@example.com","serverAddress":"mex07A.emailsrvr.com","userName":"johnsmith1234","domainAddress":"mex07A.mlsrvr.com"}
  
  
 
''Errors'':
 
''Errors'':
  
{| border=1 class="simple"
+
{| class="wikitable"
 
!''Description''
 
!''Description''
 
!''HTTP Response Code''
 
!''HTTP Response Code''
 
!''Sample Message''
 
!''Sample Message''
 
|-
 
|-
| Format is invalid
+
| Mailbox has no ActiveSync service
 
| 404
 
| 404
| Invalid format
+
| User john.smith@example.com has no active ActiveSync Mobile Service.
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
 
|}
 
|}
  
 
+
==== Add ====
 
 
=== Add ===
 
  
 
''URL'':
 
''URL'':
  <nowiki>[POST] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>[POST] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
 
         /ex/mailboxes/(mailbox name)/activesyncmobileservice</nowiki>
 
         /ex/mailboxes/(mailbox name)/activesyncmobileservice</nowiki>
  
Line 1,454: Line 633:
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
post '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml',
+
post '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/activesyncmobileservice', {}
{
 
  'activationPassword' => '12345'
 
}
 
 
</pre>
 
</pre>
  
Line 1,463: Line 639:
 
''Errors'':
 
''Errors'':
  
{| border=1 class="simple"
+
{| class="wikitable"
 
!''Description''
 
!''Description''
 
!''HTTP Response Code''
 
!''HTTP Response Code''
 
!''Sample Message''
 
!''Sample Message''
 
|-
 
|-
| Format is invalid
+
| Mailbox already has ActiveSync Service
| 404
 
| Invalid format
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| Mailbox not found
 
|-
 
| Mailbox already has BlackBerry Service
 
 
| 400
 
| 400
| User john.smith@example.com has BlackBerry Mobile Service already
+
| User john.smith@example.com has ActiveSync Mobile Service already
 
|}
 
|}
  
  
=== Delete ===
+
==== Delete ====
  
 
''URL'':
 
''URL'':
  <nowiki>[DELETE] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
+
  <nowiki>[DELETE] https://api.emailsrvr.com/v1/customers/(customer account number)/domains/(domain name)
             /ex/mailboxes/(mailbox name)/blackberrymobileservice</nowiki>
+
             /ex/mailboxes/(mailbox name)/activesyncmobileservice</nowiki>
  
  
Line 1,500: Line 664:
 
''Example'':
 
''Example'':
 
<pre>
 
<pre>
delete '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/blackberrymobileservice', 'text/xml'
+
delete '/customers/12345678/domains/example.com/ex/mailboxes/john.smith/activesyncmobileservice'
 
</pre>
 
</pre>
 
 
''Errors'':
 
 
{| border=1 class="simple"
 
!''Description''
 
!''HTTP Response Code''
 
!''Sample Message''
 
|-
 
| Domain is not found
 
| 404
 
| abc.com not found
 
|-
 
| Mailbox is not found
 
| 404
 
| Mailbox not found
 
|}
 

Latest revision as of 07:51, 28 January 2020

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'