Invia file (v2)

L'API sendfile consente all'utente di inviare un file per la convalida e-mail in blocco. Il tipo di contenuto deve essere multipart / form-data. Fare riferimento all'esempio C # per i dettagli.

Non ci sono limitazioni alla dimensione del file, al numero di email o al numero di file che puoi inviare utilizzando questo endpoint, a condizione che tu abbia i crediti nel tuo account per coprire il numero di email inviate nel file, sarà accettato.

POST / v2 / sendfile

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

Parametri URL

  • Parametro
    Descrizione
  • file
    file CSV o txt. Contenuti dell'array di byte per il file inviato. L'intestazione del contenuto è di tipo "testo / csv".
  • api_key
    La tua chiave API, trovata nel tuo account. (Necessario)
  • return_url
    L'URL verrà utilizzato per richiamare al termine della convalida. (Opzionale)
  • email_address_column
    L'indice di colonna dell'indirizzo e-mail nel file. L'indice inizia da 1. (Necessario)
  • first_name_column
    L'indice di colonna della colonna del nome. (Opzionale)
  • last_name_column
    L'indice di colonna della colonna del cognome. (Opzionale)
  • gender_column
    L'indice di colonna della colonna di genere. (Opzionale)
  • ip_address_column
    L'indirizzo IP da cui l'email è stata registrata. (Opzionale)
  • has_header_row
    Se la prima riga del file inviato è una riga di intestazione. vero o falso (opzionale)

Se durante la richiesta di invio del file è stato specificato return_url nei Dati modulo multipart, al termine del processo di convalida POST i seguenti dati.


                {
                  file_id": "aaaaaaaa-zzzz-xxxx-yyyy-5003727fffff",
                  "nome del file": "Il tuo nome file.csv", 
                  "data di caricamento": "10/20/2018 4:35: 58 PM" 
                }
                

Invia esempi di codice file

  • Visual Basic
  • C#
  • PHP
  • Giava
  • Pitone
  • Veloce
  • Obiettivo C
  • Android Java
      
'Librerie API complete e wrapper sono disponibili qui: 
' https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__dot_net

'Invia esempio di file in VB.net

Pubblico Classe SendFileStatus
    Pubblico Proprietà success Come Booleano
    Pubblico Proprietà message Come Corda
    Pubblico Proprietà file_name Come Corda
    Pubblico Proprietà file_id Come Corda
Fine Classe

Privato Condivisa Sub SendFileAPITest()
    Fioco fileFullPath Come Corda = $"percorso completo del file di un file csv o txt"  ' necessario
    Fioco apiKey Come Corda = "sostituisci con la tua chiave api qui"              ' necessario
    Fioco emailAddressColumn Come Numero intero = 2  ' necessario
    Fioco firstNameColumn Come Numero intero? = 5    'facoltativo
    Fioco lastNameColumn Come Numero intero? = 6     'facoltativo
    Fioco genderColumn Come Numero intero? = Niente 'facoltativo
    Fioco ipAddressColumn Come Numero intero? = 11   'facoltativo
    Fioco hasHeaderRow Come Booleano? = Vero    'facoltativo
    Fioco returnUrl Come Corda = Niente      'facoltativo

    PROVARE
        Fioco sendFileStatus Come SendFileStatus = SendFile(fileFullPath, apiKey, emailAddressColumn, firstNameColumn, lastNameColumn, genderColumn, ipAddressColumn, hasHeaderRow, returnUrl).Result
        Console.Scrivi(JsonConvert.SerializeObject(sendFileStatus, Formatting.Indented))
    Catturare ex Come Exception
        Console.Scrivi(ex.InnerException.Message)
    Fine PROVARE

    Console.ReadKey()
Fine Sub

