Отправить файл (v2)

API sendfile позволяет пользователю отправлять файл для массовой проверки электронной почты. Тип содержимого должен быть multipart / form-data. Пожалуйста, обратитесь к примеру C # для деталей.

There is no restriction on file size, number of emails, or number of files you can submit using this endpoint, as long as you have the credits in your account to cover the number of emails in submitted in the file, it will be accepted.

POST / v2 / sendfile

URL API: https://bulkapi.zerobounce.net/v2/sendfile

Параметры URL

  • ПАРАМЕТР
    Описание
  • файл
    CSV или TXT-файл. Содержимое байтового массива для переданного файла. Заголовок содержимого имеет тп «text / csv».
  • api_key
    Ваш ключ API, найденный в вашей учетной записи. (Необходимые)
  • return_url
    URL будет использоваться для обратного вызова после завершения проверки. (По желанию)
  • email_address_column
    Индекс столбца адреса электронной почты в файле. Индекс начинается с 1. (Необходимые)
  • first_name_column
    Индекс столбца имени столбца. (По желанию)
  • last_name_column
    Индекс столбца фамилии столбца. (По желанию)
  • gender_column
    Индекс столбца гендерного столбца. (По желанию)
  • ip_address_column
    IP-адрес, с которого зарегистрирован адрес электронной почты. (По желанию)
  • has_header_row
    Если первая строка из представленного файла является строкой заголовка. правда или ложь (необязательно)

Если return_url был указан в данных многочастной формы во время запроса файла отправки, мы отправим следующие данные в URL, когда процесс проверки будет завершен.


                {
                  file_id": "aaaaaaaa-zzzz-xxxx-yyyy-5003727fffff",
                  "имя файла": "Ваш файл name.csv", 
                  "дата загрузки": "10/20/2018 4:35: 58 PM" 
                }
                

Отправить образцы кода файла

  • Visual Basic
  • C#
  • PHP
  • Ява
  • Питон
  • СВИФТ
  • Цель С
  • Android Java
      
Полные библиотеки API и оболочки могут быть найдены здесь: 
' https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__dot_net

'Отправить образец файла в VB.net

Общественности Класс SendFileStatus
    Общественности Имущество success Как Логический
    Общественности Имущество message Как Строка
    Общественности Имущество file_name Как Строка
    Общественности Имущество file_id Как Строка
Конец Класс

Частный Общий Суб SendFileAPITest()
    Тусклый fileFullPath Как Строка = $"полный путь к файлу csv или txt"  ' обязательный
    Тусклый apiKey Как Строка = "замени свой ключ api здесь"              ' обязательный
    Тусклый emailAddressColumn Как Целое число = 2  ' обязательный
    Тусклый firstNameColumn Как Целое число? = 5    ' по желанию
    Тусклый lastNameColumn Как Целое число? = 6     ' по желанию
    Тусклый genderColumn Как Целое число? = Ничего такого ' по желанию
    Тусклый ipAddressColumn Как Целое число? = 11   ' по желанию
    Тусклый hasHeaderRow Как Логический? = Правда    ' по желанию
    Тусклый returnUrl Как Строка = Ничего такого      ' по желанию

    Пытаться
        Тусклый sendFileStatus Как SendFileStatus = SendFile(fileFullPath, apiKey, emailAddressColumn, firstNameColumn, lastNameColumn, genderColumn, ipAddressColumn, hasHeaderRow, returnUrl).Result
        Console.Напишите(JsonConvert.SerializeObject(sendFileStatus, Formatting.Indented))
    Поймать ex Как Exception
        Console.Напишите(ex.InnerException.Message)
    Конец Пытаться

    Console.ReadKey()
Конец Суб

