首页
/ FreeScout 邮件通知完全禁用方案详解

FreeScout 邮件通知完全禁用方案详解

2025-06-25 08:17:39作者:傅爽业Veleda

背景介绍

在FreeScout客服系统进行大规模负载测试时,特别是需要创建大量测试会话(如10,000个新会话)的场景下,系统默认的邮件通知机制可能会带来两个主要问题:

  1. 对SMTP服务器造成过大压力
  2. 产生大量测试邮件造成收件箱污染

解决方案

常规方案:逐个禁用用户通知

对于少量用户,可以通过以下步骤禁用邮件通知:

  1. 进入用户管理界面
  2. 编辑每个用户的个人资料
  3. 关闭邮件通知选项

批量处理方案:代码层修改

当用户数量庞大(如10,000个代理用户)时,逐个修改显然不现实。此时可以通过修改系统核心代码来全局禁用邮件通知功能。

具体实现方法:

找到Subscription.php文件中的相关代码段(约376行),注释掉以下三行核心通知发送代码:

// \App\Jobs\SendNotificationToUsers::dispatch($notify_info['users'], $notify_info['conversation'], $notify_info['threads'])
//    ->delay($delay)
//    ->onQueue('emails');

技术原理

这段代码原本负责:

  1. 创建邮件通知任务
  2. 设置发送延迟
  3. 将任务加入邮件队列

通过注释这些代码,系统将完全跳过邮件通知的创建和发送过程,从根本上解决了邮件通知问题。

注意事项

  1. 此修改会影响所有用户的邮件通知,不仅限于测试场景
  2. 修改前建议备份原始文件
  3. 生产环境使用前应充分测试
  4. 系统升级时可能需要重新应用此修改

替代方案

如果希望保留部分通知功能,可考虑:

  1. 修改为仅记录日志而不实际发送
  2. 添加环境判断,仅在测试环境禁用
  3. 实现邮件发送频率限制

总结

通过代码层修改禁用FreeScout邮件通知是进行大规模负载测试时的有效解决方案,特别适合需要创建大量测试会话的场景。此方法简单直接,能有效减轻SMTP服务器压力并避免产生垃圾邮件。

登录后查看全文
热门项目推荐