SDKs

Bibliotecas oficiais para integrar o FlowMail na sua aplicação. Todos os SDKs oferecem tipagem completa, tratamento de erros e suporte a verificação individual e em lote.

Instalação

PHP

via Composer

flowmail/flowmail-php
Python

via pip

flowmail
Node.js

via npm

flowmail
INSTALAÇÃO
# PHP
composer require flowmail/flowmail-php

# Python
pip install flowmail

# Node.js
npm install flowmail

PHP

Requer PHP 8.1+ e a extensão cURL. Compatível com Laravel, Symfony e qualquer framework PHP.

Verificação individual

PHP
<?php

use FlowMail\FlowMail;

$client = new FlowMail('fm_live_xxx');

$result = $client->verify('usuario@exemplo.com');

echo $result->email;        // usuario@exemplo.com
echo $result->status;       // valid, invalid, risky, unknown
echo $result->score;        // 0.0 a 1.0
echo $result->reason;       // Motivo detalhado
echo $result->isDeliverable(); // true/false

Verificação em lote

PHP - LOTE
<?php

use FlowMail\FlowMail;

$client = new FlowMail('fm_live_xxx');

$emails = [
    'joao@empresa.com.br',
    'maria@gmail.com',
    'contato@dominio-invalido.xyz',
];

// Criar job de verificação em lote
$job = $client->verifyBatch($emails);

echo $job->id;       // job_abc123def456
echo $job->status;   // processing

// Consultar status do job
$job = $client->getBatchJob($job->id);

if ($job->isCompleted()) {
    foreach ($job->results as $result) {
        echo "{$result->email}: {$result->status}\n";
    }
}

Python

Requer Python 3.8+. Suporta chamadas síncronas e assíncronas (async/await).

Verificação individual

PYTHON
from flowmail import FlowMail

client = FlowMail('fm_live_xxx')

result = client.verify('usuario@exemplo.com')

print(result.email)          # usuario@exemplo.com
print(result.status)         # valid, invalid, risky, unknown
print(result.score)          # 0.0 a 1.0
print(result.reason)         # Motivo detalhado
print(result.is_deliverable) # True/False

Verificação em lote

PYTHON - LOTE
from flowmail import FlowMail

client = FlowMail('fm_live_xxx')

emails = [
    'joao@empresa.com.br',
    'maria@gmail.com',
    'contato@dominio-invalido.xyz',
]

# Criar job de verificação em lote
job = client.verify_batch(emails)

print(job.id)       # job_abc123def456
print(job.status)   # processing

# Consultar status do job
job = client.get_batch_job(job.id)

if job.is_completed:
    for result in job.results:
        print(f"{result.email}: {result.status}")

Node.js

Requer Node.js 18+. Todas as chamadas retornam Promises. Compatível com ESM e CommonJS.

Verificação individual

JAVASCRIPT
import { FlowMail } from 'flowmail';

const client = new FlowMail('fm_live_xxx');

const result = await client.verify('usuario@exemplo.com');

console.log(result.email);          // usuario@exemplo.com
console.log(result.status);         // valid, invalid, risky, unknown
console.log(result.score);          // 0.0 a 1.0
console.log(result.reason);         // Motivo detalhado
console.log(result.isDeliverable);  // true/false

Verificação em lote

JAVASCRIPT - LOTE
import { FlowMail } from 'flowmail';

const client = new FlowMail('fm_live_xxx');

const emails = [
    'joao@empresa.com.br',
    'maria@gmail.com',
    'contato@dominio-invalido.xyz',
];

// Criar job de verificação em lote
const job = await client.verifyBatch(emails);

console.log(job.id);       // job_abc123def456
console.log(job.status);   // processing

// Consultar status do job
const updatedJob = await client.getBatchJob(job.id);

if (updatedJob.isCompleted) {
    for (const result of updatedJob.results) {
        console.log(`${result.email}: ${result.status}`);
    }
}

Repositórios

Todos os SDKs são open source. Contribuições, issues e sugestões são bem-vindas.