The #1 Fastest Growing Customer Service Software. Comm100 Email Marketing API Guide. Copyright 2011 Comm100. All Rights Reserved.



Similar documents
Life Insurance. Web Service Integration Guide

Import Clients. Importing Clients Into STX

SSL API Documentation. Version 1.2.1

1. Starting the management of a subscribers list with emill

MXSAVE XMLRPC Web Service Guide. Last Revision: 6/14/2012

A Brief Introduction to MySQL


This is a training module for Maximo Asset Management V7.1. It demonstrates how to use the E-Audit function.

SPARROW Gateway. Developer Data Vault Payment Type API. Version 2.7 (6293)

The VerticalResponse API Guide

How to Process Opt-Out Reqeusts in GroupMail (Subscriber Add-On)

HowTo. Planning table online

WordPress Pages. AmeriFlux Create Account r7. WordPress to Wile account connections. Notes

Cvent Web Services API. Version V June 2008

Search invoice API. Version 5.1

User manual for the visitors of Interreg Danube Programme website

Using ODBC with MDaemon 6.5

API Guide v /11/2013

PDF Web Form. Projects 1

goaml PILOT STAKEHOLDER USER GUIDE REGISTRATION

Sitecore is a trademark of Sitecore A/S. All other brand and product names are the property of their respective holders.

ACR Triad Web Client. User s Guide. Version October American College of Radiology 2007 All rights reserved.

How to Get Set Up for the 2014 BE-180 and Request an Extension if Needed

How to Create and Send Newsletter Using G-Lock EasyMail

Programming Autodesk PLM 360 Using REST. Doug Redmond Software Engineer, Autodesk

Administrator s and Developer s Guide

Microsoft Dynamics CRM Security Provider Module

Using ilove SharePoint Web Services Workflow Action

This is a training module for Maximo Asset Management V7.1. In this module, you learn to use the E-Signature user authentication feature.

Grant Management System Training Guide Module 9 Notification Center Home Dashboard Ver 6.1 Updated:

Office365Mon Subscription Management API

This guide provides step by step instructions for using the IMF elibrary Data - My Data area. In this guide, you ll learn how to:

Technical Specification Premium SMS gateway

An Newsletter Using ASP Smart Mailer and Advanced HTML Editor

Alkacon Software GmbH

Association Anywhere Authentication Web Service

Using WhatCounts Publicaster Edition To Send Transactional s

Single Sign On Guide. Table of Contents

IBM Unica emessage Version 8 Release 5 February 19, Transactional Administration Guide

Private Medical Insurance

Electronic Data Solutions. E-Prescription System Software Requirement Specifications. Version 1.0

Notification messages

Cisco TelePresence Content Server

Acclipse Web Manager Emarketing. Create newsletter

How To Integrate Marketo With Empathy Logic Cloud (Elc) On A Microsoft Marketo Campaign

Marketing Cloud Quick References Guide

Trunk Archive Tool

Customer Bank Account Management System Technical Specification Document

RoomWizard Synchronization Software Manual Installation Instructions

Method of Unified Communications and Collaboration Service in Open Service Platform based on RESTful Web Services

Passcreator API Documentation

Bug Report. Date: March 19, 2011 Reporter: Chris Jarabek

Operation of Qvidian Proposal Automation (QPA) CRM APIs

Getting Started with the icontact API

This section will describe the different functions that can be used by the Interspire Marketer XML API.

Lab 9 Access PreLab Copy the prelab folder, Lab09 PreLab9_Access_intro

Przelewy24 WebServices

Manage cloud infrastructures using Zend Framework

Prerequisite. Getting Started. Signing and Encryption using Microsoft outlook 2007

WHMCS Integration Manual

Digitally Sign an InfoPath form and Submit using

User Manual. Document Management System

THE CHALLENGE OF ADMINISTERING WEBSITES OR APPLICATIONS THAT REQUIRE 24/7 ACCESSIBILITY

BULK SMS APPLICATION USER MANUAL

Enrollment of Dependent / Beneficiary

Océ LDAP Adapter User Guide

Save Actions User Guide

Prerequisite. Getting Started. Signing and Encryption using Microsoft outlook 2010

TCS-CA. Outlook Express Configuration [VERSION 1.0] U S E R G U I D E

LearningServer Portal Manager

Broker Registration Guide for TrustFunds Authentication A- B- C Registration Steps

Administrator s User Manual for OrangeHRM Version 3.0

Application note: Connecting the to a Database

INSTALLING, CONFIGURING, AND DEVELOPING WITH XAMPP

A basic create statement for a simple student table would look like the following.

Magensa Services. Administrative Account Services API Documentation for Informational Purposes Only. September Manual Part Number:

Instruction Guide. People First Dependent Certification Process

StreamServe Job Gateway

WebsitePanel Integration API

McAfee Enterprise Mobility Management 11.0 Software

Sage Accpac CRM 5.8. Self Service Guide

Using the Cisco Unity Connection Bulk Administration Tool

Migrating application users and passwords with Password Manager

Kroll Mail Module. Contents

Implementing Identity Provider on Mobile Phone

Online Railway Reservation. Intel Easy Steps Intel Corporation All rights reserved.

Example for Using the PrestaShop Web Service : CRUD

Merchant Web Services API

Transcription:

The #1 Fastest Growing Customer Service Software Comm100 Email Marketing API Guide Copyright 2011 Comm100. All Rights Reserved.

Comm100 Email Marketing API Guide 1 Introduction Comm100 Email Marketing application programming interfaces (APIs) allow your business/organization to expand upon the newsletter functionality provided by Comm100 Email Marketing software. In particular, APIs allow you to receive data from and send data to Comm100 Email Marketing, making integration with other solutions simple. You can manage your contact lists and emails within the software you use everyday. To access and use Comm100 Email Marketing APIs, you need to: Sign up for a Comm100 site account and activate Comm100 Email Marketing; (Click here to sign up now) Possess some software development knowledge; Adhere to Comm100's Terms and Conditions and Comm100 Email Marketing request limits. No matter your programming language is ASP, JSP, PHP or any others, you can successfully call Comm100 Email Marketing APIs. You are allowed 500 requests in a 24 hour period. If you exceed the maximum requests, you will get an error notification and please contact Comm100 support team if you need any further help.

2 Methods name Contact GetAllContacts GetContactById GetContactByEmailAddress AddContact UpdateContact DeleteContactById DeleteContactByEmailAddress Mailing List GetAllMailingLists AddMailingList AddMailingList ClearMailingList GetAllMembersOfMailingList AddAContactToMailingList AddMultipleContactsToMailingList DeleteAContactFromMailingList DeleteMultipleContactsFromMailingList GetMemberByMailingListIdAndContactId GetMemberByMailingListIdAndEmailAddress UnsubscribeFromMailingList UnsubscribeFromAllMailingList Email GetAllEmails GetEmailById AddEmail UpdateEmail ScheduleOrSendEmail DeleteEmail Description Listing all contacts Obtaining a contact by the Contact Id Obtaining a contact by contact's email address Adding a contact Updating a contact's information Deleting a contact by the Contact Id Deleting a contact by contact's email address Listing all mailing lists Adding a mailing list Updating the information of a mailing list Deleting a mailing list Listing all members of a specific mailing list Adding a contact to a specific mailing list Adding multiple contacts to a specific mailing list Deleting a contact from a specific mailing list Deleting multiple contacts from a specific mailing list Obtaining a member's information by the mailing list Id and the contact Id Obtaining a member's information by the mailing list Id and the email address Unsubscribe a contact from a specific mailing list Unsubscribe a contact from all mailing lists Listing all newsletters you created Obtaining a newsletter by Id Creating a newsletter Updating the information of a specific newsletter Scheduling the send time or sending out a newsletter immediately Deleting a specific newsletter

2.1 GetAllContacts You can get a list of the information of your contacts in your site account. 2.1.1 Syntax Public ContactsOutPut GetAllContacts() 2.1.2 Input 2.1.3 Output ContactsOutput Error Error Contact[] Contacts 2.1.4 Parameters Contact: A business or an individual that you want to communicate with and track in Comm100 modules. Contact Int Id string EmailAddress string FirstName string LastName int Age EnumGender Gender EnumGender Male Female It's a Secret string Occupation string Organization string Title string Phone string Mobile string Fax string HomePage string Interests string Address1 string Address2 string City string StateOrProvince; string Country string ZipOrPostalCode string JoinTime string Source