Общественности Общий Async Функция SendFile(
      ByVal fileFullPath Как Строка, 
      ByVal apiKey Как Строка, 
      ByVal emailAddressColumn Как Целое число, 
      ByVal НЕОБЯЗАТЕЛЬНЫЙ firstNameColumn Как Целое число? = Ничего такого, 
      ByVal НЕОБЯЗАТЕЛЬНЫЙ lastNameColumn Как Целое число? = Ничего такого, 
      ByVal НЕОБЯЗАТЕЛЬНЫЙ genderColumn Как Целое число? = Ничего такого, 
      ByVal НЕОБЯЗАТЕЛЬНЫЙ ipAddressColumn Как Целое число? = Ничего такого, 
      ByVal НЕОБЯЗАТЕЛЬНЫЙ hasHeaderRow Как Логический? = Ничего такого, 
      ByVal НЕОБЯЗАТЕЛЬНЫЙ returnUrl Как Строка = Ничего такого
    ) Как Task(Из SendFileStatus)

    Если Строка.IsNullOrEmpty(fileFullPath) Затем Бросать Новый Exception(«Ошибка: fileFullPath требуется»)
    Если Строка.IsNullOrEmpty(apiKey) Затем Бросать Новый Exception(«Ошибка: требуется apiKey»)
    Тусклый fi = Новый FileInfo(fileFullPath)
    Тусклый fileContents = File.ReadAllBytes(fi.FullName)
    Тусклый fileName = fi.Имя
    Тусклый uri Как Uri = Новый Uri("https://bulkapi.zerobounce.net/v2/sendfile")

    С помощью client = Новый HttpClient()

        С помощью request = Новый HttpRequestMessage(HttpMethod.Post, uri)
            Тусклый multiPartContent Как MultipartFormDataContent = Новый MultipartFormDataContent()
            Тусклый byteArrayContent Как ByteArrayContent = Новый ByteArrayContent(fileContents)
            byteArrayContent.Headers.Add("Тип содержимого", "текст / csv")
            multiPartContent.Add(byteArrayContent, "файл", fileName)
            multiPartContent.Add(Новый StringContent(apiKey), "api_key")
            multiPartContent.Add(Новый StringContent(emailAddressColumn.ToString()), "email_address_column")
            Если firstNameColumn Не является Ничего такого Затем multiPartContent.Add(Новый StringContent(firstNameColumn.ToString()), "first_name_column")
            Если lastNameColumn Не является Ничего такого Затем multiPartContent.Add(Новый StringContent(lastNameColumn.ToString()), "last_name_column")
            Если genderColumn Не является Ничего такого Затем multiPartContent.Add(Новый StringContent(genderColumn.ToString()), "gender_column")
            Если ipAddressColumn Не является Ничего такого Затем multiPartContent.Add(Новый StringContent(ipAddressColumn.ToString()), "ip_address_column")
            Если hasHeaderRow Не является Ничего такого Затем multiPartContent.Add(Новый StringContent(Если((hasHeaderRow = Правда), "правда", "ложный")), "has_header_row")
            Если returnUrl Не является Ничего такого Затем multiPartContent.Add(Новый StringContent(returnUrl.ToString()), "return_url")
            request.Content = multiPartContent

            С помощью response = Await client.SendAsync(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None).ConfigureAwait(Ложь)
                Тусклый content = Await response.Content.ReadAsStringAsync()

                Если response.IsSuccessStatusCode = Ложь Затем
                    Тусклый ошибка Как Строка = $"StatusCode = {CInt(response.StatusCode)}, Content = {content}"
                    Бросать Новый Exception(ошибка)
                Конец Если

                Вернуть JsonConvert.DeserializeObject(Из SendFileStatus)(content)
            Конец С помощью
        Конец С помощью
    Конец С помощью
Конец Функция
    

// Полные библиотеки API и оболочки могут быть найдены здесь: 
// https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__dot_net
// https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__c-sharp

// Отправить образец файла в C #

Общественности Класс Sendfilestatus
{
    Общественности bool success { получить; задавать; }
    Общественности Строка message { получить; задавать; }
    Общественности Строка file_name { получить; задавать; }
    Общественности Строка file_id { получить; задавать; }
}

