WordPress - Contact Form 7无法向域名邮箱发送邮件问题求助
Contact Form 7 域名邮箱收不到邮件的解决办法
1. 先查垃圾邮件文件夹
别上来就排查设置,先去域名邮箱的垃圾箱/垃圾邮件栏找一找,CF7发的邮件很可能被当成垃圾拦截了。要是找到了,直接把CF7的发件地址加到白名单里。
2. 修改CF7的发件人设置
CF7默认发件人是wordpress@你的域名.com,不少域名邮箱服务器会因为验证问题拒收。这么调整:
- 把“发件人”改成你的域名邮箱,比如
info@yourdomain.com - 进入“附加设置”,添加一行代码:
reply-to: [your-email]
这里的[your-email]要换成你表单里的邮箱字段短代码(比如表单里的邮箱字段叫your-email就直接用这个),这样用户回复时能直接回到填写的邮箱。
3. 配置域名的SPF/DKIM/DMARC记录
域名邮箱服务器需要验证邮件来源的合法性,CF7是通过你的网站服务器发送邮件的,所以得给域名DNS加对验证记录:
- SPF记录:添加一条TXT记录,内容类似
v=spf1 ip4:你的服务器IP include:yourdomain.com ~all,把服务器IP替换成你自己的 - DKIM:如果你的域名邮箱服务商支持,生成DKIM密钥后添加到DNS的TXT记录里
- DMARC:先添加
v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com来监控邮件状态,后续再逐步调整规则
4. 改用SMTP方式发送邮件
CF7默认用PHP的mail()函数发邮件,这种方式极易被拦截。安装WP Mail SMTP插件,直接通过你的域名邮箱服务器发送:
- 在插件里选择对应的域名邮箱服务商,填写好SMTP服务器地址、端口、邮箱账号和密码
- 配置完成后发送测试邮件,确认能正常接收
5. 询问主机服务商是否有发送限制
有些共享主机商会限制mail()函数的发送量,或者禁止发送到特定域名。直接联系主机客服,确认是否有相关限制,请求解封你的域名邮箱地址。
6. 查看CF7邮件日志定位问题
开启CF7的日志功能,查看邮件发送的具体状态:
- 在CF7的邮件设置里勾选“保存邮件日志”
- 发送测试邮件后,查看日志里的错误提示(比如“发送失败”“被服务器拒绝”等),根据提示进一步排查
内容的提问来源于stack exchange,提问作者Hussein Mohamed
相关产品推荐
相关产品推荐

