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

Youtrack工作流邮件发送报错求助:评论触发时通知工单创建人

YouTrack脚本错误排查与修正

错误原因分析

1. API方法误用

YouTrack脚本API里根本没有notifications.email()这个方法,正确构造邮件的方法是notifications.buildEmail(),这就是你报TypeError的直接原因。

2. 触发逻辑与收件人问题

  • 原脚本的guard直接返回true,会在工单任何变更时都触发,完全不符合你“只有添加评论时发邮件”的需求;
  • 硬写固定邮箱不仅不灵活,还容易出现空值或无效邮箱,应该动态取工单创建人的邮箱,同时要先检查这个邮箱是否存在,不然就会触发“收件人列表为空”的报错。

修正后的完整代码

var entities = require('@jetbrains/youtrack-scripting-api/entities');
var notifications = require('@jetbrains/youtrack-scripting-api/notifications');

exports.rule = entities.Issue.onChange({
  title: '评论新增时给创建人发邮件',
  guard: function(ctx) {
    // 只有新增评论时才触发脚本
    return ctx.issue.comments.added.isNotEmpty();
  },
  action: function(ctx) {
    var issue = ctx.issue;
    var creator = issue.reporter; // 获取工单创建人

    // 先检查创建人是否存在且有邮箱,避免空收件人报错
    if (!creator || !creator.email) {
      console.warn('工单创建人不存在或未设置邮箱,无法发送邮件');
      return;
    }

    // 获取刚添加的最新评论内容
    var newComment = ctx.issue.comments.added.first();
    var commentContent = newComment.text;

    // 构造带评论内容的HTML邮件
    var emailTemplate = '<html><body>' +
                        '<p>工单 {{issue.id}} 新增了一条评论:</p>' +
                        '<p><strong>评论内容:</strong><br>' + commentContent + '</p>' +
                        '<p>工单标题:{{issue.summary}}</p>' +
                        '<p>当前状态:{{issue.State.name}}</p>' +
                        '</body></html>';

    // 使用正确的API方法构造邮件
    var email = notifications.buildEmail({
      to: [creator.email], // 动态使用创建人的邮箱
      subject: '工单 ' + issue.id + ' 新增评论通知',
      body: emailTemplate
    });
    
    notifications.send(email);
  }
});

关键修改点说明

  • 修正API调用:把错误的notifications.email()换成官方要求的notifications.buildEmail();
  • 限制触发条件:通过ctx.issue.comments.added.isNotEmpty()确保脚本只在新增评论时运行;
  • 优化收件人逻辑:动态获取工单创建人(issue.reporter),先做非空检查,避免因无邮箱导致的报错;
  • 添加评论内容:通过comments.added.first()拿到最新评论,嵌入到邮件里;
  • 修复模板转义:原代码里的&lt;这类转义字符不需要,直接写<>就行,YouTrack能正确解析HTML模板。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:24:59