Частный статический пустота Sendfileapitest()
{
    Строка fileFullPath = $"полный путь к файлу csv или txt";  //обязательный
    Строка apiKey = "замени свой ключ api здесь";  //обязательный       
    инт emailAddressColumn = 2;  //обязательный
    инт? firstNameColumn = 5;  //Необязательный
    инт? lastNameColumn = 6;  //Необязательный
    инт? genderColumn = ноль;  //Необязательный
    инт? ipAddressColumn = 11;  //Необязательный
    bool? hasHeaderRow = Правда;  //Необязательный
    Строка returnUrl = ноль;  //Необязательный

    Пытаться
    {
        Sendfilestatus sendFileStatus = Отправить файл(fileFullPath, apiKey, emailAddressColumn, firstNameColumn, lastNameColumn, genderColumn, ipAddressColumn, hasHeaderRow, returnUrl).Result;
        Console.Напишите(JsonConvert.Serializeobject(sendFileStatus, Formatting.Indented));
    }
    Поймать (Исключение ex)
    {
        Console.Напишите(ex.InnerException.Message);
    }

    Console.ReadKey();

}

Общественности статический асинхронной Task<SendFileStatus> Отправить файл(Строка fileFullPath, Строка apiKey, инт emailAddressColumn, 
    инт? firstNameColumn = ноль, инт? lastNameColumn = ноль, инт? genderColumn = ноль, 
    инт? ipAddressColumn = ноль, bool? hasHeaderRow = ноль, Строка returnUrl = ноль)
{
    Если (Строка.Isnullorempty(fileFullPath))
        Бросать Новый Исключение(«Ошибка: fileFullPath требуется»);
    Если (Строка.Isnullorempty(apiKey))
        Бросать Новый Исключение(«Ошибка: требуется apiKey»);

    вар fi = Новый FileInfo(fileFullPath);
    вар fileContents = File.Readallbytes(fi.FullName);
    вар fileName = fi.Name;

    URI uri = Новый URI(@"https://bulkapi.zerobounce.net/v2/sendfile");

    С помощью (вар client = Новый HttpClient())
    С помощью (вар request = Новый Httprequestmessage(HttpMethod.Post, uri))
    {
        Multipartformdatacontent multiPartContent = Новый Multipartformdatacontent();
        Bytearraycontent byteArrayContent = Новый Bytearraycontent(fileContents);
        byteArrayContent.Headers.Добавить("Тип содержимого", "текст / csv");
        multiPartContent.Добавить(byteArrayContent, "файл", fileName);
        multiPartContent.Добавить(Новый Stringcontent(apiKey), "api_key");
        multiPartContent.Добавить(Новый Stringcontent(emailAddressColumn.Нанизывать()), "email_address_column");
        Если (firstNameColumn != ноль)
            multiPartContent.Добавить(Новый Stringcontent(firstNameColumn.Нанизывать()), "first_name_column");
        Если (lastNameColumn != ноль)
            multiPartContent.Добавить(Новый Stringcontent(lastNameColumn.Нанизывать()), "last_name_column");
        Если (genderColumn != ноль)
            multiPartContent.Добавить(Новый Stringcontent(genderColumn.Нанизывать()), "gender_column");
        Если (ipAddressColumn != ноль)
            multiPartContent.Добавить(Новый Stringcontent(ipAddressColumn.Нанизывать()), "ip_address_column");
        Если (hasHeaderRow != ноль)
            multiPartContent.Добавить(Новый Stringcontent((hasHeaderRow == Правда) ? "правда" : "ложный"), "has_header_row");
        Если (returnUrl != ноль)
            multiPartContent.Добавить(Новый Stringcontent(returnUrl.Нанизывать()), "return_url");

        request.Content = multiPartContent;

        С помощью (вар response = ждите client.SendAsync(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None).Configureawait(Ложь))
        {
            вар content = ждите response.Content.Readasstringasync();

            Если (response.IsSuccessStatusCode == Ложь)
            {
                вар error = $"StatusCode = {(int) response.StatusCode}, Content = {content}";
                Бросать Новый Исключение(error);
            }

            Вернуть JsonConvert.Deserializeobject<Sendfilestatus>(content);
        }
    }
}
    

  <?php
