[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[kagemai-users:0587] Re: 通知先のアドレス振り分け



小寺です。

> 要は、このA分類の障害なら乙さんに、B分類の障害ならば丙さん
> にメールを送信したいわけです。
こういった用途の場合は、送信時に処理するフックスクリプトを用意する必要があります。
BTSテンプレートプロジェクトにある、email_message.rb の sendmail メソッドを

    map = []
    map << ["A分類", "乙さん@xxxxxxxxx"]
    map << ["B分類", "丙さん@xxxxxxxxx"]
    map << ["C分類", "乙さん@xxxxxxxxx,丙さん@xxxxxxxxx"]
    mappedaddrs = ""
    messages = [message]
    messages << report.at(report.size - 1) if report.size >= 2 #状態変化時に前状態の関係者にも通知する場合
    messages.each do |mess|
        ['bugtype'].each do |eid| #対象フィールドのIDリスト
            return unless mess.has_element?(eid)
            # カンマ区切りアドレスリストへ変換
            mess[eid].split(/[,\s]+/).each do |addrlist|
            mappedaddrs += ',' + Hash[*map.flatten][addrlist];
        end
    end
    # アドレスユニーク化して送信
    to = mappedaddrs.split(/[,\s]+/).uniq.find_all{|addr| valid_email_address?(addr)}
    if !to.empty? then
      project.sendmail_to(report, message, to, [], [])
    end


という様な感じにして利用する様にすると、出来ると思います。
(全く未確認なのでバグだらけかと思います。あくまでも感じという事で)