Alojamento web - Boas práticas de envio de e-mail

Ver como Markdown

Saiba porque a função PHP mail() é desaconselhada num alojamento partilhado e como configurar um envio SMTP autenticado através das suas contas de e-mail OVHcloud

Objetivo

Para que os seus e-mails cheguem corretamente aos seus destinatários, a OVHcloud implementa uma infraestrutura dedicada ao envio de saída, com filtragem anti-spam automática e vigilância contínua da reputação dos servidores. Para tirar pleno partido disto, é recomendado enviar os seus e-mails através de SMTP autenticado em vez da função PHP mail() nativa. Esta abordagem garante que cada e-mail é emitido com uma identidade verificável, o que melhora significativamente a entregabilidade e reduz o risco de classificação como spam.

Este guia apresenta-lhe as boas práticas e recomendações OVHcloud para enviar e-mails de forma fiável e segura a partir de um alojamento partilhado, quer gira um site WordPress, outro CMS ou uma aplicação PHP.

Requisitos


Acesso à Área de Cliente OVHcloud

  • Link direto:
  • Percurso de navegação: Web Cloud > Alojamentos > Selecione o seu alojamento web

Instruções

1. mail() ou SMTP autenticado: qual a diferença para si?

O que a OVHcloud faz para proteger os seus envios

A OVHcloud monitoriza permanentemente a reputação dos seus servidores de envio e filtra automaticamente as mensagens suspeitas — para que os seus e-mails legítimos não sejam prejudicados. Mas esta proteção tem um limite: a função PHP mail() não efetua qualquer controlo sobre a identidade do remetente declarado no e-mail (campo From:). Um e-mail enviado através de mail() pode, por isso, parecer provir de qualquer endereço, o que basta para acionar os filtros dos servidores de destino (Gmail, Outlook, etc.) e comprometer a entregabilidade dos seus próprios envios.

E-mails sem assinatura fiável

A função mail() envia e-mails sem garantir a identidade do remetente. Ora os servidores de destino (Gmail, Outlook, etc.) verificam se o e-mail provém realmente de um servidor autorizado pelo seu domínio, graças aos registos SPF e DKIM. Com mail(), esta verificação falha frequentemente: a mensagem corre então o risco de acabar no spam ou de ser rejeitada.

O envio através de SMTP autenticado resolve este problema: o e-mail é emitido pelo servidor OVHcloud autorizado para o seu domínio, com a assinatura correta.

Warning

Uma utilização abusiva da função mail() pode provocar o bloqueio automático dos envios do seu alojamento. Se verificar que os seus e-mails já não são enviados, consulte o guia Seguimento dos e-mails automatizados.

Formulários abertos: mais um vetor de abuso

Um formulário de contacto acessível publicamente, sem mecanismo de proteção, é um alvo privilegiado para os robôs. Estes exploram-no para desencadear o envio de milhares de e-mails em poucos minutos através do seu alojamento, provocando o bloqueio do IP partilhado e prejudicando todos os clientes do cluster.

Implemente as seguintes proteções em qualquer formulário que desencadeie um envio de e-mail:

  • Captcha: integre um sistema de verificação (Google reCAPTCHA v3, hCaptcha, ou um cálculo aritmético simples) para bloquear as submissões automatizadas.
  • Limitação do débito: limite o número de envios por endereço IP do lado do servidor para evitar os abusos em rajada.
  • Validação rigorosa das entradas: verifique e limpe todos os campos do formulário antes de os utilizar num e-mail — nunca confie nos dados introduzidos pelo utilizador.
Warning

A ausência de captcha num formulário de envio aberto é uma das causas mais frequentes de bloqueio dos alojamentos partilhados por envio de spam. Esta proteção é indispensável independentemente do método de envio utilizado.

2. A boa prática: utilizar uma conta de e-mail OVHcloud com SMTP autenticado

Princípio

Envie os seus e-mails através de uma ligação SMTP autenticada para o servidor de correio OVHcloud, utilizando uma conta de e-mail associada ao seu domínio (por exemplo contact@mydomain.ovh).

Esta abordagem apresenta três vantagens principais:

  • Autenticação garantida: o servidor OVHcloud verifica a sua identidade antes de aceitar o e-mail.
  • SPF e DKIM funcionais: o e-mail é emitido por um servidor autorizado para o seu domínio e assinado corretamente.
  • Rastreabilidade: cada envio está associado a uma conta identificada, o que permite intervir rapidamente em caso de abuso.

Porque é que o campo From: deve pertencer ao seu domínio

O campo From: do seu e-mail deve obrigatoriamente conter um endereço pertencente ao seu domínio (por exemplo contact@mydomain.ovh), e este endereço deve corresponder à conta SMTP utilizada para a autenticação.

Se o From: não corresponder ao domínio autorizado no registo SPF, ou se a assinatura DKIM não corresponder, os servidores de correio de destino (Gmail, Outlook, etc.) podem rejeitar ou classificar o e-mail como spam.

Tip

