这其实还是一个Win主机上用WordPress建站的常见问题。
起初我发现用Gravity Forms建立的表单无论如何都不能发送提醒邮件,遂尝试了N种方法,走了N多的弯路。然后惊讶的发现我的Wordpress本身居然也不能发送邮件,也就是找回密码等功能失效。
1. 百度解决方案,凡是提到Gravity Forms的中文网页都只是浅显的在介绍这款插件而已。对我来说百度果然还是不够用的。
2. 于是爬梯子看Google,先是找到Gravity Forms官方网站,里面也是一大堆不能发送邮件的话题。总结下来有这样几类:
a) 自动发送的邮件被系统当成垃圾邮件处理了。我查了下自己的垃圾箱,没有。
b) 服务器不支持PHP的mail()函数。检查结果居然正是如此。PHP基础非常差的我只知道在Win主机下用mail()不靠谱,大量的替代方案是用一个叫“WP Mail SMTP”的插件代替。
于是我安装了WP Mail SMTP。先用默认的设置尝试着发送测试邮件,失败。尝试改变设置,用自己的126邮箱经过STMP认证发送邮件,这次成功了。测试WP找回管理员密码的功能,也恢复了!
3. 于是回到Gravity Forms尝试发送提示邮件,居然还是收不到。有个老外说先看看你用的WP插件是不是还在用mail()函数发邮件,如果是,就改成wp_mail(),因为WP Mail SMTP是通过改变wp_mail()的发送方式实现邮件发送的。于是我检查了我的Gravity Forms,它确确实实的是用wp_mail()的…这个时候我有点急了,想WP有那么多表单插件,我何苦吊死在一个Gravity Forms上呢,Gravity Forms还是一款收费插件呢,由于没有序列号(一直用着旧版本),它官网上的答疑很多对我都是不开放的。
4. 于是我尝试着很多国内WP网站都在用的Contact Form 7,简称CF7。果然是一个不错的插件,比Gravity Forms轻便了很多,而且汉化得比较彻底。建立完自己的表单后,尝试提交表单,还是失败,提示我表单没有发送出去。
5. CF7国内用的比较多,于是很快百度到了解决方案。原来在后台邮件设置的时候发送人一定要用我在WP Mail SMTP设置的发件人,否则是无法提交的。于是修改发件人,果然表单就提交成功了。查看邮箱,提示邮件也同时收到了。
6. 但是CF7有一个缺点,它太小巧了,小巧到连记录表单数据的功能也没有,只是单纯的把数据通过邮件发送出去。有时候邮件也不够靠谱,丢包、被当垃圾邮件处理掉、邮件服务器当机了,各种情况都有可能发生,如果是给客户做网站,客户可能会抱怨…我还是需要保留能在WP后台也记录下用户提交的表单数据的功能。
7. 这样看来还是先回到Gravity Forms上来吧。看到过有这样一篇文章提到过要把发件人改成{admin_email},我尝试过但发送失败。借鉴到用CF7的时候要把发件人改成WP Mail SMTP的发件人,于是尝试着把Gravity Forms也改成这个发件人,bingo!
附上本文提到的3个WP插件的正确设置图解
WP Mail SMTP的:
Gravity Forms的邮件提示(Notifications)设置界面:
CF7的邮件设置部分:
本站所有文章均为原创,欢迎转载,请注明文章出处:https://blog.brain1981.com/555.html。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。
您也可以扫描左边的二维码,关注我们的微信公众号,在微信上查看我们的案例。
Brain 棒棒哒
我想用这个wordpress-form-manager插件,提交数据后发送邮件怎么弄?
抱歉这个插件我没有接触过,无法回答
我用了你的方法,发现并没有什么卵用啊呜呜呜好难过
126邮箱目前已经不支持STMP使用了,可能是被滥用的太多而关闭了
另外阿里云新购买的主机也已经完全不能开放25端口了,因此本文的设置已经不起作用
替代方法是升级WP Mail SMTP插件,使用插件提供的几家提供STMP服务的服务商设置
或者改用QQ邮箱(希望不要又很快被关闭)
Contact form 7非常好用
可以用Flamingo 插件记录CF7的数据,无论发送成功与否,后台都有记录