4个版本 (破坏性更新)
0.4.0 | 2023年11月29日 |
---|---|
0.3.0 | 2023年10月31日 |
0.2.0 | 2023年4月1日 |
0.1.0 | 2023年3月21日 |
#459 in HTTP服务器
29KB
404 行
ReFormulate
一个后端服务器应用程序,用于监听Web表单提交,使用actix-web框架实现。最低支持的Rust版本(MSRV)为1.62.1。
配置
配置目前非常简单,只需要设置两个环境变量:FORMULATE_DESTINATION_EMAIL
和 FORMULATE_SENDING_EMAIL
。
"目标电子邮件"将是您希望表单提交发送到的电子邮件地址。
"发送电子邮件"是当电子邮件到达您的收件箱时发出的地址。它旨在成为一个稳定的地址,您可以用来过滤表单提交电子邮件。此"发送电子邮件"将用于电子邮件的'From:'头。
'Reply-To'地址将是表单用户提交的电子邮件地址。
中继电子邮件
另一对可选的环境变量是 FORMULATE_MAIL_RELAY_HOST
和 FORMULATE_MAIL_RELAY_PORT
。如果希望通过SMTP协议中继电子邮件,则可以使用这些变量。
如果设置了FORMULATE_MAIL_RELAY_HOST
,它定义了中继邮件服务器的主机名。
FORMULATE_MAIL_RELAY_PORT
始终默认为端口25,但允许用户定义邮件中继正在监听的备用端口。
接受的表单字段
它接受以下参数,其中大多数是必需的
email
:表单发送者的电子邮件地址。这将被设置为已发送电子邮件的'Reply-To'地址。from_site
:提交表单的网站的URL。也可以提交为site
、website
或location
。对于URL编码的表单提交,此字段可以设置为用户表单提交成功后应重定向到的页面URL。此表单字段可以隐藏,并通过JavaScript在提交前设置。full_name
:表单发送者希望用于发送电子邮件的名称。这将被用作电子邮件发送者名称。也可以提交为fullname
或fullName
。message
:发送电子邮件的消息正文subject
:(可选) 电子邮件的标题。如果没有提供,将使用默认标题。redirect
:(可选) 用于指示用户是否希望被重定向到from_site
URL。通过 JSON 提交时,需要以布尔值发送。
处理表单提交后,将返回包含适当 HTTP 状态代码的消息,指示成功或失败。
成功的 URL 编码提交将在 redirect
值为 true 时重定向到 from_site
字段中定义的 URL。如果省略 redirect
或为 false,将提供包含适当 HTTP 状态的消息。在失败的情况下,将发送一个用户可读的错误,并附带相关的 HTTP 状态。
JSON 表单提交将接收一个包含适当成功或失败消息和 HTTP 状态的 JSON 响应。
阻止垃圾邮件
在 reformulate 中现在提供了基本的垃圾邮件阻止功能。
垃圾邮件阻止列表
可以通过定义 FORMULATE_SPAM_BLOCKLIST
环境变量来启用可选的阻止列表功能。
FORMULATE_SPAM_BLOCKLIST
应该是一个 以逗号分隔的字符串列表,格式为域名。这些字符串将在表单的消息正文中进行搜索;如果找到任何匹配项,则将提前结束表单处理。将返回一个错误,其中包含消息表示表单提交疑似垃圾邮件。例如:FORMULATE_SPAM_BLOCKLIST="acme.com, mega.lo.mania"
停止论坛垃圾邮件 API
已添加另一个垃圾邮件缓解功能。现在可以检查表单提交的电子邮件是否与 stopforumspam.org API 相匹配。启用此功能 将使 reformulate 变慢,因为它需要向 API 发送网络请求。还可能出现网络问题或 API 本身的问题导致失败。与 API 通信失败或从 API 获取结果将导致跳过检查。只有与数据匹配的正例将被视为有效的垃圾邮件。
通过将 FORMULATE_SPAM_BLOCKING
环境变量设置为 true 来启用此功能。
部署
源存储库中包含了一个 Dockerfile
,以帮助进行容器化部署。
依赖项
~27–41MB
~755K SLoC