Para maximizar a entregabilidade, verifique se os registos SPF, DKIM e DMARC estão bem configurados na sua zona DNS. O Gmail e o Yahoo Mail exigem-nos agora para os remetentes em volume. Consulte os nossos guias:

Formulários de contacto: campo From: fixo e Reply-To: do utilizador

Um erro frequente consiste em colocar o endereço de e-mail introduzido pelo utilizador no formulário diretamente no campo From:. Por exemplo, um visitante introduz utilizador@gmail.com e o script utiliza este endereço como remetente.

Este comportamento é incorreto por duas razões:

  • O registo SPF do seu domínio não autoriza os servidores Gmail (ou qualquer outro fornecedor terceiro) a enviar em seu nome → falha do controlo SPF.
  • Está a enviar "em nome de" um endereço que não lhe pertence → risco elevado de classificação como spam ou de rejeição.

O esquema correto para um formulário de contacto:

Campo de e-mailValorFunção
From:contact@mydomain.ovh (endereço fixo do site)Remetente autenticado — nunca muda
Reply-To:Endereço introduzido pelo utilizador no formulárioPermite responder diretamente ao utilizador
Subject:Assunto da mensagem, prefixado (por exemplo [Contact])Identifica facilmente as mensagens do formulário

Assim, quando responde ao e-mail recebido, o seu cliente de correio envia a resposta para o endereço do utilizador através do campo Reply-To:, sem comprometer a autenticação SPF/DKIM.

Eis como adaptar o exemplo PHPMailer para um formulário de contacto:

// Dados fornecidos pelo utilizador (validar e limpar antes de utilizar)
$userEmail = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
$userName  = htmlspecialchars(strip_tags($_POST['name']));
$message   = htmlspecialchars(strip_tags($_POST['message']));

if (!$userEmail) {
    die('Invalid email address.');
}

// From: sempre fixo — o endereço do seu site, nunca o do utilizador
$mail->setFrom('contact@mydomain.ovh', 'O Meu Site Web');

// Reply-To: o endereço do utilizador, para poder responder-lhe diretamente
$mail->addReplyTo($userEmail, $userName);

// Destinatário: o próprio (recebe a mensagem do formulário)
$mail->addAddress('contact@mydomain.ovh', 'O Meu Site Web');

$mail->Subject = '[Contact] ' . $userName;
$mail->Body    = "Name: $userName\nEmail: $userEmail\n\nMessage:\n$message";
Tip

Nunca passe diretamente os dados de um formulário para o PHPMailer sem validação prévia. Utilize filter_var() para o endereço de e-mail e htmlspecialchars() + strip_tags() para os campos de texto, de forma a evitar as injeções de cabeçalhos de e-mail.

Parâmetros SMTP OVHcloud

Utilize os seguintes parâmetros para a sua conta de e-mail MX Plan (incluída no alojamento web):

ParâmetroValor
Servidor SMTPsmtp.mail.ovh.net
Porta (SSL/TLS)465 (recomendada)
Porta (STARTTLS)587
EncriptaçãoSSL/TLS (porta 465) ou STARTTLS (porta 587)
AutenticaçãoObrigatória
Nome de utilizadorEndereço de e-mail completo (por exemplo contact@mydomain.ovh)
Palavra-passePalavra-passe da conta de e-mail OVHcloud
Tip

Para as ofertas E-mail Pro ou Exchange, o servidor SMTP é diferente. Consulte a documentação de cada oferta para os parâmetros exatos.

Onde encontrar as suas credenciais SMTP

O nome de utilizador SMTP é o seu endereço de e-mail completo (por exemplo contact@mydomain.ovh).

A palavra-passe é a definida durante a criação do endereço, ou alterada a partir da Área de Cliente OVHcloud. Se a esqueceu ou pretende reiniciá-la, consulte o guia Alterar a palavra-passe de um endereço de e-mail.

Warning

A oferta MX Plan incluída no alojamento web está sujeita a quotas de envio (cerca de 200 e-mails por hora por conta). As soluções de correio não foram concebidas para o envio em massa: para volumes importantes — newsletters ou e-mails transacionais em massa — utilize um serviço de envio transacional terceiro, concebido para este fim.

Exemplo de código PHP com PHPMailer

O PHPMailer é a biblioteca PHP de referência para o envio de e-mails através de SMTP. Instale-a através do Composer:

composer require phpmailer/phpmailer

Eis um exemplo completo de envio SMTP autenticado:

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

require 'vendor/autoload.php';

$mail = new PHPMailer(true);

try {
    // Parâmetros do servidor SMTP OVHcloud
    $mail->isSMTP();
    $mail->Host       = 'smtp.mail.ovh.net';
    $mail->SMTPAuth   = true;
    $mail->Username   = 'contact@mydomain.ovh'; // O seu endereço de e-mail OVHcloud
    $mail->Password   = 'your_password';         // Palavra-passe da conta de e-mail
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // SSL/TLS
    $mail->Port       = 465;

    // Remetente: deve pertencer ao seu domínio
    $mail->setFrom('contact@mydomain.ovh', 'O Meu Site Web');
    $mail->addReplyTo('contact@mydomain.ovh', 'O Meu Site Web');

    // Destinatário
    $mail->addAddress('mary.johnson@example.com', 'Recipient Name');

    // Conteúdo
    $mail->isHTML(true);
    $mail->Subject = 'Your email subject';
    $mail->Body    = 'Email body in <b>HTML</b>';
    $mail->AltBody = 'Email body in plain text (fallback)';

    $mail->send();
    echo 'Email sent successfully.';
} catch (Exception $e) {
    echo "Error while sending: {$mail->ErrorInfo}";
}
Warning

