Contact Form 7是WordPress里面非常受欢迎的一款在线联系表单插件,客户可以通过这个插件生成的表单,直接在您网站上给您在线留言,估计绝大多数WordPress外贸网站都会安装这么一款插件。Contact Form 7是采用标准成熟的方法来在WordPress里面去发送邮件的,一般情况下,在你正确设置了联系表单,它都能正常的工作。但最近我却碰到Contact Form 7无法收取,发送邮件的情况,而且不少网友也跟我反应了这个问题。我在百度,Google搜索原因,最后发现,这其实一般都是服务器的问题,不是插件问题,有兴趣的可以看看这篇文章: http://kb.cf7skins.com/contact-form-7-email-issues/ 。 但不管怎么样,主要还是WordPress使用了服务器的 mail() 函数来收发邮件来造成的。 ## **Contact Form 7及WordPress无法收取,发送邮件的表现** 其实如果Contact Form 7收发邮件不成功,这不是单单是Contact Form 7插件的问题,这时WordPress其他发送邮件的功能也不正常,主要是服务器出现问题,或者插件主题冲突等; 1. Contact Form 7的邮箱设置正确,contact form 7的联系表单无法给邮箱发送邮件; 2. WordPress设置正确,在后台登陆了路径/wp-login.php那里点击 “Lost your password?”,输入邮箱地址后,提示无法发送; 3. WordPress的后台客户评论不能通知到您的邮箱; ## **原因及解决办法** Contact Form 7不能发送留言到邮箱的原因有以下几个: 1. 服务器不支持mail() 函数;绝大多数服务器都是默认支持mail(),但如果你的contact form 7不能收发邮件,我们就需要测试下它是否支持mail()函数,下载 [mailtest.php](http://pan.baidu.com/s/1sjyn2Tv) ,把里面的邮箱地址换成你自己的邮箱地址,保存,把它上传到你网站根目录下;![smtp_email](https://www.diyzhan.com/wp-content/uploads/2015/02/smtp_email.png)然后在浏览器中输入:yourdomain.com/mailtest.php ,如果有显示发送成功,那么服务器是支持mail()函数的;如果不支持,请联系你的空间商去修改支持mail()函数或者那么请看本文最后一个解决办法(使用WP mail SMTP插件); 2. 如果服务器支持mail() 函数,有些服务器要求通过WordPress发送的 emails必须是**你网站域名的有效的email地址(也即(**From:里面的邮箱地址)****,如:你的网站域名是yourdomain.com,在contact form 7修改面板中 **From:**里面的邮箱地址必须是\*\*\*@yourdomain.com这样的邮箱;[![smtp_from](https://www.diyzhan.com/wp-content/uploads/2015/02/smtp_from.png)](https://www.diyzhan.com/wp-content/uploads/2015/02/smtp_from.png) 如果新建一个联系表单,默认的是会使用 **Form:**\[your-name\] 或者\[your-name\] <\[your-email\]> ,有些服务器即使wordpress@yourdomain.com不是一个真实的邮箱,客户留言也会发送到你在 **To:** 那里添加的邮箱地址。但如果我们使用默认的**Form:**\[your-name\] <\[your-email\]>,那么就会使得出现在From:那里的邮箱地址就不再是**你网站域名的有效的email地址**,这时就会发送不成功;如果确实要使用**Form:**\[your-name\] <\[your-email\]>,那么我们的解决办法也将是使用WP mail SMTP插件; 3. 主题,插件的冲突;这个还是看文章:http://kb.cf7skins.com/contact-form-7-email-issues/ ## **确保收到客人留言** 不管怎么样,可能大家对Contact Form 7 收发邮件会有个心里疙瘩,为了确保我们能收到客户邮件,还是建议大家再安装多一个插件:[Contact Form DB](https://wordpress.org/plugins/contact-form-7-to-database-extension/) ,这个插件可以在用户通过Contact Form 7 给你提交留言时,即使留言没有通过Contact Form 7发给你,这个插件也可以在后台记录下Contact Form 7这个留言,那样就不会因contact form 7不发送而错过客人的信息了。 ## **最后解决办法** 如果是使用了服务器的 mail() 函数来收发邮件导致了无法收发,发送邮件;那么我们就可以试下不使用它;安装 WP-Mail-SMTP 这个插件,把原来通过服务器的mail() 函数来收发邮件的方法改为通过 WordPress后台的SMTP的途径来发送邮件;步骤如下: 1. 首先我们要在网站服务器控制面板添加网站域名邮箱(bluehost的是后台控制面板 Email那里添加邮箱); 2. 安装WP-Mail-SMTP插件(安装后,设置页面在 网站后台 setting->email那里); 3. 设置WP-Mail-SMTP插件,这个设置的参数和FOXMAIL的设置参数是一样的,不同邮箱的设置可能不一样;(我测试结果是,我只能用到网站域名的邮箱,如图:其他的邮箱设置这里的参数都设置不了)![wp_smtp_setting](https://www.diyzhan.com/wp-content/uploads/2015/02/wp_smtp_setting.jpg) 4. 发送邮件测试,如果结果是:bool(true)就 OK了;然后再在你的网站前端测试下;[![smtp_test](https://www.diyzhan.com/wp-content/uploads/2015/02/smtp_test.png)](https://www.diyzhan.com/wp-content/uploads/2015/02/smtp_test.png) 5. **注意:**以上截图填写的信息是基于bluehost企业邮箱,如果你的是其他邮箱,请根据邮箱提供的POP3,SMTP信息填写smtp options. ## **RT-18主题的建议** 由于服务器的mail()函数有时候会失灵,造成网站前端主题自带的联系表单发送的客户留言无法被你邮箱收到;建议大家使用 Contact Form 7插件替换原来的主题的联系表单,同时使用插件 [Contact Form DB](https://wordpress.org/plugins/contact-form-7-to-database-extension/) 在网站后台记录客户提交的留言; 如果通过本文还是无法通过Contact Form 7收发邮件,请查看文章《[申请阿里云免费企业邮箱和网站无法发送留言到企业邮箱的解决办法](https://www.diyzhan.com/2016/03/email-account/ "申请阿里云免费企业邮箱和网站无法发送留言到企业邮箱的解决办法")》。 转载自[DIYzhan.com-从零开始自己做外贸网站和海外网络营销](https://www.diyzhan.com/) 最后修改:2024 年 09 月 12 日 12 : 22 PM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 ×Close 赞赏作者 扫一扫支付 支付宝支付 微信支付