O PrestaShop deixou de enviar e-mails: diagnóstico completo
Confirmações de encomenda que nunca chegam, formulário de contacto mudo: a causa raramente é a que se pensa. Diagnóstico em quatro níveis e a regressão SMTP da versão 9.

Uma avaria silenciosa e cara
Quando o PrestaShop deixa de enviar e-mails, não se parte nada de visível. As encomendas passam, o back-office funciona. Mas o cliente não recebe a confirmação, telefona para o apoio ao cliente e a confiança esboroa-se. Muitos comerciantes só descobrem o problema várias semanas depois de ele ter começado.
O diagnóstico faz-se em quatro níveis, do mais simples ao mais técnico. Não salte etapas: a causa está muitas vezes no nível 1.
Nível 1: a configuração do PrestaShop
Vá a Parâmetros avançados > E-mail.
A armadilha número um lê-se diretamente na base de dados:
SELECT name, value FROM ps_configuration WHERE name LIKE 'PS_MAIL%';
O parâmetro PS_MAIL_METHOD assume três valores: 1 para a função mail do PHP, 2 para SMTP e 3 para desativado. O valor 3 é a causa mais frequente dos «não sai nenhum e-mail». Às vezes é definido por um módulo, ou durante uma fase de testes, e depois fica esquecido.
Confirme a seguir o endereço de expedição. Tem de pertencer ao seu domínio. Uma loja que envia a partir de um endereço Gmail ou Yahoo vê as mensagens rejeitadas pela maioria dos servidores de receção.
Por fim, use o botão de teste de envio que existe nessa página: dá uma mensagem de erro em bruto muito mais útil do que um teste feito a partir do processo de compra.
Nível 2: a regressão de SMTP do PrestaShop 9
Este caso merece uma secção só para si, porque afeta lojas cuja configuração não mudou.
O PrestaShop 9 substituiu o Swift Mailer pelo Symfony Mailer, e a cifra SSL foi retirada da camada de abstração: só restam TLS ou nenhuma cifra. Consequência observada: a cadeia de ligação é construída como ssl://servidor:587 onde a versão 8 usava tcp://servidor:587.
Ora, a porta 587 espera STARTTLS, ou seja, uma ligação em claro que passa depois a cifrada, e não SSL implícito. O servidor responde então com um erro do género:
SSL operation failed with code 1
error:0A00010B:SSL routines::wrong version number
Esta mensagem, muito desconcertante, não assinala um problema de certificado, mas uma incompatibilidade de protocolo.
A solução imediata passa por mudar para a porta 465 em SSL, que funciona corretamente. Se o seu fornecedor não disponibilizar a 465, a alternativa é usar um serviço de envio transacional com módulo dedicado.
Se os seus e-mails deixaram de sair exatamente no momento de uma subida para a versão 9, é a primeira pista a seguir.
Nível 3: a autenticação do domínio
Os e-mails saem, mas não chegam. É outro problema e, hoje em dia, o mais comum.
Os fornecedores de correio eletrónico exigem três registos DNS:
- SPF: autoriza o servidor que envia em nome do seu domínio. Atenção ao limite de dez resoluções DNS, depressa atingido quando se acumulam vários serviços.
- DKIM: assina criptograficamente as mensagens. Configura-se do lado do serviço de envio, que fornece a chave pública a publicar.
- DMARC: indica o que fazer quando os dois anteriores falham. Comece com a política
nonepara observar e aperte depois.
Um domínio sem DKIM vê uma parte importante das mensagens classificada como lixo eletrónico, sem qualquer erro do lado do servidor. Verifique o estado dos registos com uma ferramenta de teste e leia os cabeçalhos de uma mensagem recebida: indicam o resultado de cada controlo.
Nível 4: a fila de envio e os registos
O PrestaShop guarda um historial das mensagens enviadas:
SELECT recipient, subject, date_add FROM ps_mail ORDER BY date_add DESC LIMIT 20;
Se aparecerem linhas recentes, o PrestaShop tentou mesmo enviar: o problema está a jusante, do lado do servidor de envio ou de receção. Se a tabela estiver vazia, o problema está a montante, na configuração ou no disparo do hook.
Consulte também var/logs/ e o registo de erros do PHP do alojamento. Um erro de ligação SMTP costuma aparecer aí em claro.
Caso particular: os e-mails desencadeados por uma tarefa agendada (lembretes, relatórios) falham por vezes enquanto os e-mails transacionais funcionam. A causa está quase sempre na própria tarefa agendada e não no envio. Veja o nosso artigo sobre os crons que não são executados.
A configuração recomendada
Numa loja em produção, a função mail do PHP deve ser posta de parte: envia a partir do IP partilhado do alojamento, cuja reputação não depende de si.
A configuração robusta consiste em usar um serviço de envio transacional dedicado, em SMTP autenticado, com SPF e DKIM corretamente publicados e uma monitorização da taxa de entrega. O custo é marginal; a diferença de fiabilidade é enorme.
Os seus clientes já não recebem nada?
Diagnosticamos toda a cadeia de envio, da configuração do PrestaShop à autenticação do domínio. Diagnóstico gratuito, resposta em 1 h — veja o suporte urgente PrestaShop.
Leia também
Vulnerabilidade ps_facetedsearch: a atualização PrestaShop que não pode adiar
Uma falha com pontuação 10 em 10 permite assumir o controlo de uma loja através de um simples URL. Veja como confirmar se a sua está exposta e se já foi visitada.
Ler 30 de julho de 2026PrestaShop pirateada: detetar e remover um skimmer bancário
Um skimmer rouba números de cartão durante semanas sem abrandar a loja. Os sinais a procurar, os comandos de diagnóstico e o procedimento de limpeza completo.
Ler 29 de julho de 2026Update Assistant bloqueado: reparar uma atualização do PrestaShop 9
Cache impossível de esvaziar, serviço Symfony inexistente, processo que para a meio: os erros reais do Update Assistant e o método para passar à linha de comandos.
Ler