让代码更简单

wordpress限制邮箱每日发信数量避免账户欠费

重要:本文最后更新于2020-01-08 08:39:00,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

wordpress的发信基本上都是靠用户设置smtp发信,使用主机发信很大概率会发送到用户的垃圾箱中,目前大部分企业邮箱的免费发信额度都是有限的,超过免费额度后会继续发送,直至达到发送上限,这可以不是免费的。为了避免我们的发信邮箱发送过多的邮件导致账号欠费,我们有必要对发信邮箱每日发信数量进行限制,下面给出代码狗的解决方案,插件还没写,不会用代码的等我更新吧。

wordpress限制邮箱每日发信数量避免账户欠费

先说说实现原理,通过使用wordpress发信函数wp_mail上的过滤器来挂载我们的计数函数,然后将发信数量写入option数据表中,为了防止第二天不能发送,顺便把统计日期也写进去。然后每执行一次发送邮件函数,就会执行一次我们的计数函数,当发信数量达到我们限制的数量时,就终止发信函数,否则则正常返回。

将下面的代码复制到你的functions.php文件中,并将其中的>3改为你需要的上限值即可。

复制
function send_email($from_name){
$count_email=(int)get_option('count_email');
$datetime = date('Y-m-d');
$sendemail_time=get_option('sendemail_time');
if($datetime!=$sendemail_time){
update_option('count_email', 1);
update_option('sendemail_time', $datetime);
return $from_name;
}else{
if($count_email>=3){
exit( __('The e-mail could not be sent.') . "<br />\n" . __('email is so big.') );
}else{
update_option('count_email', ($count_email+1));
update_option('sendemail_time', $datetime);
return $from_name;
}
}
}
add_filter( 'wp_mail_from_name', 'send_email', 10, 1 );

以上代码在WP SMTP插件上测试通过,如有问题,下方留言。

感觉很棒!可以赞赏支持我哟~

0 打赏

评论 (3)

登录后评论
先收着,以后说不定用上
哈哈,搜如何设置邮件收发上限搜到了狗哥的文章。受教了,多谢!
我就给自己发,不用担心
QQ咨询 邮件咨询 狗哥推荐