Id: The unique Id of a contact. EmailAddress: Contact's email address. FirstName: The first name of a contact. LastName: The last name of a contact. Age: Contact's age. Gender: Contact's gender. (EnumGender is an enumerated type provided for your direct use.) EnumGender Male Female It's asecret Occupation: Contact's Occupation. Organization: The organization which a contact works for. Title: Contact's title. Phone: Contact's phone number Mobile: Contact's mobile number Fax: Contact's fax number. HomePage: Contact's company home page Interests: Contact's Interests. Address1: Contact's Address Address2: Contact's Address City: The city in which Contact locates. StateOrProvince: The state or province in which Contact locates. Country: The country in which Contact locates. ZipOrPostalCode: The zip/postal code of Contact's location. JoinTime: The time when Contact is added in your Comm100 account. Source: From where Contact is added into your Comm100 account. Error: A struct consisting of error code and error message Error int ErrorCode //error code (No error is detected when it's 0.) string ErrorMessage //error message (detailed error information) 2.1.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1

Host: localhost SOAPAction: "http://tempuri.org/getallcontacts" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <GetAllContacts xmlns="http://tempuri.org/" /> HTTP/1.1 200 OK <GetAllContactsResponse xmlns="http://tempuri.org/"> <GetAllContactsResult> <Error> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </Error> <Contacts> <Contact> <Id>int</Id> <EmailAddress>string</EmailAddress> <FirstName>string</FirstName> <LastName>string</LastName> <Age>int</Age> <Gender>Male or Female or ItsaSecret</Gender> <Occupation>string</Occupation> <Organization>string</Organization> <Title>string</Title> <Phone>string</Phone> <Mobile>string</Mobile> <Fax>string</Fax> <HomePage>string</HomePage> <Interests>string</Interests> <Address1>string</Address1> <Address2>string</Address2> <City>string</City>

<StateOrProvince>string</StateOrProvince> <Country>string</Country> <ZipOrPostalCode>string</ZipOrPostalCode> <JoinTime>string</JoinTime> <Source>string</Source> </Contact> <Contact> <Id>int</Id> <EmailAddress>string</EmailAddress> <FirstName>string</FirstName> <LastName>string</LastName> <Age>int</Age> <Gender>Male or Female or ItsaSecret</Gender> <Occupation>string</Occupation> <Organization>string</Organization> <Title>string</Title> <Phone>string</Phone> <Mobile>string</Mobile> <Fax>string</Fax> <HomePage>string</HomePage> <Interests>string</Interests> <Address1>string</Address1> <Address2>string</Address2> <City>string</City> <StateOrProvince>string</StateOrProvince> <Country>string</Country> <ZipOrPostalCode>string</ZipOrPostalCode> <JoinTime>string</JoinTime> <Source>string</Source> </Contact> </Contacts> </GetAllContactsResult> </GetAllContactsResponse> 2.1.6 Examples 2.1.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission. CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; ContactsOutput tmpo = tmpemailmarketingapi.getallcontacts();

2.2 GetContactById You can obtain a contact's detailed information by the Contact Id. 2.2.1 Syntax Public ContactOutput GetContactById(int contactid) 2.2.2 Input int contactid 2.2.3 Output ContactOutput Error Error Contact Contact 2.2.4 Parameters contactid: The unique number of a contact. Contact: A business or an individual that you want to communicate with or track in your Comm100 modules.

Contact Int Id string EmailAddress string FirstName string LastName int Age EnumGender Gender EnumGender Male Female It's asecret string Occupation string Organization string Title string Phone string Mobile string Fax string HomePage string Interests string Address1 string Address2 string City string StateOrProvince; string Country string ZipOrPostalCode string JoinTime string Source Id: The unique Id of a contact. EmailAddress: Contact's email address. FirstName: The first name of a contact. LastName: The last name of a contact. Age: Contact's age. Gender: Contact's gender. (EnumGender is an enumerated type provided for your direct use.) EnumGender Male Female It's asecret

Occupation: Contact's Occupation. Organization: The organization which a contact works for. Title: Contact's title. Phone: Contact's phone number Mobile: Contact's mobile number Fax: Contact's fax number. HomePage: Contact's company home page Interests: Contact's Interests. Address1: Contact's Address Address2: Contact's Address City: The city in which Contact locates. StateOrProvince: The state or province in which Contact locates. Country: The country in which Contact locates. ZipOrPostalCode: The zip/postal code of Contact's location. JoinTime: The time when Contact is added in your Comm100 account. Source: From where Contact is added into your Comm100 account. Error: A struct consisting of error code and error message Error int ErrorCode //error code (No error is detected when it's 0.) string ErrorMessage //error message (detailed error information) 2.2.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/getcontactbyid" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header>

<GetContactById xmlns="http://tempuri.org/"> <contactid>int</contactid> </GetContactById> HTTP/1.1 200 OK <GetContactByIdResponse xmlns="http://tempuri.org/"> <GetContactByIdResult> <Error> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </Error> <Contact> <Id>int</Id> <EmailAddress>string</EmailAddress> <FirstName>string</FirstName> <LastName>string</LastName> <Age>int</Age> <Gender>Male or Female or ItsaSecret</Gender> <Occupation>string</Occupation> <Organization>string</Organization> <Title>string</Title> <Phone>string</Phone> <Mobile>string</Mobile> <Fax>string</Fax> <HomePage>string</HomePage> <Interests>string</Interests> <Address1>string</Address1> <Address2>string</Address2> <City>string</City> <StateOrProvince>string</StateOrProvince> <Country>string</Country> <ZipOrPostalCode>string</ZipOrPostalCode> <JoinTime>string</JoinTime> <Source>string</Source> </Contact> </GetContactByIdResult> </GetContactByIdResponse>

2.2.6 Examples 2.2.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; ContactOutput tmpo = tmpemailmarketingapi. GetContactById (contactid as int); 2.3 GetContactByEmailAddress You can obtain a contact's detailed information by Contact's email address. 2.3.1 Syntax Public ContactOutput GetContactByEmailAddress(string emailaddress) 2.3.2 Input string emailaddress 2.3.3 Output ContactOutput Error Error Contact Contact 2.3.4 Parameters emailaddress: The email address of a contact. Contact: A business or an individual that you want to communicate with or track in your Comm100 modules.

Contact Int Id string EmailAddress string FirstName string LastName int Age EnumGender Gender EnumGender Male Female It's asecret string Occupation string Organization string Title string Phone string Mobile string Fax string HomePage string Interests string Address1 string Address2 string City string StateOrProvince; string Country string ZipOrPostalCode string JoinTime string Source Id: The unique Id of a contact. EmailAddress: Contact's email address. FirstName: The first name of a contact. LastName: The last name of a contact. Age: Contact's age. Gender: Contact's gender. (EnumGender is an enumerated type provided for your direct use.) EnumGender Male Female It's asecret

Occupation: Contact's Occupation. Organization: The organization which a contact works for. Title: Contact's title. Phone: Contact's phone number Mobile: Contact's mobile number Fax: Contact's fax number. HomePage: Contact's company home page Interests: Contact's Interests. Address1: Contact's Address Address2: Contact's Address City: The city in which Contact locates. StateOrProvince: The state or province in which Contact locates. Country: The country in which Contact locates. ZipOrPostalCode: The zip/postal code of Contact's location. JoinTime: The time when Contact is added in your Comm100 account. Source: From where Contact is added into your Comm100 account. Error: A struct consisting of error code and error message Error int ErrorCode //error code (No error is detected when it's 0.) string ErrorMessage //error message (detailed error information) 2.3.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/getcontactbyemailaddress" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header>

<GetContactByEmailAddress xmlns="http://tempuri.org/"> <emailaddress>string</emailaddress> </GetContactByEmailAddress> HTTP/1.1 200 OK <GetContactByEmailAddressResponse xmlns="http://tempuri.org/"> <GetContactByEmailAddressResult> <Error> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </Error> <Contact> <Id>int</Id> <EmailAddress>string</EmailAddress> <FirstName>string</FirstName> <LastName>string</LastName> <Age>int</Age> <Gender>Male or Female or ItsaSecret</Gender> <Occupation>string</Occupation> <Organization>string</Organization> <Title>string</Title> <Phone>string</Phone> <Mobile>string</Mobile> <Fax>string</Fax> <HomePage>string</HomePage> <Interests>string</Interests> <Address1>string</Address1> <Address2>string</Address2> <City>string</City> <StateOrProvince>string</StateOrProvince> <Country>string</Country> <ZipOrPostalCode>string</ZipOrPostalCode> <JoinTime>string</JoinTime> <Source>string</Source> </Contact> </GetContactByEmailAddressResult> </GetContactByEmailAddressResponse>

2.3.6 Examples 2.3.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; ContactOutput tmpo = tmpemailmarketingapi. GetContactByEmailAddress (emailaddress as string); 2.4 AddContact You can create a new contact in your Comm100 account. 2.4.1 Syntax Public IntValue AddContact(string email, string firstname, string lastname, int age, EnumGender gender, string occupation, string organization, string title, string phone, string mobile, string fax, string homepage, string interests, string address1, string address2,string city, string stateorprovince, string country, string ziporpostalcode) 2.4.2 Input string email, string firstname, string lastname, int age, EnumGender gender, string occupation, string organization, string title, string phone, string mobile, string fax, string homepage, string interests, string address1, string address2,string city, string stateorprovince, string country, string ziporpostalcode 2.4.3 Output IntValue Error Error int Value

