1. Go to this page and download the library: Download xqueue/maileon-api-client library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
xqueue / maileon-api-client example snippets
$service = new ContactsService([
'API_KEY' => 'Your API key',
'TIMEOUT' => 10,
'THROW_EXCEPTION' => false,
]);
$response = $service->someMethod();
if ($response === null || !$response->isSuccess()) {
// handle error — getResultXML()->message often contains the API error description
$message = $response?->getResultXML()?->message ?? 'Unknown error';
throw new RuntimeException((string) $message);
}
$data = $response->getResult();
use de\xqueue\maileon\api\client\contacts\ContactsService;
PI key',
]);
$contact = $contactsService->getContactByEmail('[email protected]')->getResult();
/**
* The contact object stores all information you requested.
*
* Identifiers (Maileon ID, Maileon external id and email address), marketing permission
* level, creation date and last update date are always
use de\xqueue\maileon\api\client\contacts\ContactsService;
use de\xqueue\maileon\api\client\contacts\StandardContactField;
email:'[email protected]',
standard_fields:[
StandardContactField::$FIRSTNAME,
StandardContactField::$LASTNAME,
],
custom_fields:[
'My custom field in Maileon',
]
);
if (!$getContact->isSuccess()) {
die($getContact->getResultXML()->message);
}
$contact = $getContact->getResult();
/**
* The contact object stores all information you requested.
*
* Identifiers (Maileon ID, Maileon external id and email address), marketing permission
* level, creation date and last update date are always
use de\xqueue\maileon\api\client\contacts\ContactsService;
use de\xqueue\maileon\api\client\contacts\Contact;
use de\xqueue\maileon\api\client\contacts\Permission;
use de\xqueue\maileon\api\client\contacts\Preference;
use de\xqueue\maileon\api\client\contacts\StandardContactField;
use de\xqueue\maileon\api\client\contacts\SynchronizationMode;
ld type',
],
);
$creation = $contactsService->createContact(
contact:$contact,
syncMode:SynchronizationMode::$IGNORE,
src:'An optional source of the contact creation',
subscriptionPage:'An additional source of the contact creation',
doi:true,
doiPlus:true, // Enable single user tracking with the DOI process
doiMailingKey:'A key to identify the DOI mailing',
);
if (!$creation->isSuccess()) {
die($creation->getResultXML()->message);
}
use de\xqueue\maileon\api\client\contacts\ContactsService;
use de\xqueue\maileon\api\client\contacts\Contacts;
use de\xqueue\maileon\api\client\contacts\Contact;
use de\xqueue\maileon\api\client\contacts\Permission;
use de\xqueue\maileon\api\client\contacts\SynchronizationMode;
use de\xqueue\maileon\api\client\contacts\StandardContactField;
tField::$LASTNAME => 'Bar',
],
custom_fields:[
'My custom field in Maileon' => 'A value corresponding to the field type',
],
)
);
}
$response = $contactsService->synchronizeContacts(
contacts:$contactList,
syncMode:SynchronizationMode::$IGNORE,
useExternalId:false,
ignoreInvalidContacts:true,
reimportUnsubscribedContacts:false,
overridePermission:false,
updateOnly:false,
);
// The response contains some statistics and, if ignore_invalid_contacts is set
// to true, information about possibly failed contact creations, see
// https://maileon.com/support/synchronize-contacts/#articleTOC_3
use de\xqueue\maileon\api\client\reports\ReportsService;
API key',
]);
$index = 1;
do {
$getUnsubscribers = $contactsService->getUnsubscribers(
pageIndex:$index++,
pageSize:1000
);
foreach ($getUnsubscribers->getResult() as $unsubscriber) {
printf('%s unsubscribed in mailing %u at %s'.PHP_EOL,
$unsubscriber->contact->email,
$unsubscriber->mailingId,
$unsubscriber->timestamp
);
}
} while($getUnsubscribers->getResponseHeader('x-pages') >= $index);
use de\xqueue\maileon\api\client\mailings\MailingsService;
PI key',
]);
$mailingId = $mailingsService->createMailing(
name:'My campaign name',
subject:'Hi [CONTACT|FIRSTNAME]! We got some news for you!'
)->getResult();
$mailingsService->setSender($mailingId, '[email protected]');
$mailingsService->setSenderAlias($mailingId, 'Maileon news team');
$mailingsService->setHTMLContent(
mailingId:$mailingId,
html:'<html>...</html>',
doImageGrabbing:true,
doLinkTracking:true
);
$mailingsService->setTargetGroupId($mailingId, 123);
$mailingsService->sendMailingNow($mailingId);
use de\xqueue\maileon\api\client\dataextensions\DataExtension;
use de\xqueue\maileon\api\client\dataextensions\DataExtensionField;
use de\xqueue\maileon\api\client\dataextensions\DataExtensionsService;
use de\xqueue\maileon\api\client\dataextensions\FieldDataType;
use de\xqueue\maileon\api\client\dataextensions\RetentionPolicy;
DataExtensionField();
$valueField->name = 'score';
$valueField->data_type = FieldDataType::INTEGER;
$valueField->nullable = true;
$extension = new DataExtension();
$extension->name = 'My custom table';
$extension->retention_policy = RetentionPolicy::NONE;
$extension->fields = [$emailField, $valueField];
$response = $service->createDataExtension($extension);
$extensionId = $response->getResult(); // numeric ID of the new extension