log based static contact form
1.0.0
这是用于自托管静态站点的概念验证轻量级联系表单。
Knowbl Cluster 的规范源托管在 https://git.knowbl.co/dev/log-based-contact-form/ 上。
mail
。 /submit/
)必须是空文件夹,否则所有对 /submit/ 的合法查询都将被重定向。在 nginx 服务器的 http 块中,在块底部附近(但在第一个服务器块之前)插入特定配置的日志格式。建议少一点。
log_format contactstatic ' $time_local | $request ' ;
请参阅nginx-exmaple.conf
放置位置。
在 nginx 服务器的服务器块中,在表单中插入操作的位置(在本例中为/submit/
)。
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/;
}
这将使访问者返回到根目录。根据您的具体需求量身定制。
请参阅nginx-exmaple.conf
放置位置。
在您的网站上添加表格。根据需要设计风格。
< 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 >
根据需要添加任意数量的<input>
。
GET 作为方法是必需的,因为需要在日志中进行解析。
有多种方法可以监控传入的表单帖子。
直接查看实时日志文件。
tail -f /home/example/logs/access.log
将请求发送到电子邮件地址。
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
注意:根据填写表单的人(坏人?),您可能想要发送有新的联系表单信息的警报,而不是在电子邮件正文中发送整个日志。
chmod +x log-based-static-contact-form-emailer.sh
crontab -e
添加到 crontab 的底部
0 9-17 * * 1-5 /var/log/log-based-form.sh
这个 cron 是为每个小时设置的,从周一到周五,上午 9 点到下午 5 点。请随意设置为更适合您自己的设置的内容。
任何直接反馈都可以在此处的 HackerNews 帖子中给出
https://news.ycombinator.com/item?id=13358753
或者提出问题
https://github.com/knowbl/log-based-static-contact-form/issues
如果这对您有用,请捐赠给 EFF。我不在那里工作,但他们在这个行业做得非常出色
https://eff.org/donate/