2.4.4 Parameters Email: The email address of a contact FirstName: The first name of a contact LastName: The last name of a contact Age: The age of a contact Gender: Contact's gender. (EnumGender is an enumerated type provided for your direct use.) EnumGender Male Female It's asecret Occupation: Contact's Occupation. Organization: The organization which a contact works for. Title: Contact's title. Phone: Contact's phone number Mobile: Contact's mobile number Fax: Contact's fax number. HomePage: Contact's company home page Interests: Contact's Interests. Address1: Contact's Address Address2: Contact's Address City: The city in which Contact locates. StateOrProvince: The state or province in which Contact locates. Country: The country in which Contact locates. ZipOrPostalCode: The zip/postal code of Contact's location. JoinTime: The time when Contact is added in your Comm100 account. Source: From where Contact is added into your Comm100 account. Value: The unique Id of a contact Error: A struct consisting of error code and error message Error int ErrorCode //error code (No error is detected when it's 0.) string ErrorMessage //error message (detailed error information)

2.4.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/addcontact" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <AddContact xmlns="http://tempuri.org/"> <email>string</email> <firstname>string</firstname> <lastname>string</lastname> <age>int</age> <gender>male or Female or ItsaSecret</gender> <occupation>string</occupation> <organization>string</organization> <title>string</title> <phone>string</phone> <mobile>string</mobile> <fax>string</fax> <homepage>string</homepage> <interests>string</interests> <address1>string</address1> <address2>string</address2> <city>string</city> <stateorprovince>string</stateorprovince> <country>string</country> <ziporpostalcode>string</ziporpostalcode> </AddContact> HTTP/1.1 200 OK

<AddContactResponse xmlns="http://tempuri.org/"> <AddContactResult> <Error> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </Error> <Value>int</Value> </AddContactResult> </AddContactResponse> 2.4.6 Examples 2.4.6.1 C# //Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; IntValue tmpi = tmpemailmarketingapi. AddContact (email as string, firstname as string, lastname as string, age as int, gender as EnumGender, occupation as string, organization as string, title as string, phone as string, mobile as string, fax as string, homepage as string, interests as string, address1 as string, address2 as string, city as string, stateorprovince as string, country as string, ziporpostalcode as string); 2.5 UpdateContact You can modify and update a contact's information. 2.5.1 Syntax public Error UpdateContact(int contactid, string email, string displayname, string firstname, string lastname, int age, EnumGender gender, string occupation, string organization, string title, string phone, string mobile, string fax, string homepage, string interests, string address1, string address2, string city, string stateorprovince, string country, string ziporpostalcode)

2.5.2 Input int contactid, string email, string displayname, string firstname, string lastname, int age, EnumGender gender, string occupation, string organization, string title, string phone, string mobile, string fax, string homepage, string interests, string address1, string address2, string city, string stateorprovince, string country, string ziporpostalcode 2.5.3 Output Error int ErrorCode string ErrorMessage 2.5.4 Parameters contactid: The unique Id of a contact. email: Contact's email address. firstname: The first name of a contact. lastname: The last name of a contact. age: Contact's age. Gender: Contact's gender. (EnumGender is an enumerated type provided for your direct use.) EnumGender Male Female It's asecret occupation: Contact's Occupation. organization: The organization which a contact works for. title: Contact's title. phone: Contact's phone number mobile: Contact's mobile number fax: Contact's fax number. homepage: Contact's company home page interests: Contact's Interests. address1: Contact's Address address2: Contact's Address city: The city in which Contact locates. stateorprovince: The state or province in which Contact locates. country: The country in which Contact locates. ziporpostalcode: The zip/postal code of Contact's location.

jointime: The time when Contact is added in your Comm100 account. source: From where Contact is added into your Comm100 account. ErrorCode: Error Code ; No error is detected when it's 0. ErrorMessage: Detailed error information 2.5.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/updatecontact" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <UpdateContact xmlns="http://tempuri.org/"> <contactid>int</contactid> <email>string</email> <displayname>string</displayname> <firstname>string</firstname> <lastname>string</lastname> <age>int</age> <gender>string</gender> <occupation>string</occupation> <organization>string</organization> <title>string</title> <phone>string</phone> <mobile>string</mobile> <fax>string</fax> <homepage>string</homepage> <interests>string</interests> <address1>string</address1> <address2>string</address2> <city>string</city> <stateorprovince>string</stateorprovince> <country>string</country> <ziporpostalcode>string</ziporpostalcode>

</UpdateContact> HTTP/1.1 200 OK <UpdateContactResponse xmlns="http://tempuri.org/"> <UpdateContactResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </UpdateContactResult> </UpdateContactResponse> 2.5.6 Examples 2.5.6.1 C# //Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; IntValue tmpi = tmpemailmarketingapi. AddContact (contactid as int, email as string, displayname as string, firstname as string, lastname as string, age as int, gender as EnumGender, occupation as string, organization as string, title as string, phone as string, mobile as string, fax as string, homepage as string, interests as string, address1 as string, address2 as string, city as string, stateorprovince as string, country as string, ziporpostalcode as string); 2.6 DeleteContactById You can remove a contact by the Contact Id.

Removing a contact doesn't mean that this contact unsubscribed from receiving emails. It means the contact simply does not exist in your contact list. And you can add him/her back to your Comm100 account. However, this API should not be used if the contact has opted out of receiving all emails. Instead, you must unsubscribe this contact. 2.6.1 Syntax Public Error DeleteContactById(int contactid) 2.6.2 Input int contactid 2.6.3 Output Error int ErrorCode string ErrorMessage 2.6.4 Parameters contactid: The unique Id of a contact ErrorCode: Error Code ; No error is detected when it's 0. ErrorMessage: Detailed error information 2.6.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/deletecontactbyid" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader>

</soap:header> <DeleteContactById xmlns="http://tempuri.org/"> <contactid>int</contactid> </DeleteContactById> HTTP/1.1 200 OK <DeleteContactByIdResponse xmlns="http://tempuri.org/"> <DeleteContactByIdResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </DeleteContactByIdResult> </DeleteContactByIdResponse> 2.6.6 Examples 2.6.6.1 C# //Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; Error tmpe = tmpemailmarketingapi. DeleteContactById(contactId as int);

2.7 DeleteContactByEmailAddress You can remove a contact by the Contact Id. Removing a contact doesn't mean that this contact unsubscribed from receiving emails. It means the contact simply does not exist in your contact list. And you can add him/her back to your Comm100 account. However, this API should not be used if the contact has opted out of receiving all emails. Instead, you must unsubscribe this contact. 2.7.1 Syntax Public Error DeleteContactByEmailAddress(string emailaddress) 2.7.2 Input string emailaddress 2.7.3 Output Error int ErrorCode string ErrorMessage 2.7.4 Parameters emailaddress: The email address of a contact ErrorCode: Error Code ; No error is detected when it's 0. ErrorMessage: Detailed error information 2.7.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/deletecontactbyemailaddress"

<soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <DeleteContactByEmailAddress xmlns="http://tempuri.org/"> <emailaddress>string</emailaddress> </DeleteContactByEmailAddress> HTTP/1.1 200 OK <DeleteContactByEmailAddressResponse xmlns="http://tempuri.org/"> <DeleteContactByEmailAddressResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </DeleteContactByEmailAddressResult> </DeleteContactByEmailAddressResponse> 2.7.6 Examples 2.7.6.1 C# //Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; Error tmpe = tmpemailmarketingapi. DeleteContactByEmailAddress (emailaddress as string);

2.8 GetAllMailingLists You can get a list of the information of your mailing lists in your site account. 2.8.1 Syntax Public MailingListsOutput GetAllMailingLists() 2.8.2 Input 2.8.3 Output MailingListsOutput Error Error MailingList[] mailinglists 2.8.4 Parameters MailingList: A collection of names and email addresses which you use to send newsletter to multiple recipients. MailingList int Id string Name string Description Id: The unique number of a mailing list. Name: The name of a mailing list. Description: The description of a mailing list. Error: A struct consisting of error code and error message Error int ErrorCode //error code (No error is detected when it's 0.) string ErrorMessage //error message (detailed error information)

2.8.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/getallmailinglists" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <GetAllMailingLists xmlns="http://tempuri.org/" /> HTTP/1.1 200 OK <GetAllMailingListsResponse xmlns="http://tempuri.org/"> <GetAllMailingListsResult> <Error> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </Error> <MailingLists> <MailingList> <Id>int</Id> <Name>string</Name> <Description>string</Description> </MailingList> <MailingList> <Id>int</Id> <Name>string</Name> <Description>string</Description> </MailingList> </MailingLists>

