なみひらブログ

学んだことを日々記録する。~ since 2012/06/24 ~

メールを送信してRedmineチケットを発行する。

Redmineに設定されたメールアドレスへメールを送信し、その文面でチケットを自動的に発行する対応をしました。そのときのメモを記載します。

 

この機能は、例えばサービス運用中に障害が発生した場合にメールを送信するようにしておき、そのメールで障害に対するRedmineチケットが自動的に発行するなどといった使い方があります。

主に下記のリンクを参照しました。

http://redmine.jp/guide/RedmineReceivingEmails/

Redmineサーバの設定手順

  • /etc/mailsendmail.mcを修正します。(sendmailでローカル以外からメールを受信できるようにする)
    (変更前) DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
    (変更後) dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
    
  • 更新を反映する
    sudo sh -c 'm4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf'
  • 受け取る宛先ドメインを指定する。下記追記します。
    [namihira@redmine]$ sudo vi /etc/mail/local-host-names
    # local-host-names - include all aliases for your machine here.
    redmine.co.jp 
  • とりあえず再起動します。
     sudo /etc/init.d/sendmail restart 
  • ブラウザからRedmineにアクセスして、APIキーを取得します。やり方は上記参考リンク先を参照してください。
  • 指定された宛名へのメールを受信した場合、redmineのプログラムを起動するようにする。(/etc/aliases内、下記追記する。)
     # for redmine redmine
    "|/var/lib/redmine/extra/mail_handler/rdm-mailhandler.rb --url http://localhost:80/redmine --key [さっき取得したAPIキー] --allow-override project,tracker,category,priority" 
  • 設定更新を反映する
    sudo newaliases
  • 上記プログラムを動かすシェルは、sendmail特有のもの(smrsh)であるため、PATHを通す。
    [namihira@redmine smrsh]$ pwd /etc/smrsh 
    [namihira@redmine smrsh]$ sudo ln -s /var/lib/redmine/extra/mail_handler/rdm-mailhandler.rb rdm-mailhandler.rb
    [namihira@redmine smrsh]$ ll
    合計 0 lrwxrwxrwx 1 root root 54 2月 13 19:25 rdm-mailhandler.rb -> /var/lib/redmine/extra/mail_handler/rdm-mailhandler.rb

     

    この設定の場合、redmineredmine.co.jpにメールが送信された場合、その内容でチケット登録されます。

    メールのフォーマットは上記の参考リンク先を参照してください。