Difference between revisions of "Rackspace Mailbox (Rest API)"
(09/01/2010 update) |
James.morgan (talk | contribs) |
||
| Line 53: | Line 53: | ||
{"offset":0,"size":50,"total":2,"rsMailboxes":[{"name":"apirsmailbox37"},{"name":"apirsmailbox91"}]} | {"offset":0,"size":50,"total":2,"rsMailboxes":[{"name":"apirsmailbox37"},{"name":"apirsmailbox91"}]} | ||
| + | |||
| + | ''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', 'enabled', 'createdDate', and 'lastLogin' | ||
| + | |||
| + | |||
| + | ''Example'': | ||
| + | <pre> | ||
| + | get '/customers/12345678/domains/example.com/rs/mailboxes?fields=size,currentUsage', 'text/xml' | ||
| + | </pre> | ||
== Show == | == Show == | ||
| Line 359: | Line 369: | ||
delete '/customers/12345678/domains/example.com/rs/mailboxes/alex.smith', 'text/xml' | delete '/customers/12345678/domains/example.com/rs/mailboxes/alex.smith', 'text/xml' | ||
</pre> | </pre> | ||
| + | |||
| + | == Create Login Tokens == | ||
| + | |||
| + | ''URL'': | ||
| + | |||
| + | [POST] <nowiki>https://api.emailsrvr.com/customers/(customer account number)/domains/(domain)/rs/mailboxes/(mailbox)/loginToken</nowiki> | ||
| + | |||
| + | |||
| + | ''Description'': | ||
| + | |||
| + | Generate a login Token which can be used to log in to a user's mailbox. The POST will return a loginToken, created date, and expiration date. | ||
| + | |||
| + | |||
| + | ''Example'': | ||
| + | |||
| + | <pre> | ||
| + | post '/customers/460896/domains/testapidomain.net/rs/mailboxes/testmailbox/loginToken', {}, 'text/xml' | ||
| + | |||
| + | </pre> | ||
| + | |||
| + | Create a login Token for testmailbox@testapidomain.net | ||
| + | |||
| + | <pre> | ||
| + | |||
| + | <?xml version="1.0" encoding="utf-8"?> | ||
| + | |||
| + | <rsMailboxLoginToken xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| + | xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:rsMailboxLoginToken"> | ||
| + | |||
| + | <token>5b5e27419a363fc5b65bbb63d1c2d3f8</token> | ||
| + | |||
| + | <dateCreated>9/22/2010 9:33:15 AM</dateCreated> | ||
| + | |||
| + | <expirationDate>9/22/2010 9:53:14 AM</expirationDate> | ||
| + | |||
| + | </rsMailboxLoginToken> | ||
| + | |||
| + | </pre> | ||
| + | |||
| + | |||
| + | The login token is valid until the current time (EST) passes the expiration date, and can be used until that point. | ||
| + | |||
| + | Using the above created login token a user can SSO into testmailbox@testapidomain.net using the following URL: | ||
| + | |||
| + | |||
| + | <pre> | ||
| + | https://{webmail address}/src/redirect.php?user_name={testmailbox@testapidomain.net}&emailaddress=testmailbox@testapidomain.net&sessionID=5b5e27419a363fc5b65bbb63d1c2d3f8 | ||
| + | </pre> | ||
| + | |||
| + | Alternatively, http can be used if SSL is not desired. | ||
Revision as of 19:51, 31 October 2010
Contents
Index
URL:
[GET] http://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
/rs/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. For .xml format refer to the following schema document: RSMailboxList.xsd
Example:
get '/customers/12345678/domains/example.com/rs/mailboxes', 'text/xml'
XML Result Example:
<?xml version="1.0" encoding="utf-8"?>
<rsMailboxList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:rsMailboxList">
<offset>0</offset>
<size>50</size>
<total>2</total>
<rsMailboxes>
<rsMailbox>
<name>apirsmailbox37</name>
</rsMailbox>
<rsMailbox>
<name>apirsmailbox91</name>
</rsMailbox>
</rsMailboxes>
</rsMailboxList>
Json Result Example:
{"offset":0,"size":50,"total":2,"rsMailboxes":[{"name":"apirsmailbox37"},{"name":"apirsmailbox91"}]}
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', 'enabled', 'createdDate', and 'lastLogin'
Example:
get '/customers/12345678/domains/example.com/rs/mailboxes?fields=size,currentUsage', 'text/xml'
Show
URL:
[GET] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
/rs/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: RSMailbox.xsd
Example:
get '/customers/12345678/domains/example.com/rs/mailboxes/alex.smith', 'text/xml'
XML Result Example:
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<rsMailbox xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:rsMailbox">
<name>apirsmailbox37</name>
<size>10240</size>
<currentUsage>1024</currentUsage>
<vacationMessage>My Test Vacation Message</vacationMessage>
<enableVacationMessage>true</enableVacationMessage>
<emailForwardingAddressList>
<emailAddress>notreal0@apidomain.net</emailAddress>
<emailAddress>notreal1@apidomain.net</emailAddress>
</emailForwardingAddressList>
<saveForwardedEmail>false</saveForwardedEmail>
<lastLogin>2/12/2009 1:00:00 AM</lastLogin>
<createdDate>4/10/2006 7:47:34 PM</createdDate>
<visibleInRackspaceEmailCompanyDirectory>false</visibleInRackspaceEmailCompanyDirectory>
<visibleInExchangeGAL>false</visibleInExchangeGAL>
<contactInfo>
<lastName>Testlast</lastName>
<firstName>Jayfirst</firstName>
<generationQualifier>Jr</generationQualifier>
<initials>A</initials>
<organizationUnit>IT</organizationUnit>
<businessStreet>123 Biz St</businessStreet>
<businessCity>Blacksburg</businessCity>
<businessState>VA</businessState>
<businessPostalCode>24060</businessPostalCode>
<businessCountry>USA</businessCountry>
<homeStreet>456 Home St</homeStreet>
<homeCity>Charlotte</homeCity>
<homeState>NC</homeState>
<homePostalCode>28210</homePostalCode>
<homeCountry>USA</homeCountry>
<businessNumber>555.123.0001</businessNumber>
<homeNumber>555.123.0003</homeNumber>
<mobileNumber>555.123.0004</mobileNumber>
<faxNumber>555.123.0005</faxNumber>
<homeFaxNumber>555.123.0006</homeFaxNumber>
<pagerNumber>555.123.0002</pagerNumber>
<notes>This is my note about my mailbox.</notes>
<title>My Title</title>
<userID>J.Test</userID>
<organizationalStatus>OrgStatus</organizationalStatus>
<employeeType>Full-Time</employeeType>
</contactInfo>
<enabled>true</enabled>
</rsMailbox>
Json Result Example:
{"emailForwardingAddressList":["test@resellerallservices.net"],"enableVacationMessage":true,"enabled":true,"contactInfo":{"businessNumber":"555.123.0001" ,"faxNumber":"555.123.0005" ,"firstName":"Jimmy" ,"homeNumber":"555.123.0003" ,"lastName":"TestLaste" ,"mobileNumber":"555.123.0004" ,"notes":"This is my note about my mailbox." ,"pagerNumber":"555.123.0002" ,"businessCity":"" ,"businessCountry":"" ,"businessPostalCode":"" ,"businessState":"" ,"businessStreet":"" ,"employeeType":"DoesNotExist" ,"generationQualifier":"Jr" ,"homeCity":"" ,"homeCountry":"" ,"homeFaxNumber":"555.123.0006" ,"homePostalCode":"" ,"homeState":"" ,"homeStreet":"" ,"initials":"A" ,"organizationUnit":"IT" ,"organizationalStatus":"gainfully employed" ,"title":"My Title" ,"userID":"J.Test"},"name":"unittestexist" ,"saveForwardedEmail":false,"size":10240,"vacationMessage":"Test Vacation Message", "createdDate":"4\/10\/2006 7:47:34 PM", "currentUsage":1024, "visibleInExchangeGAL":false, "visibleInRackspaceEmailCompanyDirectory":false}
Add/Edit
URL:
Add: [POST] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
/rs/mailboxes/(mailbox name)
Edit: [PUT] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
/rs/mailboxes/(mailbox name)
Description:
Adds/Edits a Rackspace Email mailbox using the following form fields.
| Field Name | Data Type | Description |
|---|---|---|
| password | string | Password (Required for Add) |
| size | positive integer | Mailbox size in megabytes (Required for Add) |
| enableVacationMessage | boolean | indicates whether vacation message has been enabled |
| vacationMessage | string | A mailbox's vacation message |
| emailForwardingAddresses | string | A comma delimited list, Maximum 15 addresses, 4 of which can be outside of this domain |
| saveForwardedEmail | string | Indicates whether to save a copy of any forwarded email |
| lastName | string | A last name |
| firstName | string | A first name |
| generationQualifier | string | A person's generation (ex. Jr., Sr., III) |
| initials | string | A person's middle initial |
| organizationUnit | string | A person's organization unit (ex. Marketing) |
| 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 |
| homeFaxNumber | string | Home Fax phone number |
| businessStreet | string | The business street address for a contact |
| businessCity | string | The business city for a contact |
| businessState | string | The business state for a contact |
| businessPostalCode | string | The business postal code/zip code for a contact |
| businessCountry | string | The business country for a contact |
| homeStreet | string | The home street address for a contact |
| homeCity | string | The home city for a contact |
| homeState | string | The home state for a contact |
| homePostalCode | string | The home postal code/zip code for a contact |
| homeCountry | string | The home country for a contact |
| notes | string | Any notes for the mailbox |
| title | string | A contact's title |
| userID | string | A user ID for a contact |
| organizationalStatus | string | A contact's organization status |
| employeeType | string | A contact's employee type |
| enabled | boolean | Status of the mailbox: true = enabled, false = disabled. |
| visibleInRackspaceEmailCompanyDirectory | boolean | Flag indicating whether the mailbox is visible in the company directory |
| visibleInExchangeGAL | boolean | Flag indicating whether the mailbox is visible in the Exchange Global Address List |
| currentUsage (read only) | positive integer | Current space used in mailbox (in MB) |
| createdDate (read only) | string | Date of mailbox creation, EST Time (in string format) |
| lastLogin (read only) | string | Date of last login, EST Time (in string format) |
Example:
post '/customers/12345678/domains/example.com/rs/mailboxes/alex.smith', 'text/xml',
{
'password' => 'Secret13!@#',
'size' => '2048',
'enableVacationMessage' => 'true',
'vacationMessage' => 'My Vacation Message',
'emailForwardingAddresses' => 'sampletest@example.com,sampletest2@example.com',
'saveForwardedEmail' => 'false'
'lastName' => 'Testlastname',
'firstName' => 'Jay',
'generationQualifier' => 'III',
'initials' => 'A',
'organizationUnit' => 'IT',
'businessStreet' => '123 Biz St.',
'businessCity' => 'Blacksburg',
'businessState' => 'VA',
'businessPostalCode' => '24060',
'businessCountry' => 'USA',
'homeStreet' => '456 Home St.',
'homeCity' => 'Charlotte',
'homeState' => 'NC',
'homePostalCode' => '28210',
'homeCountry' => 'USA',
'notes' => 'This is my note about my mailbox.',
'title' => 'My Title',
'userID' => 'J.Test',
'organizationalStatus' => 'OrgStatus',
'employeeType' => 'Full-Time'
'visibleInExchangeGAL'=>'true',
'visibleInRackspaceEmailCompanyDirectory' => 'false'
}
Delete
URL:
[DELETE] https://api.emailsrvr.com/v0/customers/(customer account number)/domains/(domain name)
/rs/mailboxes/(mailbox name)
Description:
Deletes the mailbox.
Remarks:
The mailbox and mailbox contents are deleted permanently.
Example:
delete '/customers/12345678/domains/example.com/rs/mailboxes/alex.smith', 'text/xml'
Create Login Tokens
URL:
[POST] https://api.emailsrvr.com/customers/(customer account number)/domains/(domain)/rs/mailboxes/(mailbox)/loginToken
Description:
Generate a login Token which can be used to log in to a user's mailbox. The POST will return a loginToken, created date, and expiration date.
Example:
post '/customers/460896/domains/testapidomain.net/rs/mailboxes/testmailbox/loginToken', {}, 'text/xml'
Create a login Token for testmailbox@testapidomain.net
<?xml version="1.0" encoding="utf-8"?> <rsMailboxLoginToken xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xml:rsMailboxLoginToken"> <token>5b5e27419a363fc5b65bbb63d1c2d3f8</token> <dateCreated>9/22/2010 9:33:15 AM</dateCreated> <expirationDate>9/22/2010 9:53:14 AM</expirationDate> </rsMailboxLoginToken>
The login token is valid until the current time (EST) passes the expiration date, and can be used until that point.
Using the above created login token a user can SSO into testmailbox@testapidomain.net using the following URL:
https://{webmail address}/src/redirect.php?user_name={testmailbox@testapidomain.net}&emailaddress=testmailbox@testapidomain.net&sessionID=5b5e27419a363fc5b65bbb63d1c2d3f8
Alternatively, http can be used if SSL is not desired.