</GetAllMailingListsResult> </GetAllMailingListsResponse> 2.8.6 Examples 2.8.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; MailingListOutput tmpo = tmpemailmarketingapi. GetAllMailingLists (); 2.9 AddMailingList You can create a new contact in your Comm100 account. 2.9.1 Syntax Public IntValue AddMailingList(string name, string desctiption) 2.9.2 Input string name, string desctiption 2.9.3 Output IntValue Error Error int Value

2.9.4 Parameters Name: The name of a mailing list. Description: The description of a mailing list. Value: The unique Id of a contact. Error: A struct consisting of error code and error message. Error int ErrorCode //error code (No error is detected when it's 0.) string ErrorMessage //error message (detailed error information) 2.9.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/addmailinglist" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <AddMailingList xmlns="http://tempuri.org/"> <name>string</name> <description>string</description> </AddMailingList> HTTP/1.1 200 OK

<AddMailingListResponse xmlns="http://tempuri.org/"> <AddMailingListResult> <Error> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </Error> <Value>int</Value> </AddMailingListResult> </AddMailingListResponse> 2.9.6 Examples 2.9.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; IntValue tmpi = tmpemailmarketingapi.addmailinglist(name as string, description as string); 2.10 UpdateMailingList You can update the information of a mailing list. 2.10.1 Syntax Public Error UpdateMailingList(int mailinglistid, string name, string description) 2.10.2 Input int mailinglistid, string name, string description 2.10.3 Output

Error int ErrorCode string ErrorMessage 2.10.4 Parameters MailingListId: The unique number of a mailing list. Name: The name of mailing list. Description: The description of a mailing list. ErrorCode: Error Code ; No error is detected when it's 0. ErrorMessage: Detailed error information 2.10.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/updatemailinglist" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <UpdateMailingList xmlns="http://tempuri.org/"> <mailinglistid>int</mailinglistid> <name>string</name> <description>string</description> </UpdateMailingList>

HTTP/1.1 200 OK <UpdateMailingListResponse xmlns="http://tempuri.org/"> <UpdateMailingListResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </UpdateMailingListResult> </UpdateMailingListResponse> 2.10.6 Examples 2.10.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; Error tmpe = tmpemailmarketingapi.updatemailinglist (Id as int, name as string, description as string); 2.11 ClearMailingList You can clear all the information of a mailing list. However, the members belongs to this mailing list won't be removed from the contact list. 2.11.1 Syntax Public Error ClearMailingList(int mailinglistid)

2.11.2 Input int mailinglistid 2.11.3 Output Error int ErrorCode string ErrorMessage 2.11.4 Parameters MailingListId: The unique number of a mailing list. ErrorCode: Error Code ; No error is detected when it's 0. ErrorMessage: Detailed error information 2.11.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/clearmailinglist" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <ClearMailingList xmlns="http://tempuri.org/"> <mailinglistid>int</mailinglistid> </ClearMailingList> HTTP/1.1 200 OK

<ClearMailingListResponse xmlns="http://tempuri.org/"> <ClearMailingListResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </ClearMailingListResult> </ClearMailingListResponse> 2.11.6 Examples 2.11.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; Error tmpe = tmpemailmarketingapi.clearmailinglist (mailinglistid as int); 2.12 GetAllMembersOfMailingList You can have a list of members belongs to a specific mailing list. 2.12.1 Syntax Public MembersOutput GetAllMembersOfMailingList(int mailinglistid) 2.12.2 Input int mailinglistid

2.12.3 Output MembersOutput Error Error Memeber[] Members 2.12.4 Parameters Member: A subscribed contact/user belongs to a certain mailing list. Member int MailingListId int UserOrContactId string EmailAddress string FirstName string LastName int Age EnumGender Gender EnumGender Male Female It's a Secret string Occupation string Organization string Title string Phone string Mobile string Fax string HomePage string Interests string Address1 string Address2 string City string StateOrProvince string Country string ZipOrPostalCode string JoinTime string Source string Status

MailingListId: The unique Id of a mailing list. UserorContactId: The unique Id of a user or a contact. EmailAddress: The email address of a subscribed member. FirstName: The first name of a subscribed member. LastName: The last name of a subscribed member. Age: The age of a subscribed member. Gender: The gender of a subscribed member. Occupation: The occupation of a subscribed member. Organization: The organization which a subscribed member works for. Title: The title of a subscribed member. Phone: The phone number of a subscribed member. Mobile: The mobile number of a subscribed member. Fax: The fax number subscribed member. HomePage: Member's company home page of Interests: Member's Interests. Address1: Member 's Address Address2: Member's Address City: The city in which a subscribed member locates. StateOrProvince: The state or province in which a subscribed member locates. Country: The country in which a subscribed member locates. ZipOrPostalCode: The zip/postal code of a subscribed member 's location. JoinTime: The time when a subscribed member is added in your Comm100 account. Source: From where a subscribed member is added into your Comm100 account. Status: The status of a member in a specific mailing list. Error: A struct consisting of error code and error message Error int ErrorCode //error code (No error is detected when it's 0.) string ErrorMessage //error message (detailed error information) 2.12.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost

SOAPAction: "http://tempuri.org/getallmembersofmailinglist" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <GetAllMembersOfMailingList xmlns="http://tempuri.org/"> <mailinglistid>int</mailinglistid> </GetAllMembersOfMailingList> HTTP/1.1 200 OK <GetAllMembersOfMailingListResponse xmlns="http://tempuri.org/"> <GetAllMembersOfMailingListResult> <Error> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </Error> <Members> <Member> <MailingListId>int</MailingListId> <UserOrContactId>int</UserOrContactId> <EmailAddress>string</EmailAddress> <FirstName>string</FirstName> <LastName>string</LastName> <Age>int</Age> <Gender> Male or Female or ItsaSecret</Gender> <Occupation>string</Occupation> <Organization>string</Organization> <Title>string</Title> <Phone>string</Phone> <Mobile>string</Mobile> <Fax>string</Fax> <HomePage>string</HomePage> <Interests>string</Interests> <Address1>string</Address1> <Address2>string</Address2> <City>string</City>

<StateOrProvince>string</StateOrProvince> <Country>string</Country> <ZipOrPostalCode>string</ZipOrPostalCode> <JoinTime>string</JoinTime> <Source>string</Source> <Status>string</Status> </Member> <Member> <MailingListId>int</MailingListId> <UserOrContactId>int</UserOrContactId> <EmailAddress>string</EmailAddress> <FirstName>string</FirstName> <LastName>string</LastName> <Age>int</Age> <Gender> Male or Female or ItsaSecret</Gender> <Occupation>string</Occupation> <Organization>string</Organization> <Title>string</Title> <Phone>string</Phone> <Mobile>string</Mobile> <Fax>string</Fax> <HomePage>string</HomePage> <Interests>string</Interests> <Address1>string</Address1> <Address2>string</Address2> <City>string</City> <StateOrProvince>string</StateOrProvince> <Country>string</Country> <ZipOrPostalCode>string</ZipOrPostalCode> <JoinTime>string</JoinTime> <Source>string</Source> <Status>string</Status> </Member> </Members> </GetAllMembersOfMailingListResult> </GetAllMembersOfMailingListResponse> 2.12.6 Examples 2.12.6.1 C#

// Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; MembersOutput tmpo = tmpemailmarketingapi.getallmembersofmailinglist(mailinglistid as int); 2.13 AddAContactToMailingList You can add a contact to a specific mailing list. 2.13.1 Syntax Public Error AddAContactToMailingList(int mailinglistid, int contactid) 2.13.2 Input int mailinglistid, int contactid 2.13.3 Output Error int ErrorCode string ErrorMessage 2.13.4 Parameters MailingListId: The unique Id of a mailing list. ContactId: The unique Id of a contact. ErrorCode: Error Code ; No error is detected when it's 0. ErrorMessage: Detailed error information

2.13.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/addacontacttomailinglist" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <AddAContactToMailingList xmlns="http://tempuri.org/"> <mailinglistid>int</mailinglistid> <contactid>int</contactid> </AddAContactToMailingList> HTTP/1.1 200 OK <AddAContactToMailingListResponse xmlns="http://tempuri.org/"> <AddAContactToMailingListResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </AddAContactToMailingListResult> </AddAContactToMailingListResponse> 2.13.6 Examples 2.13.6.1 C#

// Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; Error tmpe = tmpemailmarketingapi.addacontacttomailinglist (mailinglistid as int, contactid as int); 2.14 AddMultipleContactsToMailingList You can add multiple contacts to a specific mailing list. 2.14.1 Syntax Public Error AddMultipleContactsToMailingList(int mailinglistid, int[] contactids) 2.14.2 Input int mailinglistid, int[] contactids 2.14.3 Output Error int ErrorCode string ErrorMessage 2.14.4 Parameters MailingListId: The unique Id of a mailing list. ContactIds: The Id numbers of certain contacts. ErrorCode: Error Code ; No error is detected when it's 0. ErrorMessage: Detailed error information

