Pular para o conteúdo principal

Configuração SMTP

O Notifica oferece um servidor SMTP relay que permite enviar emails usando qualquer cliente ou biblioteca SMTP. Ideal para integrar com aplicações existentes sem mudar o código de envio.

Credenciais SMTP

ParâmetroValor
Hostsmtp.usenotifica.com.br
Porta587 (recomendado) ou 2525 (alternativa)
SegurançaSTARTTLS (obrigatório)
Usuárioapikey
SenhaSua API key do Notifica
informação

O username é sempre a string literal apikey. A senha é a sua API key completa, gerada no dashboard em Configurações → API Keys.

Porta alternativa

Se a porta 587 estiver bloqueada na sua rede ou provedor de hospedagem, use a porta 2525 — é a mesma infraestrutura, mesma segurança.


Como funciona

  1. Sua aplicação conecta ao SMTP relay do Notifica na porta 587
  2. O STARTTLS é negociado para criptografar a conexão
  3. Autenticação via AUTH PLAIN ou AUTH LOGIN com username apikey e sua API key
  4. O email é recebido, parseado e enfileirado para entrega via infraestrutura do Notifica
  5. Cada destinatário gera uma notificação rastreável no dashboard
dica

Emails enviados via SMTP aparecem no dashboard como qualquer outra notificação, com status de entrega, logs e analytics.


Exemplos por linguagem

Node.js (Nodemailer)

npm install nodemailer
const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
host: 'smtp.usenotifica.com.br',
port: 587,
secure: false, // STARTTLS, not direct TLS
auth: {
user: 'apikey',
pass: process.env.NOTIFICA_API_KEY,
},
});

async function sendEmail() {
const info = await transporter.sendMail({
from: '"Minha App" <[email protected]>',
to: '[email protected]',
subject: 'Bem-vindo ao nosso app!',
text: 'Obrigado por se cadastrar.',
html: '<h1>Bem-vindo!</h1><p>Obrigado por se cadastrar.</p>',
});

console.log('Message sent:', info.messageId);
}

sendEmail().catch(console.error);

Python (smtplib)

import smtplib
import os
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_email():
msg = MIMEMultipart("alternative")
msg["Subject"] = "Bem-vindo ao nosso app!"
msg["From"] = "Minha App <[email protected]>"
msg["To"] = "[email protected]"

text = "Obrigado por se cadastrar."
html = "<h1>Bem-vindo!</h1><p>Obrigado por se cadastrar.</p>"

msg.attach(MIMEText(text, "plain"))
msg.attach(MIMEText(html, "html"))

with smtplib.SMTP("smtp.usenotifica.com.br", 587) as server:
server.starttls()
server.login("apikey", os.environ["NOTIFICA_API_KEY"])
server.sendmail(
"[email protected]",
["[email protected]"],
msg.as_string(),
)
print("Email sent!")

send_email()

Ruby (ActionMailer / Rails)

config/environments/production.rb:

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.usenotifica.com.br',
port: 587,
user_name: 'apikey',
password: ENV['NOTIFICA_API_KEY'],
authentication: :plain,
enable_starttls_auto: true,
domain: 'suaempresa.com.br'
}

app/mailers/user_mailer.rb:

class UserMailer < ApplicationMailer
default from: 'Minha App <[email protected]>'

def welcome_email(user)
@user = user
mail(to: @user.email, subject: 'Bem-vindo ao nosso app!')
end
end

Elixir (Swoosh)

config/runtime.exs:

config :my_app, MyApp.Mailer,
adapter: Swoosh.Adapters.SMTP,
relay: "smtp.usenotifica.com.br",
port: 587,
username: "apikey",
password: System.get_env("NOTIFICA_API_KEY"),
tls: :if_available,
auth: :always,
retries: 2

lib/my_app/mailer.ex:

defmodule MyApp.Mailer do
use Swoosh.Mailer, otp_app: :my_app
end

Envio:

import Swoosh.Email

new()
|> to({"Usuário", "[email protected]"})
|> from({"Minha App", "[email protected]"})
|> subject("Bem-vindo ao nosso app!")
|> html_body("<h1>Bem-vindo!</h1><p>Obrigado por se cadastrar.</p>")
|> text_body("Obrigado por se cadastrar.")
|> MyApp.Mailer.deliver()

Go (net/smtp)

