WHMCS 拒绝特定后缀的邮箱

WHMCS 拒绝特定后缀的邮箱

admin
2021-05-04 / 0 评论 / 6 阅读 / 正在检测是否收录...

在使用 WHMCS 期间,使用的是 Mailgun 邮件服务来发送信件。每个月都有 10000 的信件额度免费使用,挺适合于小型的网站使用的。

测试的时候发现,QQ邮箱怎么发送也不能收到邮件,而其他的邮箱就能正常收到,或许在垃圾箱中。

但 QQ 邮箱很贱,他连垃圾箱的机会都不给,直接在接受前就给你拒绝了。Mailgun 后台显示一堆类似的信息。

Server response: 550 Connection denied. http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=20022&&no=1000727

因为使用的是免费套餐,所以发送的 IP 都是共享的,QQ 邮箱针对每个 IP 的频率都很严,所以就导致了接收率有 5% 已经不错了。

所以就有了这篇文章…

由于使用的是授权版本,加密的,没法从代码层去解决问题。但是 WHMCS 的文档太不友好了,还不如自己分析去。

最后还是找到了一个 ShoppingCartValidateCheckout .

在用户提交订单后,会自动执行这个 Hooks,然后判断当前钩子是否有内容执行,没有则跳过继续执行下面的代码。

执行时会带入 $_REQUEST ,所以你可以在这个函数内处理任何提交后的内容,所以判断邮箱这就是个小 case 了。

你可以在 /includes/hooks/ 这个文件夹内新建一个 php 文件,然后贴入下面的内容即可。

function checkClientRegisterEmail($vars) {
    $domian = explode("@", $vars['email']);
    $domain = $domian[1];
    if(in_array($domain, array('qq.com', 'vip.qq.com', 'foxmail.com'))) {
        return "请勿使用 QQ 邮箱注册,否则无法收到我们的邮件。";
    }
}
add_hook("ShoppingCartValidateCheckout", 0, "checkClientRegisterEmail");

如果你是自己写插件的话,也可以在插件目录下新建 hooks.php 文件,然后贴入内容即可。

实现的效果图如下

0

评论 (0)

取消