2.14.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/addmultiplecontactstomailinglist" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <AddMultipleContactsToMailingList xmlns="http://tempuri.org/"> <mailinglistid>int</mailinglistid> <contactids> <int>int</int> <int>int</int> </contactids> </AddMultipleContactsToMailingList> HTTP/1.1 200 OK <AddMultipleContactsToMailingListResponse xmlns="http://tempuri.org/"> <AddMultipleContactsToMailingListResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </AddMultipleContactsToMailingListResult> </AddMultipleContactsToMailingListResponse>

2.14.6 Examples 2.14.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; Error tmpe = tmpemailmarketingapi.addmultiplecontactstomailinglist(mailinglistid as int, contactids as int array); 2.15 DeleteAContactFromMailingList You can remove a contact from a mailing list, but he/she still belongs to your contacts list. 2.15.1 Syntax Public Error DeleteAContactFromMailingList(int mailinglistid, int contactid) 2.15.2 Input int mailinglistid, int contactid 2.15.3 Output Error int ErrorCode string ErrorMessage 2.15.4 Parameters MailingListId: The unique Id of a mailing list. ContactId: The unique Id of a contact.

ErrorCode: Error Code ; No error is detected when it's 0. ErrorMessage: Detailed error information 2.15.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/deleteacontactfrommailinglist" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <DeleteAContactFromMailingList xmlns="http://tempuri.org/"> <mailinglistid>int</mailinglistid> <contactid>int</contactid> </DeleteAContactFromMailingList> HTTP/1.1 200 OK <DeleteAContactFromMailingListResponse xmlns="http://tempuri.org/"> <DeleteAContactFromMailingListResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </DeleteAContactFromMailingListResult> </DeleteAContactFromMailingListResponse>

2.15.6 Examples 2.15.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; Error tmpe = tmpemailmarketingapi.deleteacontactfrommailinglist (mailinglistid as int, contactid as int); 2.16 DeleteMultipleContactsFromMailingList You can remove multiple contact from a mailing list, but the members still belong to your contacts list. 2.16.1 Syntax Public Error DeleteMultipleContactsFromMailingList(int mailinglistid, int[] contactids) 2.16.2 Input int mailinglistid, int[] contactids 2.16.3 Output Error int ErrorCode string ErrorMessage 2.16.4 Parameters MailingListId: The unique Id of a mailing list. ContactIds: The Id numbers of certain contacts.

ErrorCode: Error Code ; No error is detected when it's 0. ErrorMessage: Detailed error information 2.16.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/deletemultiplecontactsfrommailinglist" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <DeleteMultipleContactsFromMailingList xmlns="http://tempuri.org/"> <mailinglistid>int</mailinglistid> <contactids> <int>int</int> <int>int</int> </contactids> </DeleteMultipleContactsFromMailingList> HTTP/1.1 200 OK <DeleteMultipleContactsFromMailingListResponse xmlns="http://tempuri.org/"> <DeleteMultipleContactsFromMailingListResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </DeleteMultipleContactsFromMailingListResult> </DeleteMultipleContactsFromMailingListResponse>

2.16.6 Examples 2.16.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; Error tmpe = tmpemailmarketingapi.deletemultiplecontactsfrommailinglist(mailinglistid as int, contactids as int array); 2.17 GetMemberByMailingListIdAndContactId You can obtain a member's detailed information by mailing list and the Contact Id. 2.17.1 Syntax Public MemberOutput GetMemberByMailingListIdAndContactId(int mailinglistid, int userorcontactid) 2.17.2 Input int mailinglistid, int userorcontactid 2.17.3 Output MemberOutput Error Error Member Member

2.17.4 Parameters Member: A subscribed contact/user belongs to a certain mailing list. Member int MailingListId int UserOrContactId string EmailAddress string FirstName string LastName int Age EnumGender Gender EnumGender Male Female It's a Secret string Occupation string Organization string Title string Phone string Mobile string Fax string HomePage string Interests string Address1 string Address2 string City string StateOrProvince string Country string ZipOrPostalCode string JoinTime string Source string Status MailingListId: The unique Id of a mailing list. UserorContactId: The unique Id of a user or a contact. EmailAddress: The email address of a subscribed member. FirstName: The first name of a subscribed member. LastName: The last name of a subscribed member. Age: The age of a subscribed member.

Gender: Contact's gender. (EnumGender is an enumerated type provided for your direct use.) Occupation: The occupation of a subscribed member. Organization: The organization which a subscribed member works for. Title: The title of a subscribed member. Phone: The phone number of a subscribed member. Mobile: The mobile number of a subscribed member. Fax: The fax number subscribed member. HomePage: Member's company home page of Interests: Member's Interests. Address1: Member 's Address Address2: Member's Address City: The city in which a subscribed member locates. StateOrProvince: The state or province in which a subscribed member locates. Country: The country in which a subscribed member locates. ZipOrPostalCode: The zip/postal code of a subscribed member 's location. JoinTime: The time when a subscribed member is added in your Comm100 account. Source: From where a subscribed member is added into your Comm100 account. Status: The status of a member in a specific mailing list. Error: A struct consisting of error code and error message Error int ErrorCode //error code (No error is detected when it's 0.) string ErrorMessage //error message (detailed error information) 2.17.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/getmemberbymailinglistidandcontactid" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/">

<SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <GetMemberByMailingListIdAndContactId xmlns="http://tempuri.org/"> <mailinglistid>int</mailinglistid> <userorcontactid>int</userorcontactid> </GetMemberByMailingListIdAndContactId> HTTP/1.1 200 OK <GetMemberByMailingListIdAndContactIdResponse xmlns="http://tempuri.org/"> <GetMemberByMailingListIdAndContactIdResult> <Error> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </Error> <Member> <MailingListId>int</MailingListId> <UserOrContactId>int</UserOrContactId> <EmailAddress>string</EmailAddress> <FirstName>string</FirstName> <LastName>string</LastName> <Age>int</Age> <Gender>Male or Female or ItsaSecret</Gender> <Occupation>string</Occupation> <Organization>string</Organization> <Title>string</Title> <Phone>string</Phone> <Mobile>string</Mobile> <Fax>string</Fax> <HomePage>string</HomePage> <Interests>string</Interests> <Address1>string</Address1> <Address2>string</Address2> <City>string</City> <StateOrProvince>string</StateOrProvince> <Country>string</Country> <ZipOrPostalCode>string</ZipOrPostalCode> <JoinTime>string</JoinTime> <Source>string</Source> <Status>string</Status> </Member>

</GetMemberByMailingListIdAndContactIdResult> </GetMemberByMailingListIdAndContactIdResponse> 2.17.6 Examples 2.17.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; MemberOutput tmpo = tmpemailmarketingapi.getmemberbymailinglistidandcontactid (mailinglistid as int, userorcontactid as int); 2.18 GetMemberByMailingListIdAndEmailAddress You can obtain multiple members' detailed information by mailing list and the Contact Id. 2.18.1 Syntax Public MembersOutput GetMembersByMailingListIdAndEmailAddress(int mailinglistid, string emailaddress) 2.18.2 Input int mailinglistid, string emailaddress 2.18.3 Output MemberOutput Error Error Member Member

2.18.4 Parameters Member: A subscribed contact/user belongs to a certain mailing list. Member int MailingListId int UserOrContactId string EmailAddress string FirstName string LastName int Age EnumGender Gender EnumGender Male Female It's a Secret string Occupation string Organization string Title string Phone string Mobile string Fax string HomePage string Interests string Address1 string Address2 string City string StateOrProvince string Country string ZipOrPostalCode string JoinTime string Source string Status MailingListId: The unique Id of a mailing list. UserorContactId: The unique Id of a user or a contact. EmailAddress: The email address of a subscribed member. FirstName: The first name of a subscribed member. LastName: The last name of a subscribed member. Age: The age of a subscribed member.

Gender: Contact's gender. (EnumGender is an enumerated type provided for your direct use.) Occupation: The occupation of a subscribed member. Organization: The organization which a subscribed member works for. Title: The title of a subscribed member. Phone: The phone number of a subscribed member. Mobile: The mobile number of a subscribed member. Fax: The fax number subscribed member. HomePage: Member's company home page of Interests: Member's Interests. Address1: Member 's Address Address2: Member's Address City: The city in which a subscribed member locates. StateOrProvince: The state or province in which a subscribed member locates. Country: The country in which a subscribed member locates. ZipOrPostalCode: The zip/postal code of a subscribed member 's location. JoinTime: The time when a subscribed member is added in your Comm100 account. Source: From where a subscribed member is added into your Comm100 account. Status: The status of a member in a specific mailing list. Error: A struct consisting of error code and error message Error int ErrorCode //error code (No error is detected when it's 0.) string ErrorMessage //error message (detailed error information) 2.18.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/getmembersbymailinglistidandemailaddress" <soap:header>

<CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <GetMembersByMailingListIdAndEmailAddress xmlns="http://tempuri.org/"> <mailinglistid>int</mailinglistid> <emailaddress>string</emailaddress> </GetMembersByMailingListIdAndEmailAddress> HTTP/1.1 200 OK <GetMembersByMailingListIdAndEmailAddressResponse xmlns="http://tempuri.org/"> <GetMembersByMailingListIdAndEmailAddressResult> <Error> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </Error> <Members> <Member> <MailingListId>int</MailingListId> <UserOrContactId>int</UserOrContactId> <EmailAddress>string</EmailAddress> <FirstName>string</FirstName> <LastName>string</LastName> <Age>int</Age> <Gender>Male or Female or ItsaSecret</Gender> <Occupation>string</Occupation> <Organization>string</Organization> <Title>string</Title> <Phone>string</Phone> <Mobile>string</Mobile> <Fax>string</Fax> <HomePage>string</HomePage> <Interests>string</Interests> <Address1>string</Address1> <Address2>string</Address2> <City>string</City> <StateOrProvince>string</StateOrProvince> <Country>string</Country> <ZipOrPostalCode>string</ZipOrPostalCode> <JoinTime>string</JoinTime>

<Source>string</Source> <Status>string</Status> </Member> <Member> <MailingListId>int</MailingListId> <UserOrContactId>int</UserOrContactId> <EmailAddress>string</EmailAddress> <FirstName>string</FirstName> <LastName>string</LastName> <Age>int</Age> <Gender>string</Gender> <Occupation>string</Occupation> <Organization>string</Organization> <Title>string</Title> <Phone>string</Phone> <Mobile>string</Mobile> <Fax>string</Fax> <HomePage>string</HomePage> <Interests>string</Interests> <Address1>string</Address1> <Address2>string</Address2> <City>string</City> <StateOrProvince>string</StateOrProvince> <Country>string</Country> <ZipOrPostalCode>string</ZipOrPostalCode> <JoinTime>string</JoinTime> <Source>string</Source> <Status>string</Status> </Member> </Members> </GetMembersByMailingListIdAndEmailAddressResult> </GetMembersByMailingListIdAndEmailAddressResponse> 2.18.6 Examples 2.18.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; MemberOutput tmpo = tmpemailmarketingapi.getmembersbymailinglistidandemailaddress(mailinglistid as int, emailaddress as string);

2.19 UnsubscribeFromMailingList You can unsubscribe a member from a specific mailing list. This recipient won't receive any emails sent by you from this mailing list. 2.19.1 Syntax Public Error UnsubscribeFromMailingList(int mailinglistid, int userorcontactid) 2.19.2 Input int mailinglistid, int userorcontactid 2.19.3 Output Error 2.19.4 Parameters int ErrorCode string ErrorMessage MailingListId: The unique Id of a mailing list. UserorContactId: The unique Id of a contact or a user. ErrorCode: Error Code ; No error is detected when it's 0. ErrorMessage: Detailed error information 2.19.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/unsubscribefrommailinglist" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header>

<UnsubscribeFromMailingList xmlns="http://tempuri.org/"> <mailinglistid>int</mailinglistid> <userorcontactid>int</userorcontactid> </UnsubscribeFromMailingList> HTTP/1.1 200 OK <UnsubscribeFromMailingListResponse xmlns="http://tempuri.org/"> <UnsubscribeFromMailingListResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </UnsubscribeFromMailingListResult> </UnsubscribeFromMailingListResponse> 2.19.6 Examples 2.19.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; Error tmpe = tmpemailmarketingapi.unsubscribefrommailinglist(mailinglistid as int, userorcontactids as int);

2.20 UnsubscribeFromAllMailingList You can unsubscribe a member from all the mailing lists. This recipient won't receive any emails sent by you. 2.20.1 Syntax Public Error UnsubscribeFromAllMailingLists(int userorcontactid) 2.20.2 Input int userorcontactid 2.20.3 Output Error int ErrorCode string ErrorMessage 2.20.4 Parameters userorcontactid: The unique Id of a contact or a user. ErrorCode: Error Code ; No error is detected when it's 0. ErrorMessage: Detailed error information 2.20.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/unsubscribefromallmailinglists" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email>

<Password>string</Password> </CredentialSoapHeader> </soap:header> <UnsubscribeFromAllMailingLists xmlns="http://tempuri.org/"> <userorcontactid>int</userorcontactid> </UnsubscribeFromAllMailingLists> HTTP/1.1 200 OK <UnsubscribeFromAllMailingListsResponse xmlns="http://tempuri.org/"> <UnsubscribeFromAllMailingListsResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </UnsubscribeFromAllMailingListsResult> </UnsubscribeFromAllMailingListsResponse> 2.20.6 Examples 2.20.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; Error tmpe = tmpemailmarketingapi.unsubscribefromallmailinglists(userorcontactids as int);

2.21 GetAllEmails You can get a list of the newsletters you created in your site account. 2.21.1 Syntax Public EmailsOutput GetAllEmails() 2.21.2 Input 2.21.3 Output EmailsOutput Error Error Email[] Emails 2.21.4 Parameters Email: The newsletter you want to send to your clients. Email int Id string Name string ScheduleDate string SentDate string Status string Subject string FromName string FromEmailAddress string ReplyEmailAddress bool IfDisplayUnsubscribeLinkInHeader bool IfDisplayUnsubscribeLinkInFooter bool IfDisplayUpdateSubscriptionLinkInFooter bool IfDisplayForwardLinkInFooter bool IfDisplayViewAsWebPageLinkInHeader bool IfDisplayReminderMessageInHeader string EmailContent MailingList[] MailingLists Id: The unique Id of an email you created in the Comm100 Email Marketing module. Name: The name of a(n) email/newsletter.

ScheduleDate: The time you scheduled to send out your email. SentDate: The time an email is sent out. Status: The status of an email. Subject: The subject of an email. FromName: The sender name you use to send out your newsletter. FromEmailAddress: The email address you use to send out your newsletter. ReplyEmailAddress: The email address you use to receive responses from your clients. IfDisplayUnsubscribeLinkInHeader: Whether you select 'Display Unsubscribe Link in Header'. IfDisplayUnsubscribeLinkInFooter: Whether you select 'Display Unsubscribe Link in Footer'. IfDisplayUpdateSubscriptionLinkInFooter: Whether you select 'Display Update Subscription Link in Footer'. IfDisplayForwardLinkInFooter: Whether you select 'Dispaly Forward Link in Footer'. IfDisplayViewAsWebPageLinkInHeader: Whether you select 'Display View as Web Page Link in Header. IfDisplayReminderMessageInHeader: Whether you select 'Display Reminder Message in Header'. EmailContent: The main contact of an email. MailingLists: The mailing list you want to send emails to. Error: A struct consisting of error code and error message Error int ErrorCode //error code (No error is detected when it's 0.) string ErrorMessage //error message (detailed error information) 2.21.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/getallemails" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header>

<GetAllEmails xmlns="http://tempuri.org/" /> HTTP/1.1 200 OK <GetAllEmailsResponse xmlns="http://tempuri.org/"> <GetAllEmailsResult> <Error> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </Error> <Emails> <Email> <Id>int</Id> <Name>string</Name> <ScheduleDate>string</ScheduleDate> <SentDate>string</SentDate> <Status>string</Status> <Subject>string</Subject> <FromName>string</FromName> <FromEmailAddress>string</FromEmailAddress> <ReplyEmailAddress>string</ReplyEmailAddress> <IfDisplayUnsubscribeLinkInHeader>boolean</IfDisplayUnsubscribeLinkInHe ader> <IfDisplayUnsubscribeLinkInFooter>boolean</IfDisplayUnsubscribeLinkInFo oter> <IfDisplayUpdateSubscriptionLinkInFooter>boolean</IfDisplayUpdateSubscr iptionlinkinfooter> <IfDisplayForwardLinkInFooter>boolean</IfDisplayForwardLinkInFooter> <IfDisplayViewAsWebPageLinkInHeader>boolean</IfDisplayViewAsWebPageLink InHeader> <IfDisplayReminderMessageInHeader>boolean</IfDisplayReminderMessageInHe ader> <EmailContent>string</EmailContent> <MailingLists xsi:nil="true" /> </Email> <Email> <Id>int</Id> <Name>string</Name> <ScheduleDate>string</ScheduleDate>

