Enviar E-mail

Envie e-mails transacionais individuais usando o endpoint /v3/smtp/email.

Endpoint

POST /v3/smtp/email

Corpo do Pedido

E-mail Básico

{
"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><p>Obrigado por se registar.</p></body></html>"
}

E-mail Avançado

{
"sender": {
"name": "A Sua Aplicação",
"email": "[email protected]"
},
"to": [
{
"email": "[email protected]",
"name": "John Doe"
}
],
"cc": [
{
"email": "[email protected]",
"name": "CC User"
}
],
"bcc": [
{
"email": "[email protected]"
}
],
"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>";
sendSmtpEmail.sender = { name: "A Sua Aplicação", email: "[email protected]" };
sendSmtpEmail.to = [{ email: "[email protected]", name: "John Doe" }];
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_sdk
from 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(
to=[{"email": "[email protected]", "name": "John Doe"}],
sender={"name": "A Sua Aplicação", "email": "[email protected]"},
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

Terminal window
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)

{
"messageId": "<[email protected]>"
}

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âmetroTipoDescrição
senderobjetoInformações do remetente
toarrayArray de objetos de destinatários
subjectstringAssunto do e-mail

Parâmetros Opcionais

ParâmetroTipoDescrição
htmlContentstringConteúdo HTML do e-mail
textContentstringConteúdo de texto do e-mail
ccarrayDestinatários em CC
bccarrayDestinatários em BCC
replyToobjetoEndereço de resposta
attachmentsarrayAnexos de ficheiros
paramsobjetoParâmetros de template
tagsarrayTags de e-mail para rastreamento
headersobjetoCabeç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

  1. Inclua sempre conteúdo HTML e texto para melhor entregabilidade
  2. Use variáveis de template em vez de concatenar conteúdo
  3. Inclua informações adequadas do remetente para evitar filtros de spam
  4. Adicione tags para rastreamento e análise
  5. Valide endereços de e-mail antes de enviar
  6. 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ísticasTransacional.

Endpoints Relacionados

Assistente AI

Olá! Pergunte-me qualquer coisa sobre a documentação.

Comece grátis com Brevo