2015-01-29 6 views
0

전자 메일로 Trac 티켓을 열 수있는 방법을 찾고 있습니다.전자 메일로 티켓 열기 Trac의 POP3

지금까지 발견 한 유일한 해결책은 email2trac | https://oss.trac.surfsara.nl/email2trac/wiki이 솔루션의 문제점은 & 메일 서버를 설치하고 싶지 않다는 것입니다. 나는 덜 침략적 인 해결책을 원합니다.

나는 POP3 계정에서 메시지를 다운로드하고 내용을 분석하여 티켓을 열거 나 업데이트하는 cron 스크립트를 생각하고있었습니다.

이것이 가능합니까?

+1

trac-users 메일 링리스트에서 최근이 내용에 대한 유용한 토론 : [here] (https://groups.google.com/d/msg/trac-users/Ujsf2WuG7Yc/l2Df0i-oj7AJ) 및 [여기] (https://groups.google.com/d/msg/trac-users/l9AQ57aCvgY/Fv5LmvtWoXoJ). – RjOllos

답변

0

나는 내용을 분석하여 POP3 계정 오픈/업데이트 티켓에서 메시지를 다운로드 크론 스크립트에 대해 생각했다. 이 이 가능한가요?

가능할 수 있습니다. 물론 POP3 계정의 데이터가 있으면 Trac API를 사용하여 적절히 반복하여 티켓을 만들고 업데이트 할 수 있습니다.

데이터 검색 단계의 경우 IAdminCommandProvider 인터페이스를 구현하는 Component으로 새 플러그인을 만들 수 있습니다. 실제로 데이터를 검색하고 구문 분석하는 방법은 구현 세부 사항을 결정하는 것이지만 email/poplib 모듈을 사용하고 email2trac의 구문 분석 구조 중 일부를 따를 수 있습니다. 일부 검증되지 않은 상용구 당신이 시작하는 경우

...

from trac.admin import IAdminCommandProvider 
from trac.core import Component, implements 
from trac.ticket import Ticket 

def EmailToTicket(Component): 
    implements(IAdminCommandProvider) 

    def get_admin_commands(self): 
     yield ('emailtoticket retrieve', 
       'Retrieve emails from a mail server.' 
       None, self._do_retrieve_email) 

    def _do_retrieve_email(self): 
     # TODO - log into the mail server, then parse data. 
     # It would be nice to have a tuple of dictionaries, 
     # with keys like id, summary, description etc 

     # iterate over the data and create/update tickets 
     for email in emails: 
      if 'id' in email: # assuming email is a dictionary 
       self._update_ticket(email) 
      else: 
       self._create_ticket(email) 

    def _update_ticket(self, data): 
     ticket = Ticket(self.env, data[id]) 
     for field, value in data.iteritems(): 
      ticket[field] = value 
     ticket.save_changes(author, comment, when) 

    def _create_ticket(self, data): 
     ticket = Ticket(self.env) 
     for field, value in data.iteritems(): 
      ticket[field] = value 
     ticket.insert() 

그런 다음 크론 탭 (주파수가 당신에게 달려 - 아래의 예는 매 분마다 실행) TracAdmin를 통해이 명령을 실행 할 수

* * * * * trac-admin /path/to/projenv emailtoticket retrieve 

플러그인 개발에 대해 자세히 알아 보려면 this Trac wiki page을 읽어야합니다.

+0

설명은 정상이지만 설치할 준비가 된 것을 찾고있었습니다. 내게 좋은 것을 몇 가지 주었기 때문에 나는 너에게 받아 들일 것이다. – Hpatoio