分类
WordPress 综合类

用户注册无法收到邮件

WordPress用户注册无法收到邮件的问题可能涉及多个方面,包括WordPress配置、服务器配置、邮件服务提供商限制、插件冲突以及防火墙和安全软件设置等

WordPress用户注册无法收到邮件的问题可能由多种因素导致,

一、可能的原因

  1. WordPress配置问题:WordPress默认使用PHP的mail()函数发送邮件,但该函数可能因服务器配置不当而失效。
  2. 服务器配置问题:服务器可能没有正确配置邮件发送服务,如SMTP服务器设置不正确或邮件传输代理(如Sendmail、Postfix)未运行。
  3. 邮件服务提供商限制:部分邮件服务提供商可能对来自WordPress的邮件设置了限制或过滤规则。
  4. 插件冲突:安装的某些WordPress插件可能与邮件发送功能冲突,导致邮件无法发送。
  5. 防火墙或安全软件拦截:防火墙或安全软件可能将WordPress发送的邮件视为垃圾邮件或恶意邮件而拦截。

二、解决方法

  1. 使用SMTP插件
    • 安装SMTP插件:推荐使用如WP Mail SMTP这样的SMTP插件来替代WordPress默认的mail()函数。这些插件通常提供更可靠的邮件发送服务。
    • 配置SMTP插件:在安装并激活SMTP插件后,进入插件的设置页面,根据邮件服务提供商的要求填写SMTP服务器的详细信息,包括SMTP主机地址、端口、用户名和密码。同时,确保启用了SSL或TLS加密以保证邮件传输的安全性。
  2. 检查并修改服务器配置
    • 如果使用的是虚拟主机或云服务,可能需要联系服务商以获取帮助,检查并修改服务器的邮件发送配置。
    • 如果可以自行管理服务器,检查SMTP服务器设置是否正确,并确保邮件传输代理(如Sendmail、Postfix)正常运行。
  3. 检查邮件服务提供商的限制
    • 登录邮件服务提供商的账户,检查是否有关于来自WordPress的邮件的限制或过滤规则。根据需要进行调整或申请解除限制。
  4. 禁用并启用插件
    • 禁用除SMTP插件外的所有插件,以判断是否有插件冲突。如果禁用后邮件功能恢复正常,则逐个重新启用插件以找出冲突的插件。
  5. 检查防火墙和安全软件设置
    • 检查服务器和本地计算机的防火墙和安全软件设置,确保没有阻止WordPress的邮件发送。如有必要,将WordPress的邮件发送地址添加到白名单中。
  6. 联系技术支持
    • 如果以上方法均无法解决问题,建议联系WordPress的技术支持团队或托管服务提供商的技术支持部门,以获取更专业的帮助和解决方案。

三、总结

WordPress用户注册无法收到邮件的问题可能涉及多个方面,包括WordPress配置、服务器配置、邮件服务提供商限制、插件冲突以及防火墙和安全软件设置等。通过逐一排查这些可能的原因,并采取相应的解决方法,通常可以解决这一问题。如果问题较为复杂或难以解决,建议寻求专业的技术支持。

ordPress网站注册完成后,电子邮箱收不到信息的情况可能由多种原因引起。