package main

import (
"fmt"
"net/smtp"
"os"
)

func main() {
auth := smtp.PlainAuth("", "apikey", os.Getenv("NOTIFICA_API_KEY"), "smtp.usenotifica.com.br")

to := []string{"[email protected]"}
msg := []byte("From: Minha App <[email protected]>\r\n" +
"To: [email protected]\r\n" +
"Subject: Bem-vindo ao nosso app!\r\n" +
"Content-Type: text/html; charset=UTF-8\r\n" +
"\r\n" +
"<h1>Bem-vindo!</h1><p>Obrigado por se cadastrar.</p>\r\n")

err := smtp.SendMail("smtp.usenotifica.com.br:587", auth, "[email protected]", to, msg)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Println("Email sent!")
}

PHP (PHPMailer)

<?php
use PHPMailer\PHPMailer\PHPMailer;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

$mail->isSMTP();
$mail->Host = 'smtp.usenotifica.com.br';
$mail->SMTPAuth = true;
$mail->Username = 'apikey';
$mail->Password = getenv('NOTIFICA_API_KEY');
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$mail->CharSet = 'UTF-8';

$mail->setFrom('[email protected]', 'Minha App');
$mail->addAddress('[email protected]');
$mail->Subject = 'Bem-vindo ao nosso app!';
$mail->isHTML(true);
$mail->Body = '<h1>Bem-vindo!</h1><p>Obrigado por se cadastrar.</p>';
$mail->AltBody = 'Obrigado por se cadastrar.';

$mail->send();
echo "Email sent!\n";

Rate limits

PlanoLimite por minutoLimite diário
Grátis10 emails/min500 emails/dia
Startup100 emails/min5.000 emails/dia
Profissional500 emails/min25.000 emails/dia
Empresa2.000 emails/min100.000 emails/dia
aviso

Quando o rate limit é atingido, o servidor SMTP retorna 451 Too many requests. Implemente retry com backoff exponencial no seu cliente.


Respostas SMTP

CódigoSignificado
250Sucesso
451Falha temporária (retry recomendado)
530Autenticação necessária (AUTH não executado)
535Autenticação falhou (API key inválida ou revogada)
550Domínio não verificado ou bloqueado

Boas práticas

Segurança

  • Nunca coloque a API key no código-fonte. Use variáveis de ambiente (NOTIFICA_API_KEY)
  • Use STARTTLS (porta 587) — conexões sem TLS são rejeitadas
  • Rotacione API keys periodicamente via dashboard

Performance

  • Reutilize conexões SMTP quando possível. Abrir uma nova conexão TCP + TLS handshake para cada email é lento e desperdiça recursos
  • Para envios em massa (>100 emails), prefira a API REST com batch, que oferece melhor throughput
  • Implemente retry com backoff: 1s → 2s → 4s → 8s → desiste

Entregabilidade

  • Verifique seu domínio antes de enviar. Emails de domínios não verificados são rejeitados
  • Configure SPF, DKIM e DMARC. Veja Configuração de Domínio
  • Inclua sempre uma versão text/plain além do HTML
  • Adicione o header List-Unsubscribe para emails marketing
  • Monitore bounces e reclamações no dashboard

Debugging

Teste a conexão SMTP manualmente com swaks:

swaks \
--to [email protected] \
--from [email protected] \
--server smtp.usenotifica.com.br \
--port 587 \
--tls \
--auth-user apikey \
--auth-password "$NOTIFICA_API_KEY" \
--header "Subject: Teste SMTP" \
--body "Email de teste via Notifica SMTP relay"

Ou com openssl para debug de TLS:

openssl s_client -starttls smtp -connect smtp.usenotifica.com.br:587

SMTP vs API REST

CritérioSMTP RelayAPI REST
SetupMínimo — troque apenas as credenciais SMTPRequer integração via HTTP
ThroughputBom para volume moderadoMelhor para alto volume (batch)
RastreamentoBásico (message ID)Completo (status, webhooks, analytics)
TemplatesNão suportado (envie HTML pronto)Suportado (variáveis, preview)
Melhor paraApps legados, frameworks com SMTP built-inApps novas, integrações ricas
dica

Se você está começando um projeto novo, considere usar a API REST diretamente. O SMTP relay é ideal para migrar aplicações existentes sem reescrever o código de envio.


Próximos passos