Ticket #6078: recursive-multiple-email-addresses.diff
| File recursive-multiple-email-addresses.diff, 2.1 KB (added by jsiirola@…, 4 years ago) |
|---|
-
trac/notification.py
279 279 280 280 if not is_email(address): 281 281 if address == 'anonymous': 282 return None282 return [None] 283 283 if self.email_map.has_key(address): 284 address = self.email_map[address] 284 _addrList = [] 285 _raw = [x.strip() for x in self.email_map[address].split(',')] 286 for x in _raw: 287 _addrList.extend(self.get_smtp_address(x)) 288 return _addrList 285 289 elif NotifyEmail.nodomaddr_re.match(address): 286 290 if self.config.getbool('notification', 'use_short_addr'): 287 return address291 return [address] 288 292 domain = self.config.get('notification', 'smtp_default_domain') 289 293 if domain: 290 294 address = "%s@%s" % (address, domain) 291 295 else: 292 296 self.env.log.info("Email address w/o domain: %s" % address) 293 return None297 return [None] 294 298 295 299 mo = self.shortaddr_re.search(address) 296 300 if mo: 297 return mo.group(0)301 return [mo.group(0)] 298 302 mo = self.longaddr_re.search(address) 299 303 if mo: 300 return mo.group(2)304 return [mo.group(2)] 301 305 self.env.log.info("Invalid email address: %s" % address) 302 return None306 return [None] 303 307 304 308 def encode_header(self, key, value): 305 309 if isinstance(value, tuple): … … 347 351 348 352 def build_addresses(rcpts): 349 353 """Format and remove invalid addresses""" 350 return filter(lambda x: x, \ 351 [self.get_smtp_address(addr) for addr in rcpts]) 354 _addrList=[] 355 for x in rcpts: 356 _addrList.extend(self.get_smtp_address(x)) 357 return filter(lambda x: x, _addrList) 352 358 353 359 def remove_dup(rcpts, all): 354 360 """Remove duplicates"""