一、原因及解决方法

  1. WordPress默认配置问题
    • 原因:WordPress默认不启用邮件发送功能,且默认使用PHP的mail()函数发送邮件,但该函数可能因服务器配置或邮件服务状态而失效。
    • 解决方法
      • 确认WordPress的邮件发送功能是否已启用,并在需要时安装SMTP插件(如WP Mail SMTP)来替代mail()函数。
      • 在SMTP插件中配置正确的SMTP服务器信息,包括服务器地址、端口、用户名和密码,并确保启用了SSL或TLS加密。
  2. 服务器配置问题
    • 原因:服务器可能未正确配置邮件发送服务,如Sendmail、Postfix等邮件传输代理未运行或配置不当。
    • 解决方法
      • 检查服务器的邮件服务状态,并确保邮件传输代理正常运行。
      • 如果使用的是虚拟主机或云服务,可能需要联系服务商以获取帮助。
  3. 防火墙或安全软件拦截
    • 原因:防火墙或安全软件可能将WordPress发送的邮件视为垃圾邮件或恶意邮件而拦截。
    • 解决方法
      • 检查防火墙和安全软件的设置,确保WordPress的邮件发送功能未被拦截。
      • 如果可能,将WordPress的邮件发送地址添加到白名单中。
  4. 邮件服务提供商的限制
    • 原因:某些邮件服务提供商(如Gmail、Outlook等)可能对来自WordPress的邮件设置了限制或过滤规则。
    • 解决方法
      • 检查邮件服务提供商的账户设置,确保没有阻止来自WordPress的邮件。
      • 如果使用的是Gmail等第三方邮箱服务,可以尝试使用其提供的SMTP服务器信息来配置WordPress的SMTP插件。
  5. WordPress插件冲突
    • 原因:安装的某些WordPress插件可能与邮件发送功能冲突,导致邮件无法发送。
    • 解决方法
      • 禁用除SMTP插件外的其他所有插件,以判断是否有插件冲突。
      • 如果禁用后邮件功能恢复正常,则逐个重新启用插件以找出冲突的插件。
  6. WordPress主题问题
    • 原因:某些WordPress主题可能包含影响邮件发送的代码或设置。
    • 解决方法
      • 尝试将主题暂时切换为WordPress默认主题(如Twenty Twenty-One),以检查是否是主题设置导致的邮件发送问题。

二、具体操作步骤

  1. 安装并配置SMTP插件
    • 登录WordPress后台,导航至“插件” > “添加新”。
    • 搜索“WP Mail SMTP”并安装此插件。
    • 在安装并激活插件后,进入插件的设置页面,根据提示配置SMTP服务器信息。
  2. 检查服务器邮件服务状态
    • 如果使用的是虚拟主机或云服务,联系服务商以获取帮助。
    • 如果可以自行管理服务器,检查邮件传输代理(如Sendmail、Postfix)的运行状态和配置。
  3. 检查防火墙和安全软件设置
    • 检查服务器和本地计算机的防火墙和安全软件设置,确保没有阻止WordPress的邮件发送。
  4. 检查邮件服务提供商的限制
    • 登录邮件服务提供商的账户,检查是否有关于来自WordPress的邮件的限制或过滤规则。
  5. 禁用和启用插件
    • 禁用除SMTP插件外的所有插件,然后检查邮件功能是否恢复正常。
    • 如果恢复正常,则逐个重新启用插件以找出冲突的插件。
  6. 切换WordPress主题
    • 尝试将主题切换为WordPress默认主题(如Twenty Twenty-One),然后检查邮件功能是否恢复正常。

通过以上步骤,大多数WordPress网站注册后无法收到邮件的问题都可以得到解决。如果问题仍然存在,可能需要更深入的技术支持,如联系托管服务提供商或聘请专业的WordPress技术顾问。

1.打开wordpress\wp-includes\pluggable.php

1) 注释下面一行

// $phpmailer->From = apply_filters( 'wp_mail_from', $from_email );

2) 把下面一行

$phpmailer->IsMail();

改为

$phpmailer->IsSMTP();

2.打开wordpress\wp-includes\class-phpmailer.php

public $From = 'weiheliblog@163.com'; // 发送邮箱
public $FromName = 'A博客'; 
public $Host = 'smtp.163.com'; public $SMTPAuth = true; public $Username = 'weiheliblog'; // 与第一行的$From相对应 public $Password = 'xxxxxxxxx; // 第一行的邮箱密码

1开放注册

WordPress后台,设置-常规,勾选任何人都可以注册前面的复选框,新用户角色改为作者,保存即可开启。

2新用户注册收不到邮件问题解决

wordpress配置SMTP服务发送邮件(以qq邮箱为例)

第一步、配置邮箱(这里介绍qq邮箱)

