Pular para o conteúdo
Voltar para a home

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/guzzle

2. 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.

Em outra linguagem

Node.js, Python, cURL.