// Полные библиотеки API и оболочки могут быть найдены здесь: 
// https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__php

$ завиток = curl_init();

curl_setopt_array($ завиток, массив(
  CURLOPT_URL => "https://bulkapi.zerobounce.net/v2/sendfile",
  CURLOPT_RETURNTRANSFER => Правда,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "ПОЧТА",
  CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="api_key"replacewithyours------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="email_address_column"replacewithyours------WebKitFormBoundary7MA4YWxkTrZu0gW--",
  CURLOPT_HTTPHEADER => массив(
    «Почтальон-токен: fae6714d-dc09- 4 e08-b50d-c97030603b61»,
    "контроль кеша: нет кеша",
    "тип контента: multipart / form-data; border = ---- WebKitFormBoundary7MA4YWxkTrZu0gW"
  ),
));

$ ответ = curl_exec($ завиток);
$ err = curl_error($ завиток);

curl_close($ завиток);

Если ($ err) {
  эхо "Ошибка cURL #:" . $ err;
} еще {
  эхо $ ответ;
}
?>
    


  // Полные библиотеки API и оболочки могут быть найдены здесь: 
  //https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__java

  Okhttpclient client = Новый Okhttpclient();

  MediaType mediaType = MediaType.синтаксический анализ("multipart / form-data; border = ---- WebKitFormBoundary7MA4YWxkTrZu0gW");
  Requestbody body = Requestbody.создайте(mediaType, "------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="api_key"replacewithyours------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="email_address_column"replacewithyours------WebKitFormBoundary7MA4YWxkTrZu0gW--");
  Запрос request = Новый Запрос.СТРОИТЕЛЬ()
    .url("https://bulkapi.zerobounce.net/v2/sendfile")
    .после(body)
    .AddHeader("Тип содержимого", "multipart / form-data; border = ---- WebKitFormBoundary7MA4YWxkTrZu0gW")
    .AddHeader(«кэш-контроль», «нет кэша»)
    .AddHeader(«Почтальон-Токен», "25 d608ba- 6 cb5- 4 c8c- 88 d7-d47276c67d8e")
    .строить();
  
  ОТВЕТ response = client.новый вызов(request).выполнять();
    

  # Полные библиотеки API и оболочки могут быть найдены здесь: 
  # https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__python

  импортировать http.client

  conn = http.client.HTTPConnection("bulkapi, zerobounce, чистый")
  
  payload = "------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="api_key"replacewithyours------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="email_address_column"replacewithyours------WebKitFormBoundary7MA4YWxkTrZu0gW--"
  
  headers = {
      'тип содержимого': "multipart / form-data; border = ---- WebKitFormBoundary7MA4YWxkTrZu0gW",
      «кэш-контроль»: «нет кэша»,
      «Почтальон-Токен»: "bc455eda- 9884-417 е-b16f- 3 a5fef3f7540"
      }
  
  conn.request("ПОЧТА", "v2, sendfile", payload, headers)
  
  res = conn.getresponse()
  data = res.read()
  
  распечатать(data.decode("utf- 8"))
    
    


  // Полные библиотеки API и оболочки могут быть найдены здесь: 
  // https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__IOS

  импортировать ФОНД

  позволяь headers = [
    "Тип содержимого": "multipart / form-data; border = ---- WebKitFormBoundary7MA4YWxkTrZu0gW",
    «кэш-контроль»: «нет кэша»,
    «Почтальон-Токен»: "2 f68fcc3-d9b6- 458 ь-b613- 56 f6a03e6617"
  ]
  позволяь parameters = [
    [
      "название": "api_key",
      "стоимость": "replacewithyours"
    ],
    [
      "название": "email_address_column",
      "стоимость": "replacewithyours"
    ]
  ]
  
  позволяь boundary = "---- WebKitFormBoundary7MA4YWxkTrZu0gW"
  
  вар body = ""
  вар error: Nserror? = нль
  для param в parameters {
    позволяь paramName = param["название"]!
    body += "--(boundary)"
    body += "Content-Disposition: form-data; name ="(paramName)""
    Если позволяь filename = param["имя файла"] {
      позволяь contentType = param["Тип содержимого"]!
      позволяь fileContent = Строка(contentsOfFile: filename, encoding: Строка.Кодирование.utf8)
      Если (error != нль) {
        распечатать(error)
      }
      body += "; имя файла ="(filename)""
      body += "Content-Type: (contentType)"
      body += fileContent
    } еще Если позволяь paramValue = param["стоимость"] {
      body += "(paramValue)"
    }
  }
  
  позволяь request = Nsmutableurlrequest(url: NSURL(string: "https://bulkapi.zerobounce.net/v2/sendfile")! Как url,
                                          cachePolicy: .useProtocolCachePolicy,
                                      timeoutInterval: 10.0)
  request.httpMethod = "ПОЧТА"
  request.allHTTPHeaderFields = headers
  request.httpBody = postData Как Данные
  
  позволяь session = Urlsession.shared
  позволяь dataTask = session.datatask(with: request Как URLRequest, completionHandler: { (data, response, error) -> пустота в
    Если (error != нль) {
      распечатать(error)
    } еще {
      позволяь httpResponse = response Как? Httpurlresponse
      распечатать(httpResponse)
    }
  })
  
  dataTask.продолжить()
    


  // Полные библиотеки API и оболочки могут быть найдены здесь: 
  // https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__IOS


