WHMCS 拒绝特定后缀的邮箱

2015年8月12日 分类: whmcs (327 个脚步)

在使用 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 文件,然后贴入内容即可。

实现的效果图如下

WHMCS 拒绝特定后缀的邮箱 【声明】本文 WHMCS 拒绝特定后缀的邮箱 为柠之漠然原创文章,转载请注明出自 枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2015/08/whmcs-reject-email-with-hooks/ , 转载请保留本声明!

标签: , , ,
1条评论
你必须要启用 Javascript