Este é um formulário de contato leve e de prova de conceito para sites estáticos auto-hospedados.
A fonte canônica do Knowbl Cluster está hospedada em https://git.knowbl.co/dev/log-based-contact-form/.
mail
para Debian/Ubuntu. /submit/
neste exemplo) deve ser uma pasta vazia ou todas as consultas legítimas para /submit/ serão redirecionadas.Dentro do bloco http do seu servidor nginx, insira o formato de log para sua configuração específica próximo à parte inferior do bloco, mas antes dos primeiros blocos do servidor. Menos é recomendado.
log_format contactstatic ' $time_local | $request ' ;
Consulte o local de posicionamento nginx-exmaple.conf
.
No bloco server do seu servidor nginx, insira o local da sua ação ( /submit/
nesta instância) dentro do formulário.
location ~* /submit/(.*)$ {
access_log /home/example/logs/static-contact-access.log contactstatic;
error_log /home/example/logs/static-contact-error.log;
return https://example.com/;
}
Isso retornará o visitante ao diretório raiz. Adapte-se às suas necessidades específicas.
Consulte o local de posicionamento nginx-exmaple.conf
.
Adicione o formulário em seu site. Estilize conforme necessário.
< form action =" /submit/ " method =" GET " >
< label for =" name " > Name: </ label >
< input type =" text " name =" name " required =" yes " placeholder =" What can I call you? " >
< label for =" email " > Email: </ label >
< input type =" email " name =" email " required =" yes " placeholder =" [email protected] " >
< label for =" message " > Short message: </ label >
< textarea type =" message " name =" message " required =" yes " placeholder =" What do you want to say (in 140 characters)? " maxlength =" 140 " > </ textarea >
< input type =" submit " value =" Send a message " >
</ form >
Adicione quantos <input>
forem necessários.
GET como o método é necessário, pois é necessário para análise nos logs.
Existem várias maneiras de monitorar as postagens recebidas no formulário.
Visualização direta do arquivo de log ao vivo.
tail -f /home/example/logs/access.log
Envie solicitações para um endereço de e-mail.
cd /home/example/
nano log-based-static-contact-form-emailer.sh
#! /bin/bash
EMAIL= " [email protected] "
EMAILSUBJECT= " Contact form "
LOG= " /home/example/logs/static-contact-access.log "
CRON= " /home/example/logs/example-cron.log "
# ## DO NOT EDIT BELOW ###
NOW= $( date + " Form sent to $EMAIL -- %Y-%m-%d %H:%M:%S -- " ) ;
if [ ! -f $LOG ] ;
then
printf " . " >> $CRON
else
mail -s " $EMAILSUBJECT " $EMAIL < $LOG ;
printf " n n $NOW n n " >> $CRON
fi
Observação: dependendo de quem preenche seu formulário (bandidos?), talvez você queira enviar um alerta informando que há novas informações no formulário de contato, em vez de enviar o registro inteiro no corpo de um e-mail.
chmod +x log-based-static-contact-form-emailer.sh
crontab -e
Adicione na parte inferior do crontab
0 9-17 * * 1-5 /var/log/log-based-form.sh
Este cron é definido para cada hora, de hora em hora, das 9h às 17h, de segunda a sexta-feira. Sinta-se à vontade para definir algo mais aplicável à sua configuração.
Qualquer feedback direto pode ser dado na postagem do HackerNews, aqui
https://news.ycombinator.com/item?id=13358753
Ou levante um problema
https://github.com/knowbl/log-based-static-contact-form/issues
Se isso for útil para você, faça uma doação para a EFF. Eu não trabalho lá, mas eles fazem um trabalho fantástico na indústria
https://eff.org/donate/