Changeset 745 for trunk/trac-hacks/announcerplugin/announcerplugin/distributors/email_distributor.py
- Timestamp:
- 12/02/08 15:22:15 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/trac-hacks/announcerplugin/announcerplugin/distributors/email_distributor.py
r631 r745 3 3 from trac.config import Option, BoolOption, IntOption, OrderedExtensionsOption 4 4 from trac.util import get_pkginfo 5 from trac.util.translation import _ 6 5 7 from announcerplugin.api import IAnnouncementDistributor 6 8 from announcerplugin.api import IAnnouncementFormatter … … 13 15 from email.MIMEText import MIMEText 14 16 from email.Utils import formatdate 15 from email.header import Header 17 try: 18 from email.header import Header 19 except: 20 from email.Header import Header 16 21 import time, Queue, threading, smtplib 17 22 … … 119 124 120 125 default_email_format = Option('announcer', 'default_email_format', 'text/plain') 121 126 122 127 def __init__(self): 123 if self.smtp_enabled and self.use_threaded_delivery: 124 self._deliveryQueue = Queue.Queue() 125 thread = DeliveryThread(self._deliveryQueue, self._transmit) 128 self.delivery_queue = None 129 130 def get_delivery_queue(self): 131 if not self.delivery_queue: 132 self.delivery_queue = Queue.Queue() 133 thread = DeliveryThread(self.delivery_queue, self._transmit) 126 134 thread.start() 135 136 return self.delivery_queue 127 137 128 138 # IAnnouncementDistributor … … 133 143 if not self.smtp_enabled: 134 144 return 135 136 145 public_cc = self.config.getbool('announcer', 'use_public_cc') 137 146 to = self.config.get('announcer', 'smtp_to') … … 228 237 subject = formatter.format_subject(transport, event.realm, format, event) 229 238 230 charset = self.env.config.get('trac', 'default_charset' ) or 'utf-8'239 charset = self.env.config.get('trac', 'default_charset', 'utf-8') 231 240 alternate_format = formatter.get_format_alternative(transport, event.realm, format) 232 241 if alternate_format: … … 277 286 package = (self.smtp_from, [x[2] for x in recipients if x], rootMessage.as_string() ) 278 287 if self.use_threaded_delivery: 279 self. _deliveryQueue.put(package)288 self.get_delivery_queue().put(package) 280 289 else: 281 290 self._transmit(*package) … … 285 294 286 295 def _transmit(self, smtpfrom, addresses, message): 287 smtp = smtplib.SMTP() 288 smtp.connect(self.smtp_server) 296 smtp = smtplib.SMTP(self.smtp_server, self.smtp_port) 289 297 if self.use_tls: 290 298 smtp.ehlo() 299 if not smtp.esmtp_features.has_key('starttls'): 300 raise TracError(_("TLS enabled but server does not support " \ 301 "TLS")) 291 302 smtp.starttls() 292 303 smtp.ehlo()
Note: See TracChangeset
for help on using the changeset viewer.
