You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP发送表单答复邮件 解决提交返回404报错问题

问题核心原因

你遇到404报错和PHP代码逻辑无关,核心问题是Netlify是纯静态站点托管平台,本身不支持解析、运行PHP脚本。你上传的mail.php不会被平台当作可执行的服务端文件处理,表单提交向这个路径发POST请求时,平台找不到对应可访问的资源,直接返回404状态码。

解决方法

最适合零基础场景的方案是直接用Netlify自带的表单处理能力,不需要写任何后端代码,也不用额外部署服务,步骤如下:

  • 删掉站点里的mail.php文件,不需要再保留PHP相关代码
  • 修改原有表单的form标签,添加Netlify表单识别需要的属性和隐藏字段,修改后的表单开头部分如下,其余姓名、邮箱、留言、提交按钮的原有代码保持不变即可:
<form name="contact" method="POST" data-netlify="true" action="/">
  <input type="hidden" name="form-name" value="contact" />
  <!-- 下方保留原有的姓名、邮箱、留言输入框、提交按钮代码即可 -->

上面代码里action="/"代表提交完成后直接跳回站点首页,如果你要做单独的感谢页,把路径改成对应感谢页的地址就行。

  • 重新把修改后的代码部署到Netlify,之后进入你站点的Netlify管理后台,找到「Forms」板块:
    • 平台会自动识别你部署的联系表单,所有用户提交的内容都会存在这个板块里可以直接查看
    • 你可以在表单设置里配置邮件通知规则,有新的表单提交时,平台会自动把提交内容发送到你指定的邮箱,完全不需要自己写发邮件逻辑。

如果你坚持要用自己写的PHP代码实现发信,需要额外找支持PHP运行环境的主机服务部署你的mail.php代码,再把表单的action属性改成PHP文件部署后的完整访问地址。但注意你当前写的PHP代码本身也存在几个影响使用的问题:

  • 没有做输入校验,用户空内容、填不符合格式的邮箱也会触发逻辑
  • 邮件头没有配置UTF-8编码,遇到中文内容会直接乱码
  • PHP原生mail()函数在绝大多数主机环境下默认被禁用,发信进垃圾箱、发送失败的概率极高,实际使用一般需要对接第三方邮件服务的SMTP接口发信,对零基础用户门槛很高,不推荐采用。

内容的提问来源于stack exchange,提问作者user19152500

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 08:27:24