<SentDate>string</SentDate> <Status>string</Status> <Subject>string</Subject> <FromName>string</FromName> <FromEmailAddress>string</FromEmailAddress> <ReplyEmailAddress>string</ReplyEmailAddress> <IfDisplayUnsubscribeLinkInHeader>boolean</IfDisplayUnsubscribeLinkInHe ader> <IfDisplayUnsubscribeLinkInFooter>boolean</IfDisplayUnsubscribeLinkInFo oter> <IfDisplayUpdateSubscriptionLinkInFooter>boolean</IfDisplayUpdateSubscr iptionlinkinfooter> <IfDisplayForwardLinkInFooter>boolean</IfDisplayForwardLinkInFooter> <IfDisplayViewAsWebPageLinkInHeader>boolean</IfDisplayViewAsWebPageLink InHeader> <IfDisplayReminderMessageInHeader>boolean</IfDisplayReminderMessageInHe ader> <EmailContent>string</EmailContent> <MailingLists xsi:nil="true" /> </Email> </Emails> </GetAllEmailsResult> </GetAllEmailsResponse> 2.21.6 Examples 2.21.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; EmailsOutput tmpo = tmpemailmarketingapi.getallemails();

2.22 GetEmailById You can obtain an email by Email Id. 2.22.1 Syntax Public EmailOutput GetEmailById(int emailid) 2.22.2 Input int emailid 2.22.3 Output EmailsOutput Error Error Email Email 2.22.4 Parameters Email: The newsletter you want to send to your clients. Email int Id string Name string ScheduleDate string SentDate string Status string Subject string FromName string FromEmailAddress string ReplyEmailAddress bool IfDisplayUnsubscribeLinkInHeader bool IfDisplayUnsubscribeLinkInFooter bool IfDisplayUpdateSubscriptionLinkInFooter bool IfDisplayForwardLinkInFooter bool IfDisplayViewAsWebPageLinkInHeader bool IfDisplayReminderMessageInHeader string EmailContent MailingList[] MailingLists

Id: The unique Id of an email you created in the Comm100 Email Marketing module. Name: The name of a(n) email/newsletter. ScheduleDate: The time you scheduled to send out your email. SentDate: The time an email is sent out. Status: The status of an email. Subject: The subject of an email. FromName: The sender name you use to send out your newsletter. FromEmailAddress: The email address you use to send out your newsletter. ReplyEmailAddress: The email address you use to receive responses from your clients. IfDisplayUnsubscribeLinkInHeader: Whether you select 'Display Unsubscribe Link in Header'. IfDisplayUnsubscribeLinkInFooter: Whether you select 'Display Unsubscribe Link in Footer'. IfDisplayUpdateSubscriptionLinkInFooter: Whether you select 'Display Update Subscription Link in Footer'. IfDisplayForwardLinkInFooter: Whether you select 'Dispaly Forward Link in Footer'. IfDisplayViewAsWebPageLinkInHeader: Whether you select 'Display View as Web Page Link in Header. IfDisplayReminderMessageInHeader: Whether you select 'Display Reminder Message in Header'. EmailContent: The main contact of an email. MailingLists: The mailing list you want to send emails to. Error: A struct consisting of error code and error message Error int ErrorCode //error code (No error is detected when it's 0.) string ErrorMessage //error message (detailed error information) 2.22.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/getemailbyid" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password>

</CredentialSoapHeader> </soap:header> <GetEmailById xmlns="http://tempuri.org/"> <emailid>int</emailid> </GetEmailById> HTTP/1.1 200 OK <GetEmailByIdResponse xmlns="http://tempuri.org/"> <GetEmailByIdResult> <Error> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </Error> <Email> <Id>int</Id> <Name>string</Name> <ScheduleDate>string</ScheduleDate> <SentDate>string</SentDate> <Status>string</Status> <Subject>string</Subject> <FromName>string</FromName> <FromEmailAddress>string</FromEmailAddress> <ReplyEmailAddress>string</ReplyEmailAddress> <IfDisplayUnsubscribeLinkInHeader>boolean</IfDisplayUnsubscribeLinkInHe ader> <IfDisplayUnsubscribeLinkInFooter>boolean</IfDisplayUnsubscribeLinkInFo oter> <IfDisplayUpdateSubscriptionLinkInFooter>boolean</IfDisplayUpdateSubscr iptionlinkinfooter> <IfDisplayForwardLinkInFooter>boolean</IfDisplayForwardLinkInFooter> <IfDisplayViewAsWebPageLinkInHeader>boolean</IfDisplayViewAsWebPageLink InHeader> <IfDisplayReminderMessageInHeader>boolean</IfDisplayReminderMessageInHe ader> <EmailContent>string</EmailContent> <MailingLists> <MailingList xsi:nil="true" /> <MailingList xsi:nil="true" />

</MailingLists> </Email> </GetEmailByIdResult> </GetEmailByIdResponse> 2.22.6 Examples 2.22.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; EmailsOutput tmpo = tmpemailmarketingapi.getemailbyid(emailid as int); 2.23 AddEmail You can create a new newsletter in your Comm100 account. Please provide the email content with either the rich html format or plain text format, when you are creating a newsletter. With this API, the email you created cannot be used as template and the initial status of this email is Draft. If you want to send out the newly created email, you can use the ScheduleOrSendEmail API. 2.23.1 Syntax public IntValue AddEmail(string name, string subject, string fromname, string fromemailaddress, string replyemailaddress,bool ifdisplayunsubscribelinkinheader, bool ifdisplayupdatesubscriptionlinkinfooter,bool ifdisplayforwardlinkinfooter, bool

ifdisplayviewaswebpagelinkinheader, bool ifdisplayremindermessageinheader, bool ifhtml, string emailcontent) 2.23.2 Input string name, string subject, string fromname, string fromemailaddress, string replyemailaddress,bool ifdisplayunsubscribelinkinheader, bool ifdisplayupdatesubscriptionlinkinfooter,bool ifdisplayforwardlinkinfooter, bool ifdisplayviewaswebpagelinkinheader, bool ifdisplayremindermessageinheader, bool ifhtml, string emailcontent 2.23.3 Output IntValue Error Error int Value 2.23.4 Parameters name: The name of a(n) email/newsletter. subject: The subject of an email. fromname: The sender name you use to send out your newsletter. fromemailaddress: The verified email address you use to send out your newsletter. replyemailaddress: The verified email address you use to receive responses from your clients. ifdisplayunsubscribelinkinheader: Whether you select 'Display Unsubscribe Link in Header'. ifdisplayunsubscribelinkinfooter: Whether you select 'Display Unsubscribe Link in Footer'. ifdisplayupdatesubscriptionlinkinfooter: Whether you select 'Display Update Subscription Link in Footer'. ifdisplayforwardlinkinfooter: Whether you select 'Dispaly Forward Link in Footer'. ifdisplayviewaswebpagelinkinheader: Whether you select 'Display View as Web Page Link in Header. ifdisplayremindermessageinheader: Whether you select 'Display Reminder Message in Header'. if HTML: Whether the email is rich HTML. emailcontent: The main contact of an email. Value: The unique Id of a contact Error: A struct consisting of error code and error message Error int ErrorCode //error code (No error is detected when it's 0.) string ErrorMessage //error message (detailed error information)

2.23.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/addemail" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <AddEmail xmlns="http://tempuri.org/"> <name>string</name> <subject>string</subject> <fromname>string</fromname> <fromemailaddress>string</fromemailaddress> <replyemailaddress>string</replyemailaddress> <ifdisplayunsubscribelinkinheader>boolean</ifdisplayunsubscribelinkinhe ader> <ifdisplayupdatesubscriptionlinkinfooter>boolean</ifdisplayupdatesubscr iptionlinkinfooter> <ifdisplayforwardlinkinfooter>boolean</ifdisplayforwardlinkinfooter> <ifdisplayviewaswebpagelinkinheader>boolean</ifdisplayviewaswebpagelink InHeader> <ifdisplayremindermessageinheader>boolean</ifdisplayremindermessageinhe ader> <ifhtml>boolean</ifhtml> <emailcontent>string</emailcontent> </AddEmail> HTTP/1.1 200 OK

<AddEmailResponse xmlns="http://tempuri.org/"> <AddEmailResult> <Error> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </Error> <Value>int</Value> </AddEmailResult> </AddEmailResponse> 2.23.6 Examples 2.23.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; IntValue tmpi = tmpemailmarketingapi.addemail(name as string, subject as string, fromname as string, fromemailaddress as string, replyemailaddress as string, ifdisplayunsubscribelinkinheader as bool, ifdisplayupdatesubscriptionlinkinfooter as bool, ifdisplayforwardlinkinfooter as bool, ifdisplayviewaswebpagelinkinheader as bool, ifdisplayremindermessageinheader as bool, ifhtml as bool, emailcontent as string); 2.24 UpdateEmail You can modify and update an email's information.

