Contact Form 7 表单插件
免费轻量,但反垃圾与邮件送达得自己补
Contact Form 7 只做两件事:把表单渲染到页面上,把填写内容发成一封邮件。它不存数据库、不带拖拽、不做条件逻辑,配置全靠短代码。正因为这样它体积小、兼容性好,是外贸站询盘表单的常见起点。但它默认不走 SMTP,垃圾过滤也要手动开,这两点决定了「表单能不能收到信」。
能力边界
它只负责渲染和发信
很多人用了半年才发现提交记录一条都没存下来。这不是 bug,是默认行为——它不写数据库。
有的
文本、邮箱、电话、下拉、单选、复选、文件上传、日期等基础字段;多收件人;自动回复邮件;提交后跳转或显示提示;与验证码、反垃圾服务对接。
没有的
提交记录入库、拖拽式编辑、条件逻辑、多步分页、支付字段、表单数据统计。这些要么装扩展,要么换可视化表单方案。
需要补的
入库靠配套的记录插件;发信认证靠 SMTP 或事务邮件服务;附件默认落在 uploads 下的临时目录,要控制类型与大小。
如果需要看「这个月多少条询盘、来自哪个产品页」,纯 CF7 会很难受:没有记录就没有转化漏斗。要么加记录插件,要么换成带条目管理的方案。
表单模板与邮件标签
真正决定成败的是第二栏
新建表单后会看到四个页签:表单、邮件、邮件(2)、消息。多数人只在第一栏堆字段,其实第二栏的收件人与发件人配置才是关键。
表单模板常用写法
- [text* your-name placeholder “请输入姓名”] 星号表示必填
- [email* your-email] 邮箱字段自带格式校验
- [textarea your-message 40/6] 40 为列宽,6 为行数
- [file your-file limit:5mb filetypes:jpg|png|pdf] 默认只允许 1MB
- [submit “发送询盘”] 提交按钮文案建议与页面语言一致
邮件标签四要素
- 收件人:写企业邮箱,多个用逗号分隔,不要写个人 Gmail
- 发件人:必须与站点域名同域,否则 SPF 对齐失败
- 附加头:Reply-To 填 [your-email],点回复才能直接回给客户
- 主题与正文:正文用字段变量拼,别只放一句「有新询盘」
有个细节经常被忽略:表单里的邮箱字段如果直接当发件人,垃圾邮件发送者可以伪造头部,把你的域名变成跳板。正确做法是发件人固定为站内邮箱,客户的邮箱放在 Reply-To。邮件(2)用来配置自动回复,语气要写成确认函,别写营销话术。
邮件送达
SPF、DKIM 与发件域三件事
「表单提示发送成功,但收件箱里没有」是最高频的求助。九成不是插件问题,是邮件被对方网关判为垃圾或直接拒收。
先换掉 PHP mail
WordPress 默认用服务器的 mail 函数发信,没有身份认证,海外收件方几乎必判垃圾。装 SMTP 插件或接事务邮件服务,用账号密码或 API 走认证通道。
补齐 SPF 与 DKIM
域名 DNS 里加 SPF 记录,把发信服务商包含进去,结尾用 ~all 软失败;再按服务商给的公钥配 DKIM,选择器名别写错。两条都对了,通过率才有保障。
再加 DMARC
先发一条 p=none 的策略记录,只观察不拦截,收一周聚合报告确认自己所有发信源都在 SPF 里,再逐步收紧到 quarantine。
做投递测试
用投递测试工具打分,重点看 SPF、DKIM、rDNS、正文链接比例。分数低于 8 分就别急着上线,先修配置。
两个现实问题:国内邮箱对境外 IP 来信常做额外审核,海外客户对国内 IP 同理,这也是建议用事务邮件服务而非自建邮局的原因;正文里塞太多链接会拉高垃圾评分,确认信只留必要信息。
反垃圾的四层防线
从便宜到贵依次加
外贸站表单被刷是常态,一天几百条俄语垃圾很常见。按成本从低到高叠四层,够用就停,不要一上来就上最重的验证码。
低成本两层
- 蜜罐字段:加一个对用户隐藏的输入框,机器人会填,填了就丢
- 时间戳判断:提交间隔小于三秒直接判为机器,正常人手填不可能这么快
- 关键词黑名单:把常见垃圾词、外链域名加进拦截列表
需要外部服务的两层
- 验证码:评分型验证码对真实用户几乎无感,但要接受它在部分地区加载慢
- 服务器限流:同一 IP 每分钟提交超过三次就拦,在 Nginx 或 WAF 层做
- 被刷爆时先停用表单短代码,再查日志定位来源,别直接删表单
验证码不是越多越好。见过同时开蜜罐、问答、图形和评分验证码的站,海外客户嫌麻烦直接关页面。目标是让人填得下去,防垃圾做到「机器人过不去、人感觉不到」就够。完整做法见落地页转化优化。
和可视化表单方案的差别
选型看要不要数据
| 对比项 | Contact Form 7 | 可视化表单插件 |
|---|---|---|
| 价格 | 免费开源 | 免费版可用,付费档约 49 到 299 美元/年,以官方报价为准 |
| 提交记录 | 默认不入库,需装记录插件 | 内置条目管理,可按表单筛选与导出 |
| 条件逻辑 | 不支持,需扩展 | 付费档内置,字段可按前项答案显示 |
| 多步表单 | 不支持 | 付费档支持分页 |
| 上手成本 | 要记短代码语法,改样式需写 CSS | 拖拽配置,样式基本可视化 |
| 维护风险 | 用户量大,历史漏洞多,必须及时更新 | 闭源,依赖厂商更新节奏 |
判断标准很直接:一天不到十条询盘、只要邮件通知,CF7 够用且不增加成本;需要统计来源、需要按产品线分流到不同销售、需要把提交存下来做复盘,那点授权费比后期拼插件便宜。两边的功能对应关系可以看WPForms 表单插件。
代价、适用规模与数据残留
删插件之前先看这一节
每个装了表单的页面都会加载一份 CSS 与 JS,几十个页面累加起来不算大,但对极致分数有影响。可以在配置文件里定义常量关掉全局加载,代价是必须自己给表单页单独引入样式,改版时容易漏。
安全上盯两处:文件上传只允许图片与文档类型,禁止可执行后缀,上传目录要禁脚本执行;表单字段是邮件头注入的入口,插件历史上有过注入与反序列化问题,及时更新是硬要求。表单页全程 SSL 与 HTTPS,否则提交内容是明文的。
什么站该用
- 外贸询盘站:一个表单发到销售邮箱,配合自动回复
- 预算有限、页面数量不多的企业站
- 需要深度定制前端样式的站,短代码结构简单好控
- 已有记录插件或 CRM 对接、不依赖站内数据的站
卸载会留下什么
- 表单配置存在 wp_posts 中,类型为 wpcf7_contact_form,删插件后仍在库里
- 表单模板与邮件设置存在 postmeta,字段名带下划线前缀
- 记录插件产生的条目与附件独立存在,不会随 CF7 一起删除
- 页面里的表单短代码会变成一行裸文本,需要逐页清理
换表单方案时,正确顺序是:先导出历史条目为表格存档,再把新表单嵌到页面,确认收信正常,最后才停用旧插件。顺序反了,中间那段时间的询盘会直接丢。表单与追踪的配合见统计代码与转化追踪部署。
常见问题
五条排查路径
按顺序查:主机是否禁用了 mail 函数;发件人是否与站点同域;DNS 里有没有 SPF 与 DKIM;对方网关是否拦截。最快的验证方式是装 SMTP 插件填一组真实邮箱账号发测试信,能收到就说明是发信通道问题,不是表单问题。
可以,装配套的记录插件即可,提交内容会写进 wp_posts 并在后台列表展示,附件单独存目录。注意两点:记录插件会增加数据库体积;涉及个人信息时要有留存期限与删除机制。
验证码脚本从境外加载,国内访问会拖慢首屏。处理办法是只在表单所在页面加载、把脚本设为延迟加载、或者改用不依赖外部脚本的蜜罐加时间戳方案。速度与防垃圾要平衡,不必两个都拉满。
默认 1MB,在文件字段里写 limit:5mb 就能改。但真正生效还受 PHP 的上传上限与主机配置限制,两处都要放开。图纸类询盘建议限制在 10MB 以内并把允许类型写死,避免有人上传脚本文件。
先看记录插件的日志,判断是同一个 IP 还是分布式的。同一个 IP 直接在防火墙封;分布式就上服务器限流与评分验证码;短期应急可以临时把表单替换成邮箱地址。同时检查是否有页面被搜索引擎收录成了提交成功页,那会持续带来垃圾。
询盘收不到,先查发信通道
信科网络在山东淄博做 WordPress 建站与外贸出海 11 年,服务过 3000 多家出口企业。可以帮你查 SPF、DKIM、DMARC 配置与表单反垃圾规则,把「表单提交了但没收到」这类问题一次解决。