Pubblico Condivisa Async Funzione SendFile(
      ByVal fileFullPath Come Corda, 
      ByVal apiKey Come Corda, 
      ByVal emailAddressColumn Come Numero intero, 
      ByVal Opzionale firstNameColumn Come Numero intero? = Niente, 
      ByVal Opzionale lastNameColumn Come Numero intero? = Niente, 
      ByVal Opzionale genderColumn Come Numero intero? = Niente, 
      ByVal Opzionale ipAddressColumn Come Numero intero? = Niente, 
      ByVal Opzionale hasHeaderRow Come Booleano? = Niente, 
      ByVal Opzionale returnUrl Come Corda = Niente
    ) Come Task(Di SendFileStatus)

    Se Corda.IsNullOrEmpty(fileFullPath) Poi Gettare Nuovo Exception("Errore: fileFullPath è richiesto")
    Se Corda.IsNullOrEmpty(apiKey) Poi Gettare Nuovo Exception("Errore: è richiesto apiKey")
    Fioco fi = Nuovo FileInfo(fileFullPath)
    Fioco fileContents = File.ReadAllBytes(fi.FullName)
    Fioco fileName = fi.Nome
    Fioco uri Come Uri = Nuovo Uri("https://bulkapi.zerobounce.net/v2/sendfile")

    Utilizzando client = Nuovo HttpClient()

        Utilizzando request = Nuovo HttpRequestMessage(HttpMethod.Post, uri)
            Fioco multiPartContent Come MultipartFormDataContent = Nuovo MultipartFormDataContent()
            Fioco byteArrayContent Come ByteArrayContent = Nuovo ByteArrayContent(fileContents)
            byteArrayContent.Headers.Add("Tipo di contenuto", "text / csv")
            multiPartContent.Add(byteArrayContent, "file", fileName)
            multiPartContent.Add(Nuovo StringContent(apiKey), "api_key")
            multiPartContent.Add(Nuovo StringContent(emailAddressColumn.ToString()), "email_address_column")
            Se firstNameColumn Non è Niente Poi multiPartContent.Add(Nuovo StringContent(firstNameColumn.ToString()), "first_name_column")
            Se lastNameColumn Non è Niente Poi multiPartContent.Add(Nuovo StringContent(lastNameColumn.ToString()), "last_name_column")
            Se genderColumn Non è Niente Poi multiPartContent.Add(Nuovo StringContent(genderColumn.ToString()), "gender_column")
            Se ipAddressColumn Non è Niente Poi multiPartContent.Add(Nuovo StringContent(ipAddressColumn.ToString()), "ip_address_column")
            Se hasHeaderRow Non è Niente Poi multiPartContent.Add(Nuovo StringContent(Se((hasHeaderRow = Vero), "vero", "false")), "has_header_row")
            Se returnUrl Non è Niente Poi multiPartContent.Add(Nuovo StringContent(returnUrl.ToString()), "return_url")
            request.Content = multiPartContent

            Utilizzando response = Await client.SendAsync(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None).ConfigureAwait(Falso)
                Fioco content = Await response.Content.ReadAsStringAsync()

                Se response.IsSuccessStatusCode = Falso Poi
                    Fioco errore Come Corda = $"StatusCode = {CInt(response.StatusCode)}, Content = {content}"
                    Gettare Nuovo Exception(errore)
                Fine Se

                Ritorno JsonConvert.DeserializeObject(Di SendFileStatus)(content)
            Fine Utilizzando
        Fine Utilizzando
    Fine Utilizzando
Fine Funzione
    

// Le librerie e i wrapper API completi sono disponibili qui: 
// 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

// Invia esempio di file in C #

Pubblico Classe Sendfilestatus
{
    Pubblico bool success { ottenere; impostato; }
    Pubblico Corda message { ottenere; impostato; }
    Pubblico Corda file_name { ottenere; impostato; }
    Pubblico Corda file_id { ottenere; impostato; }
}

Privato statico vuoto Sendfileapitest()
{
    Corda fileFullPath = $"percorso completo del file di un file csv o txt";  //necessario
    Corda apiKey = "sostituisci con la tua chiave api qui";  //necessario       
    int emailAddressColumn = 2;  //necessario
    int? firstNameColumn = 5;  //Opzionale
    int? lastNameColumn = 6;  //Opzionale
    int? genderColumn = nullo;  //Opzionale
    int? ipAddressColumn = 11;  //Opzionale
    bool? hasHeaderRow = Vero;  //Opzionale
    Corda returnUrl = nullo;  //Opzionale

    PROVARE
    {
        Sendfilestatus sendFileStatus = Inviare file(fileFullPath, apiKey, emailAddressColumn, firstNameColumn, lastNameColumn, genderColumn, ipAddressColumn, hasHeaderRow, returnUrl).Result;
        Console.Scrivi(JsonConvert.Serializeobject(sendFileStatus, Formatting.Indented));
    }
    Catturare (Eccezione ex)
    {
        Console.Scrivi(ex.InnerException.Message);
    }

    Console.ReadKey();

}

