Published — v. 29

WS_MailUpSend.SendNewsletter

Used to send a bulk email campaign. It supports scheduling of the campaign (if a schedule is not specified, the message is queued up immediately).


 

Method parameters

  • string SendNewsletter(string accessKey, int listID, int newsletterID, Option[] options)
    • accessKey: access key obtained using the LoginFromId method
    • newsletterID: Id of the message returned by the WS_MailUpSend.CreateNewsletter
    • options: an array of key/value pairs for options setting
      • from_email: a string containing the sender email address. If not specified, the default value for the list will be used
      • from_name: a string containing the sender name. If not specified, the default value for the list will be used
      • clear_stats: a boolean value to enable/disable the deletion of statistics referred to previous mailings of the same message
      • send_to: a mandatory string indicating to whom the message will be sent. If send_to=ALL the message is sent to all subscribers, if send_to=RECIPIENTS the message is sent to specific email addresses, if send_to=GROUPS the message is sent to subscribers to specific groups
      • recipients: a string indicating the recipients of the message. Its content depends on the value assumed by "send_to". If send_to = ALL, "recipients" parameter is ignored and the message is sent to all the recipients in the list; if send_to=RECIPIENTS, "recipients" parameter contains a list of email addresses separated by the ";" character; if send_to=GROUPS, the "recipients" parameter contains the IDs of the recipient groups, separated by the ";" character 
      • exclude: a string containing the IDs of the groups to be excluded from the sending, separated by the ";" character
      • filters: a string containing the IDs of the filters separated by the ";" character, to be used to retrieve the recipients of the message
      • filters_as: a string indicating how to apply the filters: if filters_as=AND, all the conditions in the filters have to be met; if filters_as=OR, at least one of them
      • deliverydt: a string containing date and time of scheduled delivery, in the format yyyyMMddHHmmss. If not specified, the sending starts immediately, and in case another sending is in progress the message is queued
      • timezone: an integer indicating the time zone
      • campo1… campo<nn> = in case the "recipients" parameter contains a list of email addresses, you can indicate one or more personal data fields to be updated. Each option "campo<nn>" is a string containing the values for the personal data field <nn> referred to the email addresses indicated in the "recipients" parameter. Values must be separated by the ";" character

If error code=0, the message will contain the ID of the sending

SOAP Examples

Sample requests

SOAP request (RECIPIENTS, immediate)
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ws="http://services.mailupnet.it/WS">
	<soap:Header/>
	<soap:Body>
		<ws:SendNewsletter>         
			<ws:accessKey>HzAgwRRJaAKBtkgNWpkAuURfV4SxMm6T3HJegRuSkUivKJElNNcmSQe8nqGyoM9</ws:accessKey>
			<ws:listID>2</ws:listID>
			<ws:newsletterID>84</ws:newsletterID>
			<ws:options>
				<ws:Option> <ws:Key>send_to</ws:Key> <ws:Value>RECIPIENTS</ws:Value> </ws:Option>
				<ws:Option> <ws:Key>from_name</ws:Key> <ws:Value>Your favorite dealer</ws:Value> </ws:Option>
				<ws:Option> <ws:Key>recipients</ws:Key> <ws:Value>mike@example.com</ws:Value> </ws:Option>
			</ws:options>
		</ws:SendNewsletter>
	</soap:Body>
</soap:Envelope>
SOAP request (ALL, immediate)
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ws="http://services.mailupnet.it/WS">
   <soap:Header/>
   <soap:Body>
      <ws:SendNewsletter>         
	<ws:accessKey>HzAgwRRJaAKBtkgNWpkAuURfV4SxMm6T3HJegRuSkUivKJElNNcmSQe8nqGyoM9</ws:accessKey>
	<ws:listID>2</ws:listID>
	<ws:newsletterID>84</ws:newsletterID>
	<ws:options>
		<ws:Option> <ws:Key>send_to</ws:Key> <ws:Value>ALL</ws:Value> </ws:Option>
		<ws:Option> <ws:Key>from_name</ws:Key> <ws:Value>Your favorite dealer</ws:Value> </ws:Option>
        </ws:options>
      </ws:SendNewsletter>
   </soap:Body>
