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âmetro | Valor |
|---|---|
| Host | smtp.usenotifica.com.br |
| Porta | 587 (recomendado) ou 2525 (alternativa) |
| Segurança | STARTTLS (obrigatório) |
| Usuário | apikey |
| Senha | Sua API key do Notifica |
O username é sempre a string literal apikey. A senha é a sua API key completa, gerada no dashboard em Configurações → API Keys.
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
- Sua aplicação conecta ao SMTP relay do Notifica na porta 587
- O STARTTLS é negociado para criptografar a conexão
- Autenticação via
AUTH PLAINouAUTH LOGINcom usernameapikeye sua API key - O email é recebido, parseado e enfileirado para entrega via infraestrutura do Notifica
- Cada destinatário gera uma notificação rastreável no dashboard
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
| Plano | Limite por minuto | Limite diário |
|---|---|---|
| Grátis | 10 emails/min | 500 emails/dia |
| Startup | 100 emails/min | 5.000 emails/dia |
| Profissional | 500 emails/min | 25.000 emails/dia |
| Empresa | 2.000 emails/min | 100.000 emails/dia |
Quando o rate limit é atingido, o servidor SMTP retorna 451 Too many requests. Implemente retry com backoff exponencial no seu cliente.
Respostas SMTP
| Código | Significado |
|---|---|
250 | Sucesso |
451 | Falha temporária (retry recomendado) |
530 | Autenticação necessária (AUTH não executado) |
535 | Autenticação falhou (API key inválida ou revogada) |
550 | Domí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/plainalém do HTML - Adicione o header
List-Unsubscribepara 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ério | SMTP Relay | API REST |
|---|---|---|
| Setup | Mínimo — troque apenas as credenciais SMTP | Requer integração via HTTP |
| Throughput | Bom para volume moderado | Melhor para alto volume (batch) |
| Rastreamento | Básico (message ID) | Completo (status, webhooks, analytics) |
| Templates | Não suportado (envie HTML pronto) | Suportado (variáveis, preview) |
| Melhor para | Apps legados, frameworks com SMTP built-in | Apps novas, integrações ricas |
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
- Configuração de Domínio — Verifique seu domínio de envio
- Templates de Email — Crie templates reutilizáveis via API
- Quickstart Email — Envie seu primeiro email em 5 minutos