diff -urNp Trac-0.11b2.org/trac/notification.py Trac-0.11b2/trac/notification.py
|
old
|
new
|
|
| 163 | 163 | from_email = 'trac+tickets@localhost' |
| 164 | 164 | subject = '' |
| 165 | 165 | template_name = None |
| 166 | | nodomaddr_re = re.compile(r'[\w\d_\.\-]+') |
| | 166 | nodomaddr_re = re.compile(r'^[\w\d_\.\-]+$') |
| 167 | 167 | addrsep_re = re.compile(r'[;\s,]+') |
| 168 | 168 | |
| 169 | 169 | def __init__(self, env): |
| … |
… |
|
| 272 | 272 | return False |
| 273 | 273 | return True |
| 274 | 274 | |
| | 275 | def strip_domain(address): |
| | 276 | pos = address.find('@') |
| | 277 | if pos == -1: |
| | 278 | return address |
| | 279 | return address[:pos] |
| | 280 | |
| 275 | 281 | if not is_email(address): |
| 276 | 282 | if address == 'anonymous': |
| 277 | 283 | return None |
| 278 | 284 | if self.email_map.has_key(address): |
| 279 | 285 | address = self.email_map[address] |
| 280 | | elif NotifyEmail.nodomaddr_re.match(address): |
| 281 | | if self.config.getbool('notification', 'use_short_addr'): |
| 282 | | return address |
| 283 | | domain = self.config.get('notification', 'smtp_default_domain') |
| 284 | | if domain: |
| 285 | | address = "%s@%s" % (address, domain) |
| 286 | | else: |
| 287 | | self.env.log.info("Email address w/o domain: %s" % address) |
| 288 | | return None |
| | 286 | else: |
| | 287 | # ignored domain may still exists |
| | 288 | address = strip_domain(address) |
| | 289 | if NotifyEmail.nodomaddr_re.match(address): |
| | 290 | if self.config.getbool('notification', 'use_short_addr'): |
| | 291 | return address |
| | 292 | domain = self.config.get('notification', 'smtp_default_domain') |
| | 293 | if domain: |
| | 294 | address = "%s@%s" % (address, domain) |
| | 295 | else: |
| | 296 | self.env.log.info("Email address w/o domain: %s" % address) |
| | 297 | return None |
| 289 | 298 | |
| 290 | 299 | mo = self.shortaddr_re.search(address) |
| 291 | 300 | if mo: |