</soap:Envelope>
SOAP request (RECIPIENTS, scheduled)
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ws="http://services.mailupnet.it/WS">
<soap:Header/>
<soap:Body>
	<ws:SendNewsletter>
	<ws:accessKey>HzAgwRRJaAKBtkgNWpkAuURfV4SxMm6T3HJegRuSkUivKJElNNcmSQe8nqGyoM9</ws:accessKey>
	<ws:listID>2</ws:listID>
	<ws:newsletterID>84</ws:newsletterID>
	<ws:options>
		<ws:Option> <ws:Key>send_to</ws:Key> <ws:Value>RECIPIENTS</ws:Value> </ws:Option>
		<ws:Option> <ws:Key>from_name</ws:Key> <ws:Value>Your favorite dealer</ws:Value> </ws:Option>
		<ws:Option> <ws:Key>from_email</ws:Key> <ws:Value>test@nweb.it</ws:Value> </ws:Option>
		<ws:Option> <ws:Key>recipients</ws:Key> <ws:Value>mike@example.com</ws:Value> </ws:Option>
	    
		<!-- Use the options below to schedule delivery at 04/09/2012 14:30:00  GMT +1 -->
		<ws:Option> <ws:Key>deliverydt</ws:Key> <ws:Value>20120904143000</ws:Value> </ws:Option>
		<ws:Option> <ws:Key>timezone</ws:Key> <ws:Value>0</ws:Value> </ws:Option>
	</ws:options>
	</ws:SendNewsletter>
</soap:Body>
</soap:Envelope>

Sample responses

SOAP response (immediate)
<SendNewsletterResult>
	<errorCode>0</errorCode>
	<errorDescription></errorDescription>
	<listID>2</listID>
	<newsletterID>84</newsletterID>
	<deliveryID>179</deliveryID>
	<deliveryStatus>Sending in progress</deliveryStatus>
</SendNewsletterResult>
SOAP response (scheduled)
<SendNewsletterResult>
	<errorCode>0</errorCode>
	<errorDescription></errorDescription>
	<listID>2</listID>
	<newsletterID>84</newsletterID>
	<deliveryID>190</deliveryID>
	<deliveryStatus>Delivery scheduled at 04/09/2012 14:30:00  GMT 1</deliveryStatus>
</SendNewsletterResult>

Recipient fields (merge tags)

You can pass to the system values that will be saved in the recipient database as Recipient fields, and can be used in the message as merge tags (dynamic fields).

The number of elements indicated for each "campo<nn>" parameter must match the number of addresses in the "recipients" parameter.

For example, let's say the message is sent to three recipients. The recipients parameter will look as follows:

recipients=johnsmith@example.com;pauljohnson@example.com;anntaylor@example.com

 

Now let's assume that you want to pass to the system the recipients' first and last name as part of the API call. Let's also assume that those fields are saved in the first two Recipient fields (campo1 and campo2). The API call will have to include 3 items for each semi-colon separated array of values:

campo1=John;Paul;Ann
campo2=Smith;Johnson;Taylor


In case of empty personal data fields, the number of elements must always be the same. In the example below, empty values are passed for the second recipient:

campo1=John;;Ann
campo2=Smith;;Taylor

Code samples

Ruby
# Refer to https://mailup.atlassian.net/wiki/display/mailupapi/MailUp+RubyGem for gem information.
require 'mailup'
m = MailUp::Send.new('username', 'password')
m.send_newsletter(:newsletterID => 3, "Options" => {:from_email => '..."})
# => <SendNewsletterResult><errorCode>0</errorCode><errorDescription></errorDescription>...</SendNewsletterResult>"
PHP
<?php
$WsSend = new MailUpWsSend(); //MailUpWsSend class handles endpoints and access key
$WsSend->loginFromId();
//...
// Prepare sending of message 294 to recipients of group 481 (that belong to list 66)
$sendNewsletterData = array("listID" => "66",
						   "newsletterID" => "294",
						   "options" => array(						   
										array("Key" =>"from_email", "Value" => "sender@example.com"),
										array("Key" =>"from_name", "Value" => "Your Dealer"),
										array("Key" =>"send_to", "Value" => "GROUPS"),
										array("Key" =>"recipients", "Value" => "481"))
					);
					
$WsSend->sendNewsletter($sendNewsletterData);
$WsSend->logout();
?>