Joomla 网站收到了大量的垃圾询盘信息,几乎一秒一条,即浪费精力去清理,又占用了处理线程,拖慢了网站速度。
所以必须在发送邮件前,就过滤掉。
修改哪个代码文件
太久不看,已经忘记了需要修改哪个代码文件。但是好在记住了一个变量名 emailBody, 这样就定位到了:
> grep emailBody -r components/
components/com_sppagebuilder/addons/form_builder/site.php: $emailBody = '';
先备份
不想在线上用 git 管理,担心有漏洞,还是简单粗暴的使用 cp 备份稳妥一些。
cd components/com_sppagebuilder/addons/form_builder/
cp site.php site.php.bak20241010
判断是否包含关键词
<?php
// 判断 $emailBody 这个字符串变量中,是否包含以下垃圾信息关键词
$emailBody = "这是一封包含垃圾信息关键词的邮件,例如 ГОСЛОТО 和 лотерейный билет。";
// 定义垃圾信息关键词数组
$spamKeywords = array(
"ГОСЛОТО",
"Добрый день",
"Поздравляем",
"Подравляем!",
"лотepeйный",
"юбилейный",
"билете",
"ГосЛото",
"ГОСЛОТО.",
"ГосЛото.",
"лотерейный билет"
);
// 遍历关键词数组,检查是否包含在邮件内容中
foreach ($spamKeywords as $keyword) {
if (strpos($emailBody, $keyword)!== false) {
echo "邮件中包含垃圾信息关键词:". $keyword. "\n";
}
}
?>
测试
先判断本机是否安装了 PHP:
> php --version
PHP 7.4.3 (cli) (built: Oct 6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
执行:
> php /mnt/d/temp/a.php
邮件中包含垃圾信息关键词:ГОСЛОТО
邮件中包含垃圾信息关键词:лотерейный билет
返回什么
参考发送成功的逻辑:
if ($mail->sendMail(...)) {
$output['status'] = true;
$output['content'] = '<span class="sppb-text-success">' . $success_message_ajax . '</span>';
}
return json_encode($output);
直接返回
$output['status'] = true;
$output['content'] = '<span class="sppb-text-success">' . $success_message_ajax . '</span>';
return json_encode($output);
只要让垃圾信息发布者不知道发送失败就行。
最终代码
<?php
// 判断 $emailBody 这个字符串变量中,是否包含以下垃圾信息关键词
$emailBody = "这是一封包含垃圾信息关键词的邮件,例如 ГОСЛОТО 和 лотерейный билет。";
// 定义垃圾信息关键词数组
$spamKeywords = array(
"ГОСЛОТО",
"Добрый день",
"Поздравляем",
"Подравляем!",
"лотepeйный",
"юбилейный",
"билете",
"ГосЛото",
"ГОСЛОТО.",
"ГосЛото.",
"лотерейный билет"
);
// 遍历关键词数组,检查是否包含在邮件内容中
foreach ($spamKeywords as $keyword) {
if (strpos($emailBody, $keyword)!== false) {
//echo "邮件中包含垃圾信息关键词:". $keyword. "\n";
$output['status'] = true;
$output['content'] = '<span class="sppb-text-success">' . $success_message_ajax . '</span>';
return json_encode($output);
}
}
?>
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式