// Пожалуйста, выберите язык VB или C # для отправки файла примера импорта #  <Foundation/Foundation.h>

NSDictionary *headers = @{ @"тип содержимого": @ "multipart / form-data; border = ---- WebKitFormBoundary7MA4YWxkTrZu0gW",
                            @ «кэш-контроль»: @ «нет кэша»,
                            @ «Почтальон-Токен»: @ "92 c5b06e- 624 f- 44 е5-bd86-f537bc6cef67" };
NSArray *parameters = @[ @{ @"название": @ "api_key", @"стоимость": @ "replacewithyours" },
                          @{ @"название": @ "email_address_column", @"стоимость": @ "replacewithyours" } ];
NSString *boundary = @ "---- WebKitFormBoundary7MA4YWxkTrZu0gW";

NSError *error;
NSMutableString *body = [NSMutableString string];
для (NSDictionary *param в parameters) {
    [body appendFormat:@"--%@", boundary];
    Если (param[@"имя файла"]) {
        [body appendFormat:@ "Content-Disposition: form-data; name ="%@ "; filename ="%@"", param[@"название"], param[@"имя файла"]];
        [body appendFormat:@"Content-Type: %@", param[@"contentType"]];
        [body appendFormat:@"%@", [NSString stringWithContentsOfFile:param[@"имя файла"] encoding:NSUTF8StringEncoding error:&error]];
        Если (error) {
            NSLog(@"%@", error);
        }
    } еще {
        [body appendFormat:@ "Content-Disposition: form-data; name ="%@"", param[@"название"]];
        [body appendFormat:@"%@", param[@"стоимость"]];
    }
}
[body appendFormat:@"--%@--", boundary];
NSData *postData = [body dataUsingEncoding:NSUTF8StringEncoding];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://bulkapi.zerobounce.net/v2/sendfile"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];

[request setHTTPMethod:@"ПОЧТА"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
    completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        Если (error) {
            NSLog(@"%@", error);
        } еще {
            NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
            NSLog(@"%@", httpResponse);
        }
    }];
[dataTask resume];
    


  // Полные библиотеки API и оболочки могут быть найдены здесь: 
  // https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__android

//N/A
    

Ответ конечной точки

Успешный ответ

      
{
  «успех»: Правда,
  "сообщение": «Файл принят»,
  "имя файла": "Ваш файл name.csv",
  "file_id": "aaaaaaaa-zzzz-хххх-yyyy- 5003727 fffff"
}
    

Овет об ошибке

      
    {
      «успех»: Ложь,
      "сообщение": [
          "Сообщения об ошибках"
      ]
  }