Метод checkEmail
Возвращает строку — статус отправки email-сообщения, отправленного методом sendEmail.
Для ускорения работы метода sendEmail статусы доставки хранятся ограниченное время – только одну неделю.
Принцип использования
| Синтаксис и URL для вызова метода |
|---|
| checkEmail (string email_id) |
| http://api.unisender.com/ru/api/checkEmail?format=json&api_key=KEY&email_id=ID |
| Аргументы | |
|---|---|
| api_key * | Ключ доступа к API |
| email_id * |
Код сообщения, возвращённый методом sendEmail. |
| Возвращаемое значение | |
|---|---|
| JSON-объект с единственным строковым полем status, принимающим одно из описанных ниже значений. В будущем вероятно появление новых значений, но будет соблюдаться принцип: если статус начинается с err_ – значит, доставка не удалась. Если с ok_ – то доставка ещё идёт или удачно завершена. Исключение – статус 'not_sent'. | |
| not_sent | Сообщение пока ещё не отправлено и находится в очереди на отправку. |
| ok_sent | Сообщение отправлено, но статус доставки пока неизвестен. Статус временный и может измениться. |
| ok_delivered | Сообщение доставлено. Может измениться на 'ok_read', 'ok_link_visited' или 'ok_unsubscribed'. |
| ok_read | Сообщение доставлено и зарегистрировано его прочтение. Может измениться на 'ok_link_visited' или 'ok_unsubscribed'. |
| ok_spam_folder | Сообщение доставлено, но помещено в папку "спам" самим пользователем или почтовой службой. К сожалению, редкие почтовые службы сообщают такую информацию, поэтому таких статусов обычно немного. |
| ok_link_visited | Сообщение доставлено, прочитано и выполнен переход по одной из ссылок. Может измениться на 'ok_unsubscribed'. |
| ok_unsubscribed | Сообщение доставлено и прочитано, но пользователь отписался по ссылке в письме. Статус окончательный. |
| err_user_unknown | Адрес не существует, доставка не удалась. Статус окончательный. |
| err_user_inactive | Адрес когда-то существовал, но сейчас отключен. Доставка не удалась. Статус окончательный. |
| err_mailbox_full | Почтовый ящик получателя переполнен. Статус окончательный. |
| err_spam_rejected | Письмо отклонено сервером как спам. Статус окончательный. |
| err_delivery_failed | Доставка не удалась по иным причинам. Статус окончательный. |
| err_will_retry | Одна или несколько попыток доставки оказались неудачными, но попытки продолжаются. Статус неокончательный. |
| err_resend | Фактически эквивалентенен err_will_retry, с некоторыми несущественными внутренними особенностями. |
| err_domain_inactive | Домен не принимает почту или не существует. |
| err_skip_letter | Сообщение было запланировано к отправке, но когда подошло время отправки, контакт уже не был активен и доступен. Возможно, он был отмечен как недоступный по результатам другой рассылки на этот адрес, или отписался. Также этот статус используется при отправках администраторами части писем рассылки для проверки - все письма рассылки, кроме той части, которая отправляется, помечаются этим статусом. |
Примеры возвращаемого значения:
{"result":{"status":"ok_delivered"}}
|
|
Смотрите также
Примеры на PHP
Мы настоятельно рекомендуем использовать POST-запросы, так как это более безопасный метод передачи данных, нежели GET. Подробнее о методах соединения здесь.
Пример с использованием POST-запроса
// Ваш ключ доступа к API (из Личного Кабинета)
$api_key = "xxxxxxxxxxxxxx";
// Параметры сообщения
$email_id = urlencode("2387465634");
// Создаём POST-запрос
$POST = array (
'api_key' => $api_key,
'email_id' => $email_id
);
// Устанавливаем соединение
$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/checkEmail?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 "E-mail message delivery status: " . $jsonObj->result->status;
}
} else {
// Ошибка соединения с API-сервером
echo "API access error";
}
Пример с использованием GET-запроса
// Ваш ключ доступа к API (из Личного Кабинета)
$api_key = "xxxxxxxxxxxxxxxxxxx";
// Параметры сообщения
$email_id = urlencode("78234678234");
// Создаём GET-запрос
$api_url = "http://api.unisender.com/ru/api/checkEmail?format=json".
"&api_key=$api_key&email_id=$email_id";
// Делаем запрос на 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 "E-mail message delivery status: " . $jsonObj->result->status;
}
} else {
// Ошибка соединения с API-сервером
echo "API access error";
}



