You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kiwi TCMS V12.2修改测试计划/用例时无法发送邮件求助

Kiwi TCMS V12.2 修改测试计划/用例无法触发邮件通知的排查与解决

问题描述

Kiwi TCMS V12.2在修改测试计划或测试用例时无法发送邮件。已确认测试计划和测试用例均已开启邮件通知,且SMTP服务配置正常(测试邮件、修改密码邮件可正常发送),SMTP服务器无拒收/退回记录,推测邮件未被触发发送。

已完成的配置

local-settings.py 配置

SERVER_EMAIL = DEFAULT_FROM_EMAIL = 'kiwitcms@example.com'
# additional Kiwi TCMS setting
EMAIL_SUBJECT_PREFIX = '[Kiwi-TCMS] '

# AWS SES HOST
EMAIL_HOST = '<removed>'
EMAIL_PORT = 25
EMAIL_HOST_USER = '<removed>'
EMAIL_HOST_PASSWORD = '<removed>'

# Enable TLS
EMAIL_USE_TLS = True

docker-compose.yml 相关配置

web:
    container_name: kiwi_web
    depends_on:
        - db
    restart: always
    image: kiwitcms/kiwi:v12.2
#        image: kiwitcms/kiwi:latest
    ports:
        - 80:8080
        - 443:8443
    volumes:
        - uploads:/Kiwi/uploads:Z
        - ./local_settings.py:/venv/lib64/python3.9/site-packages/tcms/settings/local_settings.py

排查与解决步骤

  1. 确认通知接收人配置

    • 检查测试计划/测试用例的「通知设置」中,是否已添加正确的接收人邮箱。Kiwi TCMS的通知默认仅发送给关联的负责人、创建者或指定的通知列表,若未配置接收人,即使开启通知也不会触发邮件。
    • 进入测试计划详情页,点击「通知」按钮,确认已添加需要接收通知的用户或邮箱地址;测试用例操作同理。
  2. 检查后台任务队列状态
    Kiwi TCMS的邮件通知(除测试邮件、密码重置外)通常通过Celery异步任务队列发送,需确认Celery服务是否正常运行:

    • 执行命令查看容器内Celery进程状态:
      docker exec kiwi_web ps aux | grep celery
      
    • 若Celery未运行,需在docker-compose.yml中补充Celery、Celery-beat及Redis服务配置,示例如下:
      redis:
          container_name: kiwi_redis
          image: redis:alpine
          restart: always
      
      celery:
          container_name: kiwi_celery
          depends_on:
              - db
              - redis
          restart: always
          image: kiwitcms/kiwi:v12.2
          command: celery -A tcms worker -l info
          volumes:
              - uploads:/Kiwi/uploads:Z
              - ./local_settings.py:/venv/lib64/python3.9/site-packages/tcms/settings/local_settings.py
          environment:
              - CELERY_BROKER_URL=redis://redis:6379/0
      
      celery-beat:
          container_name: kiwi_celery_beat
          depends_on:
              - db
              - redis
          restart: always
          image: kiwitcms/kiwi:v12.2
          command: celery -A tcms beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler
          volumes:
              - uploads:/Kiwi/uploads:Z
              - ./local_settings.py:/venv/lib64/python3.9/site-packages/tcms/settings/local_settings.py
          environment:
              - CELERY_BROKER_URL=redis://redis:6379/0
      
    • 更新配置后重启所有服务:
      docker-compose down && docker-compose up -d
      
  3. 验证异步任务是否被触发

    • 查看Celery容器日志,确认修改操作是否触发了邮件任务:
      docker logs kiwi_celery
      
    • 若日志中无相关任务记录,可在local-settings.py中添加日志配置,开启DEBUG模式排查:
      DEBUG = True
      LOGGING = {
          'version': 1,
          'disable_existing_loggers': False,
          'handlers': {
              'console': {
                  'class': 'logging.StreamHandler',
              },
          },
          'loggers': {
              'tcms.core.contrib.comments': {
                  'handlers': ['console'],
                  'level': 'DEBUG',
              },
              'tcms.management': {
                  'handlers': ['console'],
                  'level': 'DEBUG',
              },
          },
      }
      
    • 重启web容器后,再次修改测试计划/用例,查看控制台日志是否有任务触发记录。
  4. 确认权限与全局通知开关

    • 检查当前操作用户是否拥有修改测试计划/用例的权限,以及是否在通知范围内。若用户修改自己创建的内容,需确认通知设置是否包含创建者。
    • 进入「管理」->「通知设置」,确认全局通知开关已开启,且测试计划、测试用例的修改事件通知已启用。

内容的提问来源于stack exchange,提问作者BogdanK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 19:57:44