Enviar E-mail
Envie e-mails transacionais individuais usando o endpoint /v3/smtp/email.
Endpoint
POST /v3/smtp/emailCorpo do Pedido
E-mail Básico
{ "sender": { "name": "A Sua Aplicação", }, "to": [ { "name": "John Doe" } ], "subject": "Bem-vindo ao nosso serviço!", "htmlContent": "<html><body><h1>Bem-vindo!</h1><p>Obrigado por se registar.</p></body></html>"}E-mail Avançado
{ "sender": { "name": "A Sua Aplicação", }, "to": [ { "name": "John Doe" } ], "cc": [ { "name": "CC User" } ], "bcc": [ { } ], "subject": "Confirmação de Pedido #{{order_id}}", "htmlContent": "<html><body><h1>Pedido Confirmado</h1><p>O seu pedido {{order_id}} foi confirmado.</p></body></html>", "textContent": "O seu pedido {{order_id}} foi confirmado.", "params": { "order_id": "12345" }, "tags": ["transactional", "order-confirmation"], "headers": { "X-Custom-Header": "custom-value" }}Exemplos de Código
JavaScript/Node.js
const brevo = require('@brevo/api');
const apiInstance = new brevo.TransactionalEmailsApi();apiInstance.setApiKey(brevo.TransactionalEmailsApiApiKeys.apiKey, process.env.BREVO_API_KEY);
const sendEmail = async () => { const sendSmtpEmail = new brevo.SendSmtpEmail();
sendSmtpEmail.subject = "Bem-vindo ao nosso serviço!"; sendSmtpEmail.htmlContent = "<html><body><h1>Bem-vindo!</h1></body></html>";
try { const result = await apiInstance.sendTransacEmail(sendSmtpEmail); console.log('E-mail enviado:', result); return result; } catch (error) { console.error('Erro ao enviar e-mail:', error); throw error; }};Python
import sib_api_v3_sdkfrom sib_api_v3_sdk.rest import ApiException
configuration = sib_api_v3_sdk.Configuration()configuration.api_key['api-key'] = 'YOUR_API_KEY'
api_instance = sib_api_v3_sdk.TransactionalEmailsApi(sib_api_v3_sdk.ApiClient(configuration))
send_smtp_email = sib_api_v3_sdk.SendSmtpEmail( subject="Bem-vindo ao nosso serviço!", html_content="<html><body><h1>Bem-vindo!</h1></body></html>")
try: api_response = api_instance.send_transac_email(send_smtp_email) print(api_response)except ApiException as e: print("Exceção ao chamar TransactionalEmailsApi->send_transac_email: %s\n" % e)cURL
curl -X POST "https://api.brevo.com/v3/smtp/email" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "api-key: YOUR_API_KEY" \ -d '{ "sender": { "name": "A Sua Aplicação", "email": "[email protected]" }, "to": [ { "email": "[email protected]", "name": "John Doe" } ], "subject": "Bem-vindo ao nosso serviço!", "htmlContent": "<html><body><h1>Bem-vindo!</h1></body></html>" }'Resposta
Resposta de Sucesso (201 Created)
{}Respostas de Erro
Chave de API Inválida (401)
{ "code": "unauthorized", "message": "Invalid API key provided"}Formato de E-mail Inválido (400)
{ "code": "invalid_parameter", "message": "Invalid email format in 'to' field"}Limite de Taxa Excedido (429)
{ "code": "too_many_requests", "message": "Rate limit exceeded"}Parâmetros
Parâmetros Obrigatórios
| Parâmetro | Tipo | Descrição |
|---|---|---|
sender | objeto | Informações do remetente |
to | array | Array de objetos de destinatários |
subject | string | Assunto do e-mail |
Parâmetros Opcionais
| Parâmetro | Tipo | Descrição |
|---|---|---|
htmlContent | string | Conteúdo HTML do e-mail |
textContent | string | Conteúdo de texto do e-mail |
cc | array | Destinatários em CC |
bcc | array | Destinatários em BCC |
replyTo | objeto | Endereço de resposta |
attachments | array | Anexos de ficheiros |
params | objeto | Parâmetros de template |
tags | array | Tags de e-mail para rastreamento |
headers | objeto | Cabeçalhos personalizados |
Variáveis de Template
Use variáveis de template no assunto e conteúdo:
{ "subject": "Bem-vindo {{firstName}}!", "htmlContent": "<h1>Olá {{firstName}} {{lastName}}</h1>", "params": { "firstName": "John", "lastName": "Doe" }}Anexos
Inclua anexos de ficheiros:
{ "attachments": [ { "content": "base64_encoded_content", "name": "fatura.pdf" }, { "url": "https://example.com/document.pdf", "name": "documento.pdf" } ]}Melhores Práticas
- Inclua sempre conteúdo HTML e texto para melhor entregabilidade
- Use variáveis de template em vez de concatenar conteúdo
- Inclua informações adequadas do remetente para evitar filtros de spam
- Adicione tags para rastreamento e análise
- Valide endereços de e-mail antes de enviar
- Trate erros de forma adequada com lógica de repetição
Limites de Taxa
- Contas gratuitas: 300 e-mails/dia
- Contas pagas: Baseado no seu plano
- Limite de rajada: 100 e-mails/minuto
Rastreamento
Os e-mails enviados através deste endpoint são rastreados automaticamente para:
- Estado de entrega
- Taxas de abertura
- Rastreamento de cliques
- Gestão de rejeições
Consulte análises detalhadas no seu painel Brevo em Estatísticas → Transacional.