PHP

Envio de e-mails através de formulário PHP

Para realizar o envio de e-mails utilizando PHP no ambiente de hospedagem, é necessário utilizar uma conta de e-mail do próprio domínio.

Por questões de segurança, o servidor de e-mails exige autenticação SMTP para o envio de mensagens. Dessa forma, aplicações PHP não conseguem enviar e-mails utilizando a função mail() sem autenticação.

O exemplo abaixo utiliza a biblioteca PHPMailer para realizar a autenticação SMTP e efetuar o envio da mensagem.

Importante: Faça o download da versão mais recente da biblioteca PHPMailer e extraia os arquivos para uma pasta chamada phpmailer dentro do seu projeto. O exemplo abaixo considera a estrutura padrão da biblioteca, localizada na pasta src.

Clique aqui (https://github.com/PHPMailer/PHPMailer) para fazer o download da biblioteca PHPMailer.

<?php

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

require __DIR__ . '/phpmailer/src/Exception.php';
require __DIR__ . '/phpmailer/src/PHPMailer.php';
require __DIR__ . '/phpmailer/src/SMTP.php';

$mail = new PHPMailer(true);
try {
    // Configuração do servidor SMTP
    $mail->isSMTP();
    $mail->Host       = 'mail.seudominio.com.br';
    $mail->SMTPAuth   = true;
    $mail->Username   = 'seuemail@seudominio.com.br';
    $mail->Password   = 'senha-da-conta';

    // Conexão criptografada com TLS implícito
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
    $mail->Port       = 465;

    // Codificação da mensagem
    $mail->CharSet = 'UTF-8';

    // Remetente
    $mail->setFrom(
        'seuemail@seudominio.com.br',
        'Nome de apresentação'
    );

    // Destinatário
    $mail->addAddress(
        'destinatario@destinatario.com.br'
    );

    // Conteúdo da mensagem
    $mail->isHTML(true);
    $mail->Subject = 'Assunto do e-mail';
    $mail->Body    = '<p>Mensagem a ser enviada.</p>';
    $mail->AltBody = 'Mensagem a ser enviada.';

    $mail->send();

    echo 'E-mail enviado com sucesso!';
} catch (Exception $e) {
    error_log('Erro no envio SMTP: ' . $mail->ErrorInfo);
    echo 'Não foi possível enviar o e-mail. Tente novamente mais tarde.';
}

Por padrão, a hospedagem não exibe os arquivos armazenados dentro de um diretório.

Para habilitar a listagem, acesse o **Gerenciador de Arquivos** do Plesk e crie um arquivo chamado `.htaccess` dentro do diretório desejado.

Adicione o seguinte conteúdo:

```apache
Options +Indexes
```

Após salvar, os arquivos do diretório serão exibidos ao acessar sua URL pelo navegador.

## Ocultar extensões da listagem

Para não exibir determinadas extensões, utilize a diretiva `IndexIgnore`:

```apache
Options +Indexes
IndexIgnore *.jpg *.pdf
```

Nesse exemplo, os arquivos `.jpg` e `.pdf` não serão exibidos na listagem.

> A diretiva `IndexIgnore` apenas oculta os arquivos da listagem. Caso o endereço completo do arquivo seja conhecido, ele ainda poderá ser acessado.

Para desabilitar a listagem, utilize:

```apache
Options -Indexes
```