summaryrefslogtreecommitdiff
path: root/www/trac-wikinotification/files/patch-WikiNotification__notification.py
blob: 9cabd848470e31a709321400edf7d7158ce9b251 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
--- ./WikiNotification/notification.py.orig
+++ ./WikiNotification/notification.py
@@ -14,14 +14,13 @@
 # =============================================================================
 
 import re
-import md5
 
 from trac import __version__
 from trac.core import *
 from trac.util.text import CRLF
 from trac.wiki.model import WikiPage
 from trac.versioncontrol.diff import unified_diff
-from trac.notification import NotifyEmail
+from trac.notification import NotifyEmail, NotificationSystem
 from trac.config import Option, BoolOption, ListOption, IntOption
 
 from genshi.template.text import TextTemplate
@@ -33,6 +32,7 @@
 +++ %(name)s (version: %(version)s)
 """
 
+
 class WikiNotificationSystem(Component):
     smtp_from = Option(
         'wiki-notification', 'smtp_from', 'trac+wiki@localhost',
@@ -131,7 +131,7 @@
         if page.version > 0 and action == 'modified':
             diff = diff_header % {'name': self.page.name,
                                   'version': self.page.version,
-                                  'oldversion': self.page.version -1
+                                  'oldversion': self.page.version -1,
                                  }
             oldpage = WikiPage(self.env, page.name, page.version - 1)
             self.data["oldversion"]= oldpage.version
@@ -183,8 +183,8 @@
         public_cc = self.config.getbool('wiki-notification', 'use_public_cc')
         headers = {}
         headers['X-Mailer'] = 'Trac %s, by Edgewall Software' % __version__
-        headers['X-Trac-Version'] =  __version__
-        headers['X-Trac-Project'] =  projname
+        headers['X-Trac-Version'] = __version__
+        headers['X-Trac-Project'] = projname
         headers['X-URL'] = self.config.get('project', 'url')
         headers['Precedence'] = 'bulk'
         headers['Auto-Submitted'] = 'auto-generated'
@@ -284,18 +284,16 @@
             del msg['Content-Transfer-Encoding']
             msg.set_charset(self._charset)
 
-        self.add_headers(msg, headers);
-        self.add_headers(msg, mime_headers);
-        self.env.log.info("Sending SMTP notification to %s:%d to %s"
-                           % (self.smtp_server, self.smtp_port, recipients))
+        self.add_headers(msg, headers)
+        self.add_headers(msg, mime_headers)
+        self.env.log.info("Sending SMTP notification to %s"
+                           % str(recipients))
         msgtext = msg.as_string()
         # Ensure the message complies with RFC2822: use CRLF line endings
         recrlf = re.compile("\r?\n")
         msgtext = CRLF.join(recrlf.split(msgtext))
-        try:
-            self.server.sendmail(msg['From'], recipients, msgtext)
-        except Exception, err:
-            self.env.log.debug('Notification could not be sent: %r', err)
+        NotificationSystem(self.env).send_email(self.from_email, recipients,
+                                                msgtext)
 
     def format_subject(self, action):
         template = self.config.get('wiki-notification', 'subject_template')
@@ -308,6 +306,6 @@
         data = {
             'page': self.page,
             'prefix': prefix,
-            'action': action
+            'action': action,
         }
         return template.generate(**data).render('text', encoding=None).strip()