我试过多个邮箱,包括新浪邮箱,126邮箱,163邮箱,阿里云邮箱和qq邮箱。其中新浪邮箱和阿里云邮箱不需要授权码,登录账号和密码就可以在第三方直接使用。而主流的qq邮箱在第三方登录时需要输入授权码,qq邮箱的独立密码都不行,必须是授权密码。废话不多了, 
打开qq邮箱(直接通过qq面板的邮箱图标进),依次点开 “设置”–>“账户”,往下翻,可以看到SMTP相关字眼,开启对应服务(默认是开启的),然后点击获取授权码,授权码一般是随机的16个字母,鼠标滑过ctrl+c复制到一个地方存起来(比如新建一个记事本,粘贴进去)。第一步,就这样完成了。

第二步、安装WP SMTP插件

第三步、进行相关配置

①SMTP服务器地址在英文的情况下好像是hosts,qq邮箱填smtp.qq.com,新浪邮箱填smtp.sina.com,阿里云邮箱填 smtp.aliyun.com。记住字母千万别打错了(有一次smtp写成了smpt,半天没找到原因) 
②smt加密方式一般是选None,其对应的端口是25。我这里选择是SSL,端口是465。(不知道为什么qq邮不能用none,只有ssl加密才可以,不知道是我的原因还是?) 
③认证用户名和密码,如果是sina邮箱和aliyun邮箱,账号是邮箱,密码是登录密码。如果是qq邮箱或者126邮箱,账号是邮箱,密码是授权码,不是登录密码。

第四步、测试是否配置成功

下面有一个测试表单,赶快来试一试吧

如果你能看到我这样的消息,那就是成功了,success!否则,再检查下哦

三、用户重置密码邮件链接失效问题解决

方法一

解决的方法很简单,把下面的代码加入当前主题的functions.php里面就可以了。

function reset_password_message( $message, $key ) { if ( strpos($_POST[‘user_login’], ‘@’) ) { $user_data = get_user_by(’email’, trim($_POST[‘user_login’])); } else { $login = trim($_POST[‘user_login’]); $user_data = get_user_by(‘login’, $login); } $user_login = $user_data->user_login; $msg = (‘有人要求重设如下帐号的密码:’). “\r\n\r\n”; $msg .= network_site_url() . “\r\n\r\n”; $msg .= sprintf((‘用户名:%s’), $user_login) . “\r\n\r\n”; $msg .= (‘若这不是您本人要求的,请忽略本邮件,一切如常。’) . “\r\n\r\n”; $msg .= (‘要重置您的密码,请打开下面的链接:’). “\r\n\r\n”; $msg .= network_site_url(“wp-login.php?action=rp&key=$key&login=” . rawurlencode($user_login), ‘login’) ; return $msg; } add_filter(‘retrieve_password_message’, reset_password_message, null, 2);

方法二

通过修改WordPress根目录下wp-login.php文件可以解决这个问题。

找到如下代码(大约在第330行):

$message .= ‘<‘ . network_site_url(“wp-login.php?action=rp&key=$key&login=” . rawurlencode($user_login), ‘login’) . “>\r\n”;

修改为:

$message .= network_site_url(“wp-login.php?action=rp&key=$key&login=” . rawurlencode($user_login), ‘login’) ;

其实也就是把’<‘ .和. “>\r\n”去掉,但是这种方法在升级Wordpress后会失效,因为升级后wp-login.php会被替换,需要重新修改wp-login.php,所以推荐使用第一种方法。

修改密码链接地址后面多了个”>”号解决办法:

下载站点中wp-includes文件夹中的pluggable.php文件并打开
找到如下语句:

$message .= ‘<‘network_site_url(“wp-login.php?action=rp&key=$key&login=” . rawurlencode($user_login), ‘login’)”>\r\n\” ;

修改为:

$message .= network_site_url(“wp-login.php?action=rp&key=$key&login=” . rawurlencode($user->user_login), ‘login’) . “\r\n\r\n”;