Proxy/XML Whitepaper
RocketProxy Gateway Services

1) Concept

Each list or list segment created has a unique email address that is attached to it. Emails sent to these special addresses, or "list proxy keys", are monitored and processed according to the keyword commands used in the message Subject and/or Body of the message. The great thing about list proxy keys is that they can be used to send messages from any email client or mobile device such as Outlook, Gmail, cellphone or blackberry. They can also be used inside legacy and proprietary systems to drive message content and list member data to ListRocket for processing and delivery.

An example of a proxy key address is dx93af9c1efd.proxy@listrocket.com
The key prefix, everything before the ".proxy@", can be changed as needed, as long as it's unique.

The global settings for each list proxy can be changed individually inside the ListRocket GUI. The Proxy Status can be changed to enabled/disabled as well as requiring preview and approval (shown in example) or not before a message is delivered.

The "Group Discussion" mode (currently in BETA) is meant to act similar to a traditional "list-serv", where recipients can reply to the original message, which is in turn is sent to the entire list.



2) Proxy commands

Proxy commands are very similar to how cellphone shortcodes are used to process commands via keywords. These commands are simple to use and are placed inside the Subject line as "command:function".

Currently, there are 2 functions available:

command:import
Proxy will import members listed in body of message. Body can contain up to 5k records and needs to be one record per line. First line may be the import header.


The import request will be processed and then send a confirmation email to finish the import.



The import wizard will guide the user through the rest of the import process.




command:template
Proxy will save this message as a template to be used with future proxy messages sent to this list. The template must contain the variable "%BODY%". This variable will be replaced with content once it's setup as a template. This is the same as selecting a template in the proxy setup screen within ListRocket.



3) Sending Message Content


If NO special command keyword is found in the Subject, it is treated as an actual message to be sent to the corresponding list. If the email message begins with a URL (ex. "http://www.page.com/party_invite0408.html"), it will be interpreted as a "webload" message. In this case, the contents of the webpage will be pulled and processed as the message. In either case, the Subject is always copied verbatim to the new outbound message.



XML Interface

1) Concept

XML is a standardized way to transfer data back and forth between computer platforms. Using this method, you can add members to your list via what is called an "XML Post". The advantage of XML posting is that it can be processed transparently from any data source or backend system. This is generally the case if you need to update multiple databases via one single transaction.

Under Setup, you can access the XML setup screen.



Each list has it's own random access key used to post data TO ListRocket and is used in the Post URL itself.



XML posting mechanics

In PHP and most other platforms, you can use CURL to post XML data.

This example, using PHP CURL, posts new member details into a list. The example data includes email, fname and lname. Note: custom fields setup in ListRocket to hold extra member data (ex. first name) need to be flagged to accept XML data and given the explicit incoming XML tag name that relates to itself.

$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.listrocket.com/public/xmlreceive.php?lid=89&ak=55e28676e7dea73");

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode($xmlstr));
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$buffer = curl_exec($ch);
curl_close($ch);
print_r($buffer);

XML Data Example:
$xmlstr = "
<members>
    <member>
        <email>JSmith@yahoo.com</email>
        <fname>John</fname>
        <lname>Smith</lname>
    </member>
</members>";

2) Setting up list member fields to accept XML data

There are two ways to automate member signups: HTTP post forms on a webpage (ex. "page.com/signup.html"), or by XML post to the ListRocket XML processor (ie. "listrocket.com/public/xmlreceive.php").

The XML tag for member email is always "email" (ex. "<email>joesmith@fuse.net</email>"). All other member data fields need to be setup to accept XML data under Setup>Custom Fields>XML (for each field).


The field XML setup is flexible enough to accommodate many different types of XML formatting.

This example shows that the incoming XML tag is "fname".

Posted data example: <fname>John</fname>


Posted data example: <member firstname="Joe"></member>


Posted data example: <member fieldname="fname">Joe</member>
In this case, the custom field name is "fname" and holds the member's first name (ex. "Joe").