Para permitir que os visitantes entrem em contato diretamente pelo site, vamos implementar um formulário de contato no CodeIgniter 4. O formulário capturará os dados do usuário e enviará a mensagem via e-mail para o administrador do site.
Configurando as Rotas
Primeiro, criamos as rotas para exibir o formulário e processar o envio da mensagem. No arquivo app/Config/Routes.php, adicione:
$routes->get('contato', 'ContatoController::index');
$routes->post('contato/enviar', 'ContatoController::enviar');
A primeira rota exibe o formulário, enquanto a segunda processa os dados e envia a mensagem.
Criando o Controller do Formulário de Contato
No diretório app/Controllers/, crie o arquivo ContatoController.php:
namespace App\Controllers;
use CodeIgniter\Controller;
use CodeIgniter\Email\Email;
class ContatoController extends Controller
{
public function index()
{
return view('contato');
}
public function enviar()
{
$request = service('request');
$email = service('email');
$nome = $request->getPost('nome');
$emailUsu = $request->getPost('email');
$mensagem = $request->getPost('mensagem');
if (empty($nome) || empty($emailUsu) || empty($mensagem)) {
return redirect()->to('/contato')->with('erro', 'Todos os campos são obrigatórios.');
}
$email->setFrom('seuemail@seudominio.com', 'Site CodeIgniter');
$email->setTo('destinatario@seudominio.com');
$email->setSubject('Nova mensagem de contato');
$email->setMessage("Nome: {$nome}\nEmail: {$emailUsu}\nMensagem: {$mensagem}");
if ($email->send()) {
return redirect()->to('/contato')->with('sucesso', 'Mensagem enviada com sucesso!');
} else {
return redirect()->to('/contato')->with('erro', 'Erro ao enviar mensagem.');
}
}
}
Criando a View do Formulário
No diretório app/Views/, crie o arquivo contato.php:
<h1>Entre em Contato</h1>
<?php if(session()->getFlashdata('sucesso')): ?>
<p style="color: green;"><?= session()->getFlashdata('sucesso') ?></p>
<?php endif; ?>
<?php if(session()->getFlashdata('erro')): ?>
<p style="color: red;"><?= session()->getFlashdata('erro') ?></p>
<?php endif; ?>
<form action="<?= site_url('contato/enviar') ?>" method="post">
<label>Nome:</label>
<input type="text" name="nome" required><br>
<label>Email:</label>
<input type="email" name="email" required><br>
<label>Mensagem:</label>
<textarea name="mensagem" required></textarea><br>
<button type="submit">Enviar</button>
</form>
Configurando o Envio de E-mails
O CodeIgniter 4 permite configurar o envio de e-mails no arquivo app/Config/Email.php. Ajuste as configurações conforme o provedor de e-mail utilizado:
public $protocol = 'smtp';
public $SMTPHost = 'smtp.seudominio.com';
public $SMTPUser = 'seuemail@seudominio.com';
public $SMTPPass = 'suasenha';
public $SMTPPort = 587;
public $mailType = 'text';
Conclusão
Agora o site conta com um formulário de contato funcional, permitindo que os visitantes enviem mensagens facilmente. No próximo post, abordaremos a criação da área administrativa para gerenciar os conteúdos do blog.
Se você ou sua empresa precisa de suporte para desenvolvimento com CodeIgniter 4, a Saldaris Consultoria pode ajudar. Entre em contato pelo formulário no final da página para saber mais sobre nossos serviços.
Erro: Formulário de contato não encontrado.


