Changeset 636 for trunk/email2trac.py.in


Ignore:
Timestamp:
08/07/13 14:30:49 (11 years ago)
Author:
bas
Message:

ticket cc fields ignored on ticket update, closes #324

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/email2trac.py.in

    r635 r636  
    222222        self.smtp_default_domain = self.get_config('notification', 'smtp_default_domain')
    223223        self.smtp_replyto = self.get_config('notification', 'smtp_replyto')
     224        self.trac_smtp_always_cc = self.get_config('notification', 'smtp_always_cc')
     225        self.trac_smtp_always_bcc = self.get_config('notification', 'smtp_always_bcc')
    224226
    225227
     
    401403        if self.parameters.reply_all:
    402404
    403             email_cc = ''
    404 
    405             cc_addrs = email.Utils.getaddresses( message.get_all('cc', []) )
    406 
    407             if not cc_addrs:
     405            ticket_cc = ''
     406
     407            msg_cc_addrs = email.Utils.getaddresses( message.get_all('cc', []) )
     408
     409            if not msg_cc_addrs:
    408410                return
    409411
    410             ## Build a list of forbidden CC addresses
    411             #
    412             #to_addrs = email.Utils.getaddresses( message.get_all('to', []) )
    413             #to_list = list()
    414             #for n,e in to_addrs:
    415             #   to_list.append(e)
    416 
    417412            if update:
    418                 self.logger.debug("\tupdate cc-fields")
    419 
    420             for name,addr in cc_addrs:
     413                self.logger.debug("\tupdate ticket cc-field")
     414                ticket_cc = ticket['cc']
     415                ticket_cc_list = ticket_cc.split(',')
     416
     417            for name,addr in msg_cc_addrs:
    421418       
    422419                ## Prevent mail loop
     
    432429                    continue
    433430
     431                ## Always remove the always_cc address
     432                #
     433                elif addr == self.trac_smtp_always_cc:
     434                    self.logger.debug("\tSkipping smtp_always_cc email address for CC-field")
     435                    continue
     436
     437                ## Always remove the always_bcc address
     438                #
     439                elif addr == self.trac_smtp_always_bcc:
     440                    self.logger.debug("\tSkipping smtp_always_bcc email address for CC-field")
     441                    continue
     442
    434443                else:
    435                     if email_cc:
    436                         email_cc = '%s, %s' %(email_cc, addr)
     444                    ## On update, prevent adding duplicates
     445                    #
     446                    if update:
     447                      if addr in ticket_cc_list:
     448                          continue
     449                   
     450                    if ticket_cc:
     451                        ticket_cc = '%s, %s' %(ticket_cc, addr)
    437452                    else:
    438                         email_cc = addr
    439 
    440             if email_cc:
    441                 self.logger.debug('\tCC fields: %s' %email_cc)
    442                 ticket['cc'] = self.email_to_unicode(email_cc)
     453                        ticket_cc = addr
     454
     455            if ticket_cc:
     456                self.logger.debug('\tCC fields: %s' %ticket_cc)
     457                ticket['cc'] = self.email_to_unicode(ticket_cc)
    443458
    444459
Note: See TracChangeset for help on using the changeset viewer.