由于万网的虚拟主机不支持mail()函数,致使contact-form-7邮件发送失败,我们可以使用WP Mail SMTP插件来完美解决这个问题,下载或搜索WP Mail SMTP并安装,这时我们后台菜单栏的设置里里面会多出一个Email菜单项,
Email
我们点击进入,参考修改成自己相应的项目。由于万网禁用了Email()我们在Malier项选择,Send all WordPress emails via SMTP.(通过SMTP发送所有的WordPress邮件。)

SMTP Host 项: 我们使用腾讯SMTP 端口选择25

email1

Encryption  项:

我们选择No encryption.不使用任何加密,(注:其它二项我都试过不能成功!如果你使用Gmail或其它邮箱请尝试

email2

输入一个用于发信用的测试邮箱,不要与上面设置的邮箱相同,这时候布尔值返回真bool(true)同时我们刚刚用来测试的邮箱收到测试邮件如下图,表示我们的设置已成功

email_true

嘿嘿嘿。。。。是的你不能返回true,同时报SMTP -> ERROR: Failed to connect to server: (0)错误,因为你使用的是万网的云主机,这个万坑的万网,我们还得去他的后台打开fsockopen()函数,嗯,登陆到你的云主机管理控制台,

 

hostfsockopen
因为万网没有开启 stream_socket_client 函数,导致没有办法通过 WordPress 的 SMTP 接口发邮件,所以,我们修改。 wp-includes/class-smtp.php

我们把以下代码片段注释掉

$this->smtp_conn = @stream_socket_client(
$host . ":" . $port,
$errno,
$errstr,
$timeout,
STREAM_CLIENT_CONNECT,
$socket_context
);

并添加以下代码代替:

$this->smtp_conn = fsockopen($host, $port, $errno, $errstr);

恭喜,邮件发送成功。。。