3

ユーザーがチケットを作成したり、チケットが更新されたりするたびに、電子メール通知を受け取る必要があります。Fossil にはチケット フックと呼ばれるものがあり、UI からアクセスできますadmin -> transfers -> Ticketここから次のコードを試しました:

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 コードを持っている人はいますか?

4

2 に答える 2

4

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
}

より多くのフィールドを渡したり、メッセージを生成するためのロジックを挿入したり、メッセージの送信先を選択したり (メーリング リストは良い出発点です!) する必要がありますが、それがすべての核心です。lappendTcllib パッケージを含むディレクトリをグローバルに明示的に指定する必要がある場合もありますauto_path。そのスクリプトは、構成に非常に固有のものになります。


または、サンプル スクリプトを使用して通知をプッシュするポートをリッスンするスクリプトを作成し、それを操作することもできます。ただし、それは悪用しやすいでしょう。推奨されません。

于 2014-05-20T17:52:05.073 に答える
0

Fossil scm の RSS フィードを Gmail チャネルに接続するために IFTTT サービスを使用する IFTTT アプローチに従いました。出来た。

参照してください: http://lists.fossil-scm.org:8080/pipermail/fossil-users/2013-August/013330.html https://ifttt.com/recipes/109526

https://ifttt.com/recipes/109526 --> 新しいチケットの電子メール通知用です。これを変更 (キーワードまたは簡単なフレーズを変更) して、チケットの変更に関する電子メールを送信できます。

于 2014-07-28T12:10:55.817 に答える