Pubblico statico async Task<SendFileStatus> Inviare file(Corda fileFullPath, Corda apiKey, int emailAddressColumn, 
    int? firstNameColumn = nullo, int? lastNameColumn = nullo, int? genderColumn = nullo, 
    int? ipAddressColumn = nullo, bool? hasHeaderRow = nullo, Corda returnUrl = nullo)
{
    Se (Corda.IsNullOrEmpty(fileFullPath))
        Gettare Nuovo Eccezione("Errore: fileFullPath è richiesto");
    Se (Corda.IsNullOrEmpty(apiKey))
        Gettare Nuovo Eccezione("Errore: è richiesto apiKey");

    var fi = Nuovo Fileinfo(fileFullPath);
    var fileContents = File.Readallbytes(fi.FullName);
    var fileName = fi.Name;

    Uri uri = Nuovo Uri(@"https://bulkapi.zerobounce.net/v2/sendfile");

    Utilizzando (var client = Nuovo HttpClient())
    Utilizzando (var request = Nuovo Httprequestmessage(HttpMethod.Post, uri))
    {
        Multipartformdatacontent multiPartContent = Nuovo Multipartformdatacontent();
        Bytearraycontent byteArrayContent = Nuovo Bytearraycontent(fileContents);
        byteArrayContent.Headers.INSERISCI("Tipo di contenuto", "text / csv");
        multiPartContent.INSERISCI(byteArrayContent, "file", fileName);
        multiPartContent.INSERISCI(Nuovo Stringcontent(apiKey), "api_key");
        multiPartContent.INSERISCI(Nuovo Stringcontent(emailAddressColumn.Accordare()), "email_address_column");
        Se (firstNameColumn != nullo)
            multiPartContent.INSERISCI(Nuovo Stringcontent(firstNameColumn.Accordare()), "first_name_column");
        Se (lastNameColumn != nullo)
            multiPartContent.INSERISCI(Nuovo Stringcontent(lastNameColumn.Accordare()), "last_name_column");
        Se (genderColumn != nullo)
            multiPartContent.INSERISCI(Nuovo Stringcontent(genderColumn.Accordare()), "gender_column");
        Se (ipAddressColumn != nullo)
            multiPartContent.INSERISCI(Nuovo Stringcontent(ipAddressColumn.Accordare()), "ip_address_column");
        Se (hasHeaderRow != nullo)
            multiPartContent.INSERISCI(Nuovo Stringcontent((hasHeaderRow == Vero) ? "vero" : "false"), "has_header_row");
        Se (returnUrl != nullo)
            multiPartContent.INSERISCI(Nuovo Stringcontent(returnUrl.Accordare()), "return_url");

        request.Content = multiPartContent;

        Utilizzando (var response = await client.SendAsync(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None).Configureawait(Falso))
        {
            var content = await response.Content.Readasstringasync();

            Se (response.IsSuccessStatusCode == Falso)
            {
                var error = $"StatusCode = {(int) response.StatusCode}, Content = {content}";
                Gettare Nuovo Eccezione(error);
            }

            Ritorno JsonConvert.Deserializeobject<Sendfilestatus>(content);
        }
    }
}
    

  <?php
// Le librerie e i wrapper API completi sono disponibili qui: 
// https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__php

$ ricciolo = curl_init();

curl_setopt_array($ ricciolo, vettore(
  CURLOPT_URL => "https://bulkapi.zerobounce.net/v2/sendfile",
  CURLOPT_RETURNTRANSFER => Vero,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "INVIARE",
  CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="api_key"replacewithyours------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="email_address_column"replacewithyours------WebKitFormBoundary7MA4YWxkTrZu0gW--",
  CURLOPT_HTTPHEADER => vettore(
    "Postino-token: fae6714d-dc09- 4 e08-b50d-c97030603b61",
    "controllo cache: no-cache",
    "content-type: multipart / form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW"
  ),
));

$ risposta = curl_exec($ ricciolo);
$ err = curl_error($ ricciolo);

curl_close($ ricciolo);