Nunca armazene a palavra-passe da sua conta de e-mail em texto simples num ficheiro PHP versionado. Utilize um ficheiro de configuração excluído do seu repositório Git (.gitignore).

Info

Com esta configuração, cada e-mail enviado a partir do seu site é:

  • autenticado junto do servidor OVHcloud,
  • assinado com os registos SPF e DKIM do seu domínio,
  • rastreável em caso de abuso ou de problema de entregabilidade.

3. WordPress e outros CMS: utilizar um plugin SMTP

3.1 O problema com o WordPress por predefinição

A função wp_mail() do WordPress utiliza em segundo plano a função PHP mail(). Herda, por isso, todos os problemas descritos na secção anterior: ausência de autenticação, From: não controlado, risco de spam.

A solução consiste em instalar um plugin SMTP que substitui wp_mail() por uma ligação SMTP autenticada para o seu servidor de correio OVHcloud.

3.2 Configurar o WP Mail SMTP

O WP Mail SMTP é o plugin mais utilizado para esta configuração.

Instalação:

  1. Na sua administração WordPress, aceda a Plugins > Adicionar novo plugin.
  2. Procure WP Mail SMTP e clique em Instalar agora, depois em Ativar.

Configuração:

  1. Aceda a WP Mail SMTP > Definições no menu de administração.
  2. Na secção Remetente, preencha os seguintes campos:
CampoValor
E-mail do remetentecontact@mydomain.ovh (endereço pertencente ao seu domínio)
Nome do remetenteNome apresentado para o seu site (por exemplo O Meu Site Web)
  1. Na secção Mailer, selecione Outro SMTP.
  2. Preencha os parâmetros SMTP:
CampoValor
Host SMTPsmtp.mail.ovh.net
EncriptaçãoSSL/TLS
Porta SMTP465
AutenticaçãoAtivada
Nome de utilizador SMTPcontact@mydomain.ovh
Palavra-passe SMTPPalavra-passe da sua conta de e-mail OVHcloud
  1. Clique em Guardar definições.
  2. No separador Ferramentas, utilize Teste de envio de e-mail para verificar a configuração.
Tip

Ative a opção Forçar o e-mail do remetente para que todos os e-mails de saída utilizem o endereço configurado, mesmo que um plugin terceiro tente utilizar outro.

3.3 Alternativa: FluentSMTP

O FluentSMTP é uma alternativa leve e gratuita, sem limitação no volume de envio.

Instalação:

  1. Na sua administração WordPress, aceda a Plugins > Adicionar novo plugin.
  2. Procure FluentSMTP e clique em Instalar agora, depois em Ativar.

Configuração:

  1. Aceda a FluentSMTP > Definições.
  2. Clique em Adicionar uma ligação e selecione Outro SMTP.
  3. Preencha os mesmos parâmetros que para o WP Mail SMTP:
CampoValor
Hostsmtp.mail.ovh.net
Porta465
EncriptaçãoSSL/TLS
AutenticaçãoSim
Nome de utilizadorcontact@mydomain.ovh
Palavra-passePalavra-passe da sua conta de e-mail OVHcloud
E-mail do remetentecontact@mydomain.ovh
  1. Clique em Guardar a ligação e envie um e-mail de teste.

3.4 Outros CMS (Drupal, Joomla, PrestaShop)

O princípio é idêntico para qualquer CMS ou framework: substituir a função de envio nativa por um módulo ou uma configuração SMTP autenticada.

CMSMódulo recomendado
DrupalSMTP Authentication Support
JoomlaConfiguração nativa: Sistema > Configuração global > separador Servidor > secção Definições de correio
PrestaShopParâmetros avançados > E-mail — escolher Utilizar os meus próprios parâmetros SMTP

Em todos os casos, os parâmetros SMTP a utilizar são idênticos: servidor smtp.mail.ovh.net, porta 465 (SSL/TLS) ou 587 (STARTTLS), com autenticação pelo endereço de e-mail completo e a respetiva palavra-passe.

Quer saber mais?

Seguimento dos e-mails automatizados

Melhorar a segurança dos e-mails através do registo SPF

Melhorar a segurança dos e-mails através do registo DKIM

Melhorar a segurança dos e-mails através do registo DMARC

Para prestações especializadas (SEO, desenvolvimento, etc.), contacte os parceiros OVHcloud.

Se pretender obter assistência na utilização e configuração das suas soluções OVHcloud, sugerimos que consulte as nossas diferentes ofertas de suporte.

Fale com a nossa comunidade de utilizadores.

Esta página foi útil?