SimplesMail

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

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