Se ($ err) {
  eco "Errore cURL #:" . $ err;
} altro {
  eco $ risposta;
}
?>
    


  // Le librerie e i wrapper API completi sono disponibili qui: 
  //https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__java

  Okhttpclient client = Nuovo Okhttpclient();

  Tipo di supporto mediaType = Tipo di supporto.parse("multipart / form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW");
  Requestbody body = Requestbody.creare(mediaType, "------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="api_key"replacewithyours------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="email_address_column"replacewithyours------WebKitFormBoundary7MA4YWxkTrZu0gW--");
  Richiesta request = Nuovo Richiesta.Costruttore()
    .url("https://bulkapi.zerobounce.net/v2/sendfile")
    .inviare(body)
    .AddHeader("Tipo di contenuto", "multipart / form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW")
    .AddHeader("cache-control", "no-cache")
    .AddHeader("Postino-token", "25 6 d608ba- cb5- 4 88 c8c- d7-d47276c67d8e")
    .costruire();
  
  Risposta response = client.nuova chiamata(request).eseguire();
    

  # Librerie e wrapper API completi sono disponibili qui: 
  # https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__python

  importare http.client

  conn = http.client.HTTPConnection("bulkapi, zerobounce netti")
  
  payload = "------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="api_key"replacewithyours------WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition: form-data; name="email_address_column"replacewithyours------WebKitFormBoundary7MA4YWxkTrZu0gW--"
  
  headers = {
      'tipo di contenuto': "multipart / form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW",
      'cache-control': "no-cache",
      'Postino-token': "bc455eda- 9884-417 e-b16f- 3 a5fef3f7540"
      }
  
  conn.request("INVIARE", "v2, sendfile", payload, headers)
  
  res = conn.getresponse()
  data = res.read()
  
  stampare(data.decode("utf- 8"))
    
    


  // Le librerie e i wrapper API completi sono disponibili qui: 
  // https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__IOS

  importare FONDAZIONE

  permettere headers = [
    "Tipo di contenuto": "multipart / form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW",
    "cache-control": "no-cache",
    "Postino-token": "2 f68fcc3-d9b6- 458 b-b613- 56 f6a03e6617"
  ]
  permettere parameters = [
    [
      "nome": "api_key",
      "valore": "replacewithyours"
    ],
    [
      "nome": "email_address_column",
      "valore": "replacewithyours"
    ]
  ]
  
  permettere boundary = "---- WebKitFormBoundary7MA4YWxkTrZu0gW"
  
  var body = ""
  var error: NSError? = zero
  per param in parameters {
    permettere paramName = param["nome"]!
    body += "--(confine)"
    body += "Disposizione del contenuto: form-data; name ="(paramName)""
    Se permettere filename = param["nome del file"] {
      permettere contentType = param["Tipo di contenuto"]!
      permettere fileContent = Corda(contentsOfFile: filename, encoding: Corda.Codifica.utf8)
      Se (error != zero) {
        stampare(error)
      }
      body += "; nomefile ="(filename)""
      body += "Tipo di contenuto: (contentType)"
      body += fileContent
    } altro Se permettere paramValue = param["valore"] {
      body += "(paramvalue)"
    }
  }
  
  permettere request = Nsmutableurlrequest(url: NSURL(string: "https://bulkapi.zerobounce.net/v2/sendfile")! Come url,
                                          cachePolicy: .useProtocolCachePolicy,
                                      timeoutInterval: 10.0)
  request.httpMethod = "INVIARE"
  request.allHTTPHeaderFields = headers
  request.httpBody = postData Come Dati
  
  permettere session = Urlsession.shared
  permettere dataTask = session.datatask(with: request Come URLRequest, completionHandler: { (data, response, error) -> vuoto in
    Se (error != zero) {
      stampare(error)
    } altro {
      permettere httpResponse = response Come? Httpurlresponse
      stampare(httpResponse)
    }
  })
  
  dataTask.curriculum vitae()
    


  // Le librerie e i wrapper API completi sono disponibili qui: 
  // https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__IOS


// Seleziona la lingua VB o C # per l'importazione del file # esempio campione #  <Foundation/Foundation.h>

NSDictionary *headers = @{ @"tipo di contenuto": @ "multipart / form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW",
                            @ "cache-control": @ "no-cache",
                            @ "Postino-token": @ "92 624 c5b06e- f- 44 e5-bd86-f537bc6cef67" };
NSArray *parameters = @[ @{ @"nome": @ "api_key", @"valore": @ "replacewithyours" },
                          @{ @"nome": @ "email_address_column", @"valore": @ "replacewithyours" } ];
NSString *boundary = @ "---- WebKitFormBoundary7MA4YWxkTrZu0gW";

NSError *error;
NSMutableString *body = [NSMutableString string];
per (NSDictionary *param in parameters) {
    [body appendFormat:@"--%@", boundary];
    Se (param[@"nome del file"]) {
        [body appendFormat:@ "Disposizione dei contenuti: form-data; name ="%@ "; nome file ="%@"", param[@"nome"], param[@"nome del file"]];
        [body appendFormat:@"Tipo di contenuto: %@", param[@"tipo di contenuto"]];
        [body appendFormat:@"%@", [NSString stringWithContentsOfFile:param[@"nome del file"] encoding:NSUTF8StringEncoding error:&error]];
        Se (error) {
            NSLog(@"%@", error);
        }
    } altro {
        [body appendFormat:@ "Disposizione dei contenuti: form-data; name ="%@"", param[@"nome"]];
        [body appendFormat:@"%@", param[@"valore"]];
    }
}
[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:@"INVIARE"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];

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


  // Le librerie e i wrapper API completi sono disponibili qui: 
  // https://www.zerobounce.net/docs/zerobounce-api-wrappers/#api_wrappers__v2__android

//N/A
    

Risposta dell'endpoint

Risposta riuscita

      
{
  "successo": Vero,
  "messaggio": "File accettato",
  "nome del file": "Il tuo nome file.csv",
  "file_id": "aaaaaaaa-zzzz-xxxx-yyyy 5003727 fffff"
}
    

Risposta all'errore

      
    {
      "successo": Falso,
      "messaggio": [
          "Messaggio di errore"
      ]
  }