← Docs / Quickstart
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. Hello world — enviar 1 email
php
<?php
$KEY = getenv('SIMPLESMAIL_KEY'); // sm_live_...
$ch = curl_init('https://api.simplesmail.itbooster.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;3. Listar mensagens
php
<?php
$ch = curl_init('https://api.simplesmail.itbooster.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 API key
php
<?php
$ch = curl_init('https://api.simplesmail.itbooster.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'];5. Verificar domínio
php
<?php
// 1) Cadastrar domínio
$ch = curl_init('https://api.simplesmail.itbooster.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.simplesmail.itbooster.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 inclui os registros DNS (DKIM CNAME, SPF, DMARC) que você precisa publicar no provedor do domínio. Depois de publicar, chame POST /v1/domains/{id}/verify para forçar a verificação.
Próximos passos
- · Referência completa OpenAPI
- · Migrando do Resend, Postmark, SendGrid ou Mailgun
- · Webhooks de eventos (delivered, bounced, complained, opened, clicked) — disponíveis em
GET /v1/events