当WordPress需要发送验证邮件,例如修改登录邮箱或找回登录密码时,通常会依赖于服务器的邮件发送功能。但是,如果服务器提供商出于安全或其他原因禁用了25端口(这是SMTP协议常用的端口),或者虚拟主机环境禁用了PHP的mail函数,那么WordPress将无法直接发送邮件。
为了解决这个问题,我们可以使用第三方邮箱服务提供商(如QQ邮箱、网易邮箱等)的SMTP功能。SMTP是一种用于传输电子邮件的协议,通过这些企业邮箱提供的SMTP服务,我们可以配置WordPress使用这些邮箱的服务器来发送邮件。
具体步骤如下:
获取SMTP设置:
首先,你需要登录到你的QQ邮箱、网易邮箱或其他企业邮箱的管理界面,找到SMTP服务的设置选项。在这里,你可以获得SMTP服务器的地址、端口号、用户名(通常是你的邮箱地址)和密码。
安装和配置插件:
在WordPress中,有些插件(如WP Mail SMTP)可以帮助你更方便地配置SMTP设置。安装并激活这些插件后,你可以在WordPress后台找到相应的设置选项。
配置SMTP设置:
在插件的设置界面中,你需要填写之前从邮箱管理界面获得的SMTP服务器地址、端口号、用户名和密码。有些插件还可能要求你填写一个加密方式(如SSL或TLS)。测试配置:完成设置后,通常会有一个“测试”按钮,点击它可以发送一封测试邮件到你的邮箱,以验证配置是否正确。
保存并启用:
如果测试成功,保存你的设置,并启用SMTP功能。此后,WordPress将使用你配置的第三方邮箱的SMTP服务来发送验证邮件。通过这种方法,即使服务器的25端口被禁用或mail函数被禁用,WordPress也能成功地发送邮件,从而完成修改登录邮箱或找回登录密码的操作。
使用SMTP功能的方式很简单,只需要将下列代码加入到functions.php文件即可
//使用smtp发邮件
function mail_smtp( $phpmailer ) {
$phpmailer->IsSMTP();
$phpmailer->SMTPAuth = true;//启用SMTPAuth服务
$phpmailer->Port = 465;//MTP邮件发送端口,这个和下面的对应,如果这里填写25,则下面为空白
$phpmailer->SMTPSecure ="ssl";//是否验证 ssl,这个和上面的对应,如果不填写,则上面的端口须为25
$phpmailer->Host = "smtp.qiye.aliyun.com";//邮箱的SMTP服务器地址,如果是QQ的则为:smtp.exmail.qq.com
$phpmailer->Username = "***@abc.com";//你的邮箱地址
$phpmailer->Password ="********";//你的邮箱登陆密码
}
add_action('phpmailer_init', 'mail_smtp');
function ashuwp_wp_mail_from( $original_email_address ) {
return '***@abc.com';//这个很重要,得将发件地址改成和上面smtp邮箱一致才行
}
add_filter( 'wp_mail_from', 'ashuwp_wp_mail_from' );
在使用时,请务必参考代码中的注释信息,并根据你的个人邮箱账户和SMTP服务器地址进行相应的修改。这里提供的示例代码使用的是阿里企业邮箱的SMTP设置,因此请确保将其替换为你自己邮箱的准确信息,以确保邮件发送功能的正常运行。