Base de conhecimento

1000 perguntas frequentes, 500 tutoriais e vídeos explicativos. Aqui, você encontra apenas soluções!

Usar o PHPMailer na Infomaniak

Atualização 30/06/2026

Este guia explica como usar o PHPMailer com as soluções de hospedagem web da Infomaniak para enviar e-mails a partir de um site.

 

⚠ ATENÇÃO ⚠

A Infomaniak garante a conformidade de seus serviços com os protocolos padrão (IMAP, S3, etc.), mas não oferece suporte adicional para serviços ou softwares externos, pois a configuração deles pode mudar dependendo do provedor ou do desenvolvedor. Portanto, este guia é fornecido apenas como referência, e a sua implementação é de sua responsabilidade (consulte: Política de suporte / Art. 11.9 dos Termos de Uso). Se necessário, um profissional qualificado pode ajudá-lo.


 

Introdução

  • O PHPMailer é uma biblioteca PHP que permite criar e enviar e-mails a partir de um site, principalmente via SMTP.
  • Ele permite, em particular, enviar mensagens no formato HTML, adicionar uma versão de texto alternativa, gerenciar anexos e usar a autenticação SMTP.
  • Para envio autenticado via SMTP, o ambiente PHP usado pelo site deve ser compatível com uma conexão criptografada recente, principalmente TLS 1.2 ou superior.
    • Uma versão muito antiga do PHP ou da biblioteca OpenSSL usada pelo PHP pode causar um erro de conexão ou autenticação, mesmo que o endereço de e-mail e a senha estejam corretos.
    • Não use o PHP 5.3/5.4 para este tipo de envio; use uma versão recente e atualizada do PHP.
  • Com o envio SMTP autenticado, o endereço usado como remetente deve corresponder ao endereço de e-mail usado para a autenticação SMTP.

 

Instalar o PHPMailer

Para usar o PHPMailer, instale a biblioteca nos arquivos do seu site.

  1. Baixe o PHPMailer do seu repositório oficial ou instale-o com o Composer, se o seu projeto o utilizar.
  2. Copie os arquivos do PHPMailer para um diretório do seu site via FTP.
  3. Carregue os arquivos necessários no seu script PHP, adaptando o caminho de acordo com o local escolhido:

    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    
    require **DIR** . '/PHPMailer/src/Exception.php';
    require **DIR** . '/PHPMailer/src/PHPMailer.php';
    require **DIR** . '/PHPMailer/src/SMTP.php';

 

Configurar o envio SMTP com a Infomaniak

Use as seguintes configurações SMTP autenticadas:

  • Servidor SMTP: mail.infomaniak.com
  • Porta: 465
  • Criptografia: SMTPS / SSL-TLS
  • Autenticação: obrigatória
  • Nome de usuário: o endereço de e-mail completo
  • Senha: a senha do endereço de e-mail usado

Exemplo de configuração completa:

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require **DIR** . '/PHPMailer/src/Exception.php';
require **DIR** . '/PHPMailer/src/PHPMailer.php';
require **DIR** . '/PHPMailer/src/SMTP.php';

$mail = new PHPMailer(true);

try {
// Configuration SMTP
$mail->isSMTP();
$mail->Host       = 'mail.infomaniak.com';
$mail->SMTPAuth   = true;
$mail->Username   = '[sender@domain.xyz](mailto:sender@domain.xyz)';
$mail->Password   = 'mot_de_passe_de_l_adresse_mail';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port       = 465;
$mail->CharSet    = 'UTF-8';

```
// Expéditeur
// L'adresse doit correspondre à celle utilisée pour l'authentification SMTP.
$mail->setFrom('sender@domain.xyz', 'Nom du site');

// Destinataire
$mail->addAddress('recipient@example.com');

// Adresse de réponse facultative
$mail->addReplyTo('sender@domain.xyz', 'Nom du site');

// Contenu du message
$mail->isHTML(true);
$mail->Subject = 'Message envoyé depuis le site';
$mail->Body    = '<p>Contenu HTML du message.</p>';
$mail->AltBody = 'Contenu texte du message.';

$mail->send();
echo 'Message envoyé';
```

} catch (Exception $e) {
echo 'Le message n’a pas pu être envoyé. Erreur: ' . htmlspecialchars($mail->ErrorInfo);
}

Se a sua aplicação exigir o uso da porta 587, use STARTTLS:

$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port       = 587;

 

Verificar a versão do PHP e a compatibilidade TLS

O envio SMTP autenticado requer uma conexão criptografada recente. Se o site usar uma versão muito antiga do PHP, por exemplo, PHP 5.3, ou uma biblioteca OpenSSL muito antiga, o PHPMailer pode falhar antes ou durante a autenticação. Os erros podem então ser enganosos, por exemplo:

  • SMTP connect() failed
  • Could not authenticate
  • stream_socket_enable_crypto()
  • um erro de autenticação, mesmo que a senha esteja correta

Nesse caso, verifique os seguintes pontos:

  1. a versão do PHP utilizada pelo site;
  2. a versão do OpenSSL utilizada pelo PHP;
  3. a versão do PHPMailer utilizada pelo seu projeto;
  4. a correspondência entre a porta SMTP e a criptografia escolhida.

Para uma configuração confiável, utilize uma versão recente do PHP, compatível com TLS 1.2 ou superior, e uma versão atual do PHPMailer. Consulte estes guias, se necessário:

 

Resolver um erro de incompatibilidade de remetente

O erro Sender mismatch SMTP code: 550 Additional SMTP info: 5.7.1 pode ocorrer quando o endereço usado como remetente não corresponde ao endereço de e-mail usado para a autenticação SMTP. Exemplo a ser evitado:

$mail->Username = 'sender@domain.xyz';
$mail->setFrom('another-address@domain.xyz', 'Nom du site');

Neste exemplo, o script se autentica com sender@domain.xyz, mas tenta enviar a mensagem com outro endereço de remetente.

Use o mesmo endereço de e-mail para a autenticação SMTP e para o remetente:

$mail->Username = 'sender@domain.xyz';
$mail->setFrom('sender@domain.xyz', 'Nom du site');

O nome do remetente pode ser personalizado, mas o endereço de e-mail deve permanecer consistente com a conta SMTP utilizada.

Caso de um formulário de contato

Se um visitante preencher seu endereço de e-mail em um formulário, não o utilize como endereço de remetente da mensagem. Utilize o endereço de e-mail autenticado como remetente e adicione o endereço do visitante como endereço de resposta.

Exemplo:

$mail->Username = 'sender@domain.xyz';
$mail->setFrom('sender@domain.xyz', 'Formulaire du site');
$mail->addReplyTo($email_visiteur);

Essa configuração permite responder ao visitante a partir do seu software de e-mail sem enviar a mensagem com um endereço de remetente não autorizado.

 

Ativar o modo de depuração temporariamente

Em caso de erro, ative temporariamente o modo de depuração do PHPMailer para obter mais detalhes sobre a conexão SMTP:

$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';

Desative este modo após os seus testes para não exibir informações técnicas aos visitantes do site.

 

Saiba mais

Link para esta FAQ: https://faq.infomaniak.com/576


Esta seção de perguntas frequentes foi útil?