Pular para o conteúdo

Conectar seu sistema ao servidor SMTP

Com o domínio cadastrado e uma credencial criada, falta configurar o seu sistema — loja, ERP, CRM ou aplicação própria — para enviar pelo servidor SMTP da iPORTO.

  • Um domínio cadastrado e uma credencial — veja Criar uma credencial SMTP.
  • A rede de onde o seu sistema envia precisa permitir conexões de saída na porta 587.
  1. No painel do SMTP, abra o domínio em Infraestrutura → Domínios (SMTP).

  2. Na aba Credenciais, o card Servidor de Conexão traz os dados de conexão:

    Campo Valor
    Host (Servidor SMTP) o endereço mostrado no card — copie de lá
    Porta 587
    Criptografia TLS (STARTTLS)
    Usuário a credencial completa, como [email protected]
    Senha a senha mostrada no card da credencial
  3. Configure esses dados no seu sistema. O remetente (From) deve ser um endereço do domínio cadastrado.

  4. Faça um envio de teste para uma caixa sua e confira em Histórico de envio.

A aba Instalação do domínio traz exemplos prontos para Laravel, Nodemailer, Python e PHPMailer, já com os dados do seu domínio.

Troque HOST_DO_PAINEL, o usuário e a senha pelos valores do seu painel.

PHP (PHPMailer)

$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = 'HOST_DO_PAINEL';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'SENHA_DO_PAINEL';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$mail->setFrom('[email protected]', 'Sua Empresa');
$mail->addAddress('[email protected]');
$mail->isHTML(true);
$mail->Subject = 'Seu pedido foi confirmado';
$mail->Body = '<p>Olá! Recebemos o seu pedido.</p>';
$mail->send();

Node.js (Nodemailer)

const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
host: 'HOST_DO_PAINEL',
port: 587,
secure: false, // a criptografia é negociada por STARTTLS na porta 587
auth: { user: '[email protected]', pass: 'SENHA_DO_PAINEL' },
});
await transporter.sendMail({
from: '"Sua Empresa" <[email protected]>',
subject: 'Seu pedido foi confirmado',
html: '<p>Olá! Recebemos o seu pedido.</p>',
});

Python (smtplib)

import smtplib
from email.message import EmailMessage
msg = EmailMessage()
msg["Subject"] = "Seu pedido foi confirmado"
msg["From"] = "Sua Empresa <[email protected]>"
msg["To"] = "[email protected]"
msg.set_content("Olá! Recebemos o seu pedido.")
with smtplib.SMTP("HOST_DO_PAINEL", 587, timeout=30) as smtp:
smtp.starttls()
smtp.login("[email protected]", "SENHA_DO_PAINEL")
smtp.send_message(msg)

Para testar só a conexão e o TLS, pela linha de comando:

Janela do terminal
openssl s_client -starttls smtp -connect HOST_DO_PAINEL:587

Cada e-mail aceito pelo servidor entra no Histórico de Envio, com o status da entrega. Aceito pelo servidor não quer dizer entregue na caixa de entrada: o destino ainda pode recusar, adiar ou filtrar a mensagem — e é o histórico que mostra o que aconteceu.

Sintoma Causa provável O que fazer
Tempo esgotado ao conectar A porta 587 está bloqueada na sua rede ou no seu provedor de hospedagem Libere a saída na porta 587 no firewall, ou peça ao provedor
Erro de TLS / handshake Biblioteca ou OpenSSL desatualizado, ou o sistema tentou SSL direto em vez de STARTTLS Use STARTTLS na 587 (no Nodemailer, secure: false); atualize a biblioteca
535 Authentication credentials invalid Usuário ou senha errados Use o endereço completo como usuário e copie a senha pelo botão do painel
550 Relaying denied / Authentication required O sistema está enviando sem autenticar Ative a autenticação SMTP (LOGIN/PLAIN) na configuração do sistema
O e-mail sai mas não aparece no histórico O sistema está usando outro servidor de envio Confira o host configurado no sistema

Para falhas depois da conexão — e-mail recusado pelo destino, bounce, spam —, veja Entender por que um e-mail não foi entregue.