Um formulário de contacto no seu website: enviar os campos por e-mail e evitar spam
Quer que os visitantes possam contactá-lo por e-mail através de um formulário no seu website? Neste artigo fica a saber como criar esse formulário, como protegê-lo contra spam e como garantir que o e-mail chega corretamente.
Criar um formulário
- WordPress: utilize um plugin de formulários, como o Contact Form 7. Não precisa de programar nada. Um plugin pago não é necessário.
- Site HTML ou PHP próprio: procure por "criar formulário HTML" para encontrar exemplos gratuitos. Faça com que o formulário seja enviado via SMTP, não através da função PHP mail() (ver abaixo).
Prevenir spam através do seu formulário
Um formulário sem proteção é quase sempre encontrado por spambots. Nesse caso, receberá muito spam e, no pior dos casos, o seu formulário pode ser utilizado indevidamente para enviar spam a terceiros. Por isso, proteja sempre o seu formulário:
- Captcha: uma verificação que distingue pessoas de bots, como o Google reCAPTCHA ou o Cloudflare Turnstile. O Contact Form 7 funciona com reCAPTCHA. Para o Turnstile, instale um plugin à parte, por exemplo o Simple Cloudflare Turnstile.
- Honeypot: um campo oculto que as pessoas não veem, mas que os bots preenchem. Se o campo estiver preenchido, a mensagem não é enviada. Também existem pequenos plugins para isto.
- Fóruns e blogues: para muitos softwares de fóruns e blogues existe uma integração com o Stop Forum Spam. Este serviço mantém uma lista de endereços IP que enviam spam e bloqueia mensagens provenientes desses endereços.
- Mantenha o seu website atualizado: atualize sempre o WordPress, o seu tema e os seus plugins. Um plugin desatualizado é uma porta de entrada frequente para utilizações indevidas.
Como garantir que o e-mail do seu formulário chega corretamente
- Envie via SMTP. Com a função mail() em PHP, o remetente torna-se um endereço com o nome da conta do seu pacote, que não pode personalizar. Esse tipo de e-mail acaba frequentemente na pasta de spam. Através de SMTP, inicia sessão com uma caixa de correio real e pode definir o remetente que pretende. No WordPress, utilize para isso um plugin SMTP, como o WP Mail SMTP. Para um script PHP próprio, consulte Hoe kan ik in PHP met mail() de juiste afzender krijgen?.
- Remetente no seu próprio domínio. Faça com que o formulário envie e-mails a partir de um endereço do seu próprio domínio, por exemplo info@oseudominio.nl. Nunca utilize o endereço de e-mail do visitante como remetente: muitos destinatários recusam esse tipo de e-mail. Coloque o endereço do visitante no campo Responder a (Reply-To), assim pode simplesmente responder à mensagem.
- Os dados para SMTP: o nome do servidor do seu pacote, a porta 587 com STARTTLS ou a porta 465 com SSL/TLS, e o endereço de e-mail e a palavra-passe da caixa de correio. Consulte Todas as definições num relance.
O seu formulário já está a ser utilizado indevidamente?
Recebe muito e-mail de devolução que não enviou, ou o servidor informa que o limite de envio foi atingido? Nesse caso, o seu formulário poderá estar a ser utilizado indevidamente. Leia O que fazer se o seu endereço de e-mail foi utilizado indevidamente e Limites de envio e a mensagem 'message limit reached'.