2.24.1 Syntax Public Error UpdateEmail(int emailid, string subject, string fromname, string fromemailaddress, string replyemailaddress, bool ifdisplayunsubscribelinkinheader, bool ifdisplayunsubscribelinkinfooter, bool ifdisplayupdatesubscriptionlinkinfooter, bool ifdisplayforwardlinkinfooter, bool ifdisplayviewaswebpagelinkinheader, bool ifdisplayremindermessageinheader, string emailcontent) 2.24.2 Input int emailid, string subject, string fromname, string fromemailaddress, string replyemailaddress, bool ifdisplayunsubscribelinkinheader, bool ifdisplayunsubscribelinkinfooter, bool ifdisplayupdatesubscriptionlinkinfooter, bool ifdisplayforwardlinkinfooter, bool ifdisplayviewaswebpagelinkinheader, bool ifdisplayremindermessageinheader, string emailcontent 2.24.3 Output Error int ErrorCode string ErrorMessage 2.24.4 Parameters emailid: The Unique number of an Email. Name: The name of a(n) email/newsletter. Subject: The subject of an email. FromName: The sender name you use to send out your newsletter. FromEmailAddress: The verified email address you use to send out your newsletter. ReplyEmailAddress: The verified email address you use to receive responses from your clients. IfDisplayUnsubscribeLinkInHeader: Whether you select 'Display Unsubscribe Link in Header'. IfDisplayUnsubscribeLinkInFooter: Whether you select 'Display Unsubscribe Link in Footer'. IfDisplayUpdateSubscriptionLinkInFooter: Whether you select 'Display Update Subscription Link in Footer'. IfDisplayForwardLinkInFooter: Whether you select 'Dispaly Forward Link in Footer'. IfDisplayViewAsWebPageLinkInHeader: Whether you select 'Display View as Web Page Link in Header. IfDisplayReminderMessageInHeader: Whether you select 'Display Reminder Message in Header'. If HTML: Whether the email is rich HTML. EmailContent: The main contact of an email. ErrorCode: Error Code ; No error is detected when it's 0.

ErrorMessage: Detailed error information 2.24.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/updateemail" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header> <UpdateEmail xmlns="http://tempuri.org/"> <emailid>int</emailid> <subject>string</subject> <fromname>string</fromname> <fromemailaddress>string</fromemailaddress> <replyemailaddress>string</replyemailaddress> <ifdisplayunsubscribelinkinheader>boolean</ifdisplayunsubscribelinkinhe ader> <ifdisplayunsubscribelinkinfooter>boolean</ifdisplayunsubscribelinkinfo oter> <ifdisplayupdatesubscriptionlinkinfooter>boolean</ifdisplayupdatesubscr iptionlinkinfooter> <ifdisplayforwardlinkinfooter>boolean</ifdisplayforwardlinkinfooter> <ifdisplayviewaswebpagelinkinheader>boolean</ifdisplayviewaswebpagelink InHeader> <ifdisplayremindermessageinheader>boolean</ifdisplayremindermessageinhe ader> <emailcontent>string</emailcontent> </UpdateEmail> HTTP/1.1 200 OK

<UpdateEmailResponse xmlns="http://tempuri.org/"> <UpdateEmailResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </UpdateEmailResult> </UpdateEmailResponse> 2.24.6 Examples 2.24.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; Error tmpe = tmpemailmarketingapi.updateemail(emailid as int, subject as string, fromname as string, fromemailaddress as string, replyemailaddress as string, ifdisplayunsubscribelinkinheader as bool, ifdisplayunsubscribelinkinfooter as bool, ifdisplayupdatesubscriptionlinkinfooter as bool, ifdisplayforwardlinkinfooter as bool, ifdisplayviewaswebpagelinkinheader as bool, ifdisplayremindermessageinheader as bool, emailcontent as string) 2.25 ScheduleOrSendEmail You can schedule the time to send out an email or send the email immediately. 2.25.1 Syntax Public Error ScheduleOrSendEmail(int emailid, bool ifschedule, DateTime scheduletime, int[] mailinglistids)

2.25.2 Input int emailid, bool ifschedule, DateTime scheduletime, int[] mailinglistids) 2.25.3 Output Error int ErrorCode string ErrorMessage 2.25.4 Parameters emailid: The unique Id of an email. ifschedule: Whether you have scheduled the send date for an email. scheduletime: The time that you schedule to send out your newsletter. (The time is based on the time zone you have set in Admin Site Profile.) mailinglistids: The unique Id of the mailing list(s) that you want to send your email to. ErrorCode: Error Code ; No error is detected when it's 0. ErrorMessage: Detailed error information 2.25.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/scheduleorsendemail" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password>

</CredentialSoapHeader> </soap:header> <ScheduleOrSendEmail xmlns="http://tempuri.org/"> <emailid>int</emailid> <ifschedule>boolean</ifschedule> <scheduletime>datetime</scheduletime> <mailinglistids> <int>int</int> <int>int</int> </mailinglistids> </ScheduleOrSendEmail> HTTP/1.1 200 OK <ScheduleOrSendEmailResponse xmlns="http://tempuri.org/"> <ScheduleOrSendEmailResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </ScheduleOrSendEmailResult> </ScheduleOrSendEmailResponse> 2.25.6 Examples 2.25.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; Error tmpe = tmpemailmarketingapi. ScheduleOrSendEmail(emailId as int, ifschedule as bool, scheduletime as Datetime, mailinglistids as int array);

2.26 DeleteEmail You can delete an existing email in the Comm100 Email Marketing module. 2.26.1 Syntax Public Error DeleteEmail(int emailid) 2.26.2 Input int emailid 2.26.3 Output Error int ErrorCode string ErrorMessage 2.26.4 Parameters emailid: The unique Id of an email. ErrorCode: Error Code ; No error is detected when it's 0. ErrorMessage: Detailed error information 2.26.5 Sample SOAP 1.1 Request & Response POST /NewsletterAPI/emailmarketingapi.asmx HTTP/1.1 Host: localhost SOAPAction: "http://tempuri.org/deleteemail" <soap:header> <CredentialSoapHeader xmlns="http://tempuri.org/"> <SiteId>int</SiteId> <Email>string</Email> <Password>string</Password> </CredentialSoapHeader> </soap:header>

<DeleteEmail xmlns="http://tempuri.org/"> <emailid>int</emailid> </DeleteEmail> HTTP/1.1 200 OK <DeleteEmailResponse xmlns="http://tempuri.org/"> <DeleteEmailResult> <ErrorCode>int</ErrorCode> <ErrorMessage>string</ErrorMessage> </DeleteEmailResult> </DeleteEmailResponse> 2.26.6 Examples 2.26.6.1 C# // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; Error tmpe = tmpemailmarketingapi.deleteemail(emailid as int);

3 Enumeration Reference name EnumGender Description Contact's gender 3.1 EnumGender Enumerators Values Interpretation Male 0 Male Female 1 Female ItsaSecret 2 It's a Secret

4 Create contact and add into mailing list You can create a new contact and add him/her into an existing mailing list. The sample code is as follows: // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; IntValue tmpi = tmpemailmarketingapi. AddContact (email as string, firstname as string, lastname as string, age as int, gender as EnumGender, occupation as string, organization as string, title as string, phone as string, mobile as string, fax as string, homepage as string, interests as string, address1 as string, address2 as string, city as string, stateorprovince as string, country as string, ziporpostalcode as string); if (tmpl.error.errorcode == 0) int contactid = tmpi.value; Error tmpe = tmpemailmarketingapi.addacontacttomailinglist (mailinglistid as int, contactid as int);

5 Create and send email You can create a custom email with either rich html or plain text format, and send the newsletter to your opt-in contacts. The sample code is as follows: // Authenticity Verification: please provide an Comm100 site account with administrative permission CredentialSoapHeader soapheader = new CredentialSoapHeader(); header.siteid = SiteId as int; header.email = OperatorEmail as string; header.password = Password as string; EmailMarketingAPI tmpemailmarketingapi = new EmailMarketingAPI(); tmpemailmarketingapi.credentialsoapheadervalue = soapheader; IntValue tmpi = tmpemailmarketingapi.addemail(name as string, subject as string, fromname as string, fromemailaddress as string, replyemailaddress as string, ifdisplayunsubscribelinkinheader as bool, ifdisplayupdatesubscriptionlinkinfooter as bool, ifdisplayforwardlinkinfooter as bool, ifdisplayviewaswebpagelinkinheader as bool, ifdisplayremindermessageinheader as bool, ifhtml as bool, emailcontent as string); if (tmpl.error.errorcode == 0) int emailid = tmpi.value; Error tmpe = tmpemailmarketingapi. ScheduleOrSendEmail(emailId as int, ifschedule as bool, scheduletime as Datetime, mailinglistids as int array);