gpt4 book ai didi

version-control - 在 Fossil 中修改工单时的电子邮件通知

转载 作者:行者123 更新时间:2023-12-04 06:58:15 25 4
gpt4 key购买 nike

每当用户创建工单或工单更新时,我都需要收到电子邮件通知。 Fossil 有一个叫做 ticket hook 的东西,可以在 UI 中从 admin -> transfers -> Ticket 访问它。我尝试了来自 here 的以下代码:

set project simpletask
tclInvoke package require http
query {SELECT title, status
FROM ticket
WHERE tkt_uuid=$uuid} {
set title [tclInvoke http::formatQuery $title]
http -asynchronous -- http://127.0.0.1/cgi-bin/tkt-hook?uuid=$uuid&title=$title&status=$status&project=$project
}

我希望在修改票证后执行此代码,但我真的不知道如何修改它以发送电子邮件,以及如何指定应将电子邮件发送给谁。

有没有人有用于发送可以共享的电子邮件通知的示例 TH1 代码?

最佳答案

TH1 自己无法做到这一点;它太有限了(而且是故意如此)。如果您在 TH1 中启用了 Tcl 调用(默认情况下未启用),那么您可以使用类似的东西:

### THIS IS TH1 ###
tclInvoke source /some/dir/scripts/emailsender.tcl
query {SELECT title, status
FROM ticket
WHERE tkt_uuid=$uuid} {
tclInvoke send_email $title $status $uuid
}

然后您只需要确保您的emailsender.tcl 脚本(在上面的位置)定义了一个过程send_email 来执行您想要的操作。你在谈论这样的事情:

### THIS IS TCL ###
package require mime
package require smtp

# Where to route messages through; IMPORTANT!
variable smtp_host smtp.example.com

proc send_email {title status uuid} {
variable smtp_host
set t [mime::initialize -canonical text/plain \
-string "state is now $status for $uuid"]
mime::setheader $t Subject "Change to '$title'"
smtp::sendmessage $t -recipients you@example.com -servers $smtp_host
mime::finalize $t
}

您需要传递更多字段、插入更多逻辑来生成消息、选择将消息发送给谁(邮件列表是一个好的开始!)等等,但这是所有内容的核心。您可能还需要显式lappend 包含 Tcllib 包的目录到全局 auto_path;该脚本将非常适合您的配置。


或者您可以创建一个脚本来监听您将通知推送到的端口,并使用示例脚本进行处理。但这会更容易被滥用; 不推荐。

关于version-control - 在 Fossil 中修改工单时的电子邮件通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23749036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com