Começar
Quickstart PHP
Funciona com PHP 7.4+. Os exemplos usam cURL nativo (sem dependências). Para Guzzle, troque o bloco de cURL por GuzzleHttp\Client.
1. Instalação
shell
# Sem dependências (cURL nativo).# Para Guzzle (opcional):composer require guzzlehttp/guzzle2. Enviar o primeiro e-mail
php
<?php$KEY = getenv('JETSEND_KEY'); // sm_live_...$ch = curl_init('https://api.jetsend.com.br/v1/messages');curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . $KEY, 'Content-Type: application/json', ], CURLOPT_POSTFIELDS => json_encode([ 'from' => 'no-reply@suaempresa.com.br', 'fromName' => 'Sua Empresa', 'to' => 'cliente@exemplo.com', 'subject' => 'Bem-vindo!', 'html' => '<h1>Olá!</h1><p>Sua conta foi criada.</p>', ]),]);$response = json_decode(curl_exec($ch), true);$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);curl_close($ch);if ($status >= 400) { throw new RuntimeException($response['error']['message'] ?? 'Erro');}echo "Enviado: " . $response['id'] . PHP_EOL;Para exercitar devolução e reclamação sem gastar reputação, troque o destinatário por um apelido de teste.
3. Listar mensagens
php
<?php$ch = curl_init('https://api.jetsend.com.br/v1/messages?limit=50&status=delivered');curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $KEY],]);$response = json_decode(curl_exec($ch), true);curl_close($ch);echo count($response['data']) . " mensagens, cursor=" . ($response['nextCursor'] ?? 'null');4. Criar chave de API
php
<?php$ch = curl_init('https://api.jetsend.com.br/v1/api-keys');curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . $KEY, 'Content-Type: application/json', ], CURLOPT_POSTFIELDS => json_encode(['name' => 'Produção webhook']),]);$response = json_decode(curl_exec($ch), true);curl_close($ch);// IMPORTANTE: 'key' só aparece nesta resposta. Guarde com segurança.echo "Nova API key: " . $response['key'];A chave aparece uma vez só. O que cada tipo de chave pode fazer está em Autenticação.
5. Verificar domínio
php
<?php// 1) Cadastrar domínio$ch = curl_init('https://api.jetsend.com.br/v1/domains');curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . $KEY, 'Content-Type: application/json', ], CURLOPT_POSTFIELDS => json_encode(['domain' => 'suaempresa.com.br']),]);$create = json_decode(curl_exec($ch), true);curl_close($ch);print_r($create['dnsRecords']);// 2) Após publicar DKIM/SPF/DMARC, forçar verificação$ch = curl_init('https://api.jetsend.com.br/v1/domains/' . $create['id'] . '/verify');curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $KEY],]);$verify = json_decode(curl_exec($ch), true);curl_close($ch);echo "Status: " . $verify['status'];A resposta traz os registros de DNS (CNAME de DKIM e TXT de SPF) que você precisa publicar no provedor do domínio. Depois de publicar, chame POST /v1/domains/{id}/verify para forçar a verificação. O passo a passo, com as pegadinhas de provedor brasileiro, está em Verificar domínio.
