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

基于Python脚本输入 按Test_Status条件变更Outlook文本颜色

解决方案:根据Test_Status动态设置Outlook邮件正文文本颜色

核心思路

通过Python定义测试状态与颜色的映射关系,动态生成带样式的HTML邮件正文,再通过Outlook客户端发送。

步骤实现

  1. 定义状态-颜色映射规则
    用字典统一管理不同状态对应的颜色值,便于后续维护修改:
status_color_map = {
    "blocked": "#FFA500",  # 橙色
    "passed": "#008000",   # 绿色
    "failed": "#FF0000"    # 红色
}
  1. 动态生成HTML邮件正文
    针对你提供的邮件模板结构,将需要变色的文本用带样式的<span>标签包裹,通过字符串格式化插入动态颜色值:
<html>
<body>
    <h2>自动化测试报告</h2>
    <p>测试执行状态:<span style="color: {color}; font-size: 16px; font-weight: bold;">{status}</span></p>
    <p>测试详情:...</p>
</body>
</html>
  1. 完整Python脚本示例
    使用pywin32库操作Outlook客户端,实现动态邮件生成与发送:
import win32com.client as win32

# 状态-颜色映射
status_color_map = {
    "blocked": "#FFA500",
    "passed": "#008000",
    "failed": "#FF0000"
}

# 测试脚本输出的Test_Status变量
Test_Status = "failed"

# 获取对应颜色,默认黑色作为兜底方案
text_color = status_color_map.get(Test_Status, "#000000")

# 构建带动态样式的HTML正文
html_body = f"""
<html>
<body>
    <h2>自动化测试报告</h2>
    <p>测试执行状态:<span style="color: {text_color}; font-size: 16px; font-weight: bold;">{Test_Status.upper()}</span></p>
    <p>测试用例总数:100</p>
    <p>通过数:85 | 失败数:10 | 阻塞数:5</p>
</body>
</html>
"""

# 初始化Outlook并创建邮件
outlook_app = win32.Dispatch('Outlook.Application')
mail_item = outlook_app.CreateItem(0)

# 配置邮件信息
mail_item.Subject = f"【测试通知】{Test_Status.upper()} - 自动化测试执行结果"
mail_item.HTMLBody = html_body
mail_item.To = "test_team@example.com"
mail_item.CC = "manager@example.com"

# 可选:调试时显示邮件,正式场景替换为mail_item.Send()直接发送
mail_item.Display()

注意事项

  • 确保已安装pywin32库,可通过命令pip install pywin32完成安装
  • 若原始HTML模板更复杂,只需将需要变色的目标文本用<span style="color: {text_color};">...</span>包裹,再通过f-string替换颜色值即可
  • 若无需依赖Outlook客户端,可改用smtplib发送HTML邮件,核心的颜色动态替换逻辑保持一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:05:25