Метод createEmailMessage
Метод для создания e-mail сообщения без отправки. Непосредственно отправка осуществляется с помощью другого метода — createCampaign.
Принцип использования
| Синтаксис и URL для вызова метода |
|---|
| createEmailMessage (string sender_name, string sender_email, string subject, string body, int list_id [, string tag, string array attachments, string lang, int series_day, time series_time]) |
| http://api.unisender.com/ru/api/createEmailMessage?format=json&api_key=KEY&sender_name=FROMNAME &sender_email=FROMMAIL&subject=SUBJECT&body=HTMLBODY &list_id=X&tag=TAG&attachements=FILESARRAY&lang=LANG&series_day=DAY&series_time=TIME |
| Аргументы | |
|---|---|
| api_key * | Ключ доступа к API |
| sender_name * | Имя отправителя. Произвольная строка, не совпадающая с e-mail адресом (аргумент sender_email). |
| sender_email * | E-mail адрес отправителя. Этот e-mail должен быть проверен
(для этого надо создать вручную хотя бы одно письмо с этим обратным адресом через веб-интерфейс,
затем нажать на ссылку «отправьте запрос подтверждения» и перейти по ссылке из письма). Реселлеры могут верифицировать адрес отправителя с помощью API-метода validateSender. |
| subject * | Строка с темой письма. Может включать поля подстановки. |
| body * | Текст письма в формате HTML с возможностью добавлять поля подстановки. Текст может включать и относительные ссылки на изображения, хранящиеся в папке пользователя на нашем сервере – такие изображения будут включены в само письмо. Ссылки на изображения на сервере должны иметь вид: "/ru/user_file?resource=images&name=IMAGE", где вместо IMAGE должно быть имя файла из вашей папки на сервере, например image.jpg или folder/image.jpg. Если же изображение не хранится на нашем сервере, то вы можете вставить картинку, передав её как файл-вложение (см. описание аргумента attachments). Предполагается, что HTML-текст содержит только содержимое тега body. Если вы передаёте текст HTML целиком, то тестируйте такие письма дополнительно – заголовки вне body могут быть подвергнуты модификациям. Кроме того, чтобы уменьшить расхождение в отображении в различных почтовых программах, мы автоматически добавляем дополнительную разметку в каждое письмо (таблица с невидимыми границами, которая также задаёт шрифт по умолчанию и выравнивание текста по левой границе). Вы можете попросить отключить это для ваших писем, обратившись в техподдержку. |
| list_id * | Код списка, по которому будет произведена отправка e-mail рассылки. Коды всех списков можно получить с помощью вызова getLists. Отправка письма возможна только по одному списку. Для отправки по другому списку надо создавать новое письмо. |
| tag | Метка. Если задана, то отправка рассылки письма будет производиться не по всему списку, а только по тем адресатам, которым присвоена заданная метка. |
| attachments | Ассоциативный массив файлов-вложений. В качестве ключа указывается имя файла,
в качестве значение - содержимое файла, например:attachments[quotes.txt]=text%20file%content В сообщение вложения будут добавлены в том же порядке, в котором перечислены. Можно вставлять в текст письма inline-картинки, добавляя их как файлы-вложения и ссылаясь на них в HTML так: <img src="3_name.jpg">. Вместо числа три надо подставить порядковый номер вложения, а вместо name.jpg - имя вложения. |
| lang | Двухбуквенный код языка для автоматически добавляемой в каждое письмо
строки со ссылкой отписки. Если не указан, то используется код языка из URL-обращения к API. Кроме собственно строки со ссылкой отписки, этот язык также влияет на интрефейс страницы отписки. Полностью поддерживаются языки ru, it и en, для нескольких других языков (da, de, es, fr, nl, pl, pt, tr) будет переведена строка со ссылкой, а интерфейс управления будет на английском. |
| series_day | День отправки для автоматически рассылаемого письма, входящего в серию. Если этот аргумент отсутствует – письмо не считается автоматическим. Если задан, то это должно быть целое положительное число, задающее день отправки письма по отношению к дню подписки. У дня номер 1 специальный смысл: если указан этот день, то письмо будет отправлено в момент подписки, и значение series_time будет проигнорировано (т.к. заранее неизвестно время подписки). Внимание: автоматическая рассылка начинает действовать сразу после успешного создания письма, и если через минуту надо будет отправлять его автоматически – система отправит его. |
| series_time | Время отправки для автоматически рассылаемого письма в формате «ЧЧ:ММ».
Если этот аргумент отсутствует, то время будет выбрано произвольно в промежутке
от 6:00 до 14:00. Время игнорируется, если не задан аргумент «series_day». Используется часовой пояс, заданный в настройках Личного кабинета. |
| Возвращаемое значение |
|---|
|
JSON-объект с одним полем message_id, в котором содержится уникальный код сообщения – целое положительное 31-битное число.
Используется для отправки сообщения методом createCampaign. Пример возвращаемого значения:
{"result":{"message_id":357088}}
{"error":"unchecked sender email","code":"invalid_arg","result":""}
|
Смотрите также
Примеры на PHP
Мы настоятельно рекомендуем использовать POST-запросы, так как это более безопасный метод передачи данных, нежели GET. Подробнее о методах соединения здесь.
Пример с использованием POST-запроса
// Ваш ключ доступа к API (из Личного Кабинета)
$api_key = "xxxxxxxxxxxxxxxxxx";
// Параметры создаваемого email-сообщения
// Если скрипт в кодировке UTF-8, удалите вызовы iconv
$email_from_name = iconv('cp1251', 'utf-8', "Пал Палыч");
$email_from_email = "pal.palych@yandex.ru";
$email_subject = iconv('cp1251', 'utf-8', "Тема нового e-mail сообщения");
$email_to = "354168"; // код списка, по которому делать рассылку
$email_text = urlencode(iconv('cp1251', 'utf-8', "<p>Привет, {{Name}}, ".
"<font color='red' size='+2'>вот</font> <b>".
"наша</b> рассылка</p>"));
// Прикрепим простой текстовый файл:
$email_attach_file_name = iconv('cp1251', 'utf-8', "текстовый файл.txt");
$email_attach_file_content = iconv('cp1251', 'utf-8', "Содержимое файла");
// Создаём POST-запрос
$POST = array (
'api_key' => $api_key,
'sender_name' => $email_from_name,
'sender_email' => $email_from_email,
'subject' => $email_subject,
'list_id' => $email_to,
'body' => $email_text,
'attachments[' . $email_attach_file_name . ']' => $email_attach_file_content
);
// Устанавливаем соединение
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_URL,
'http://api.unisender.com/ru/api/createEmailMessage?format=json');
$result = curl_exec($ch);
if ($result) {
// Раскодируем ответ API-сервера
$jsonObj = json_decode($result);
if(null===$jsonObj) {
// Ошибка в полученном ответе
echo "Invalid JSON";
}
elseif(!empty($jsonObj->error)) {
// Ошибка создания сообщения
echo "An error occured: " . $jsonObj->error . "(code: " . $jsonObj->code . ")";
} else {
// Новое сообщение успешно создано
echo "Success. Message ID is " . $jsonObj->result->message_id;
}
} else {
// Ошибка соединения с API-сервером
echo "API access error";
}
Пример с использованием GET-запроса
// Ваш ключ доступа к API (из Личного Кабинета)
$api_key = "xxxxxxxxxxxxxxxx";
// Параметры создаваемого email-сообщения
// Если скрипт в кодировке UTF-8, удалите вызовы iconv
$email_from_name = urlencode(iconv('cp1251', 'utf-8', "Пал Палыч"));
$email_from_email = urlencode("pal.palych@yandex.ru");
$email_subject = urlencode(iconv('cp1251', 'utf-8', "Тема нового e-mail сообщения"));
$email_to = "354168"; // код списка, по которому делать рассылку
$email_text = urlencode(iconv('cp1251', 'utf-8', "<p>Привет, {{Name}}, ".
"<font color='red' size='+2'>вот</font> <b>".
"наша</b> рассылка</p>"));
// Прикрепим простой текстовый файл:
$email_attach_file_name = urlencode(iconv('cp1251', 'utf-8', "текстовый файл.txt"));
$email_attach_file_content = urlencode(iconv('cp1251', 'utf-8', "Содержимое файла"));
// Создаём GET-запрос
$api_url = "http://api.unisender.com/ru/api/createEmailMessage?format=json".
"&api_key=$api_key&sender_name=$email_from_name".
"&sender_email=$email_from_email".
"&subject=$email_subject&list_id=$email_to&body=$email_text".
"&attachments[$email_attach_file_name]=$email_attach_file_content";
// Делаем запрос на API-сервер
$result = file_get_contents($api_url);
if ($result) {
// Раскодируем ответ API-сервера
$jsonObj = json_decode($result);
if(null===$jsonObj) {
// Ошибка в полученном ответе
echo "Invalid JSON";
}
elseif(!empty($jsonObj->error)) {
// Ошибка создания сообщения
echo "An error occured: " . $jsonObj->error . "(code: " . $jsonObj->code . ")";
} else {
// Новое сообщение успешно создано
echo "Success. Message ID is " . $jsonObj->result->message_id;
}
} else {
// Ошибка соединения с API-сервером
echo "API access error";
}


