Mercurial > p > roundup > code
annotate roundup/mailgw.py @ 718:e10c37f53efd
fixed SCRIPT_NAME in ZRoundup for instances not at top level of Zope
(thanks dman)
fixed some sorting issues that were breaking some unit tests under py2.2
mailgw test output dir was confusing the init test (but only on 2.2 *shrug*)
fixed bug in the init unit test that meant only the bsddb test ran if it
could (it clobbered the anydbm test)
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Wed, 15 May 2002 03:27:16 +0000 |
| parents | 69ba1e425924 |
| children | a55c0622dced |
| rev | line source |
|---|---|
|
213
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
1 # |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
2 # Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
3 # This module is free software, and you may redistribute it and/or modify |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
4 # under the same terms as Python, so long as this copyright message and |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
5 # disclaimer are retained in their original form. |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
6 # |
| 214 | 7 # IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR |
|
213
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
8 # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
9 # OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
10 # POSSIBILITY OF SUCH DAMAGE. |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
11 # |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
12 # BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
|
406
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
391
diff
changeset
|
17 # |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
391
diff
changeset
|
18 |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
391
diff
changeset
|
19 __doc__ = ''' |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
20 An e-mail gateway for Roundup. |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
21 |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
22 Incoming messages are examined for multiple parts: |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
23 . In a multipart/mixed message or part, each subpart is extracted and |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
24 examined. The text/plain subparts are assembled to form the textual |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
25 body of the message, to be stored in the file associated with a "msg" |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
26 class node. Any parts of other types are each stored in separate files |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
27 and given "file" class nodes that are linked to the "msg" node. |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
28 . In a multipart/alternative message or part, we look for a text/plain |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
29 subpart and ignore the other parts. |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
30 |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
31 Summary |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
32 ------- |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
33 The "summary" property on message nodes is taken from the first non-quoting |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
34 section in the message body. The message body is divided into sections by |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
35 blank lines. Sections where the second and all subsequent lines begin with |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
36 a ">" or "|" character are considered "quoting sections". The first line of |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
37 the first non-quoting section becomes the summary of the message. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
38 |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
39 Addresses |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
40 --------- |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
41 All of the addresses in the To: and Cc: headers of the incoming message are |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
42 looked up among the user nodes, and the corresponding users are placed in |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
43 the "recipients" property on the new "msg" node. The address in the From: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
44 header similarly determines the "author" property of the new "msg" |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
45 node. The default handling for addresses that don't have corresponding |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
46 users is to create new users with no passwords and a username equal to the |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
47 address. (The web interface does not permit logins for users with no |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
48 passwords.) If we prefer to reject mail from outside sources, we can simply |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
49 register an auditor on the "user" class that prevents the creation of user |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
50 nodes with no passwords. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
51 |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
52 Actions |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
53 ------- |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
54 The subject line of the incoming message is examined to determine whether |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
55 the message is an attempt to create a new item or to discuss an existing |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
56 item. A designator enclosed in square brackets is sought as the first thing |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
57 on the subject line (after skipping any "Fwd:" or "Re:" prefixes). |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
58 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
59 If an item designator (class name and id number) is found there, the newly |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
60 created "msg" node is added to the "messages" property for that item, and |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
61 any new "file" nodes are added to the "files" property for the item. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
62 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
63 If just an item class name is found there, we attempt to create a new item |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
64 of that class with its "messages" property initialized to contain the new |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
65 "msg" node and its "files" property initialized to contain any new "file" |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
66 nodes. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
67 |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
68 Triggers |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
69 -------- |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
70 Both cases may trigger detectors (in the first case we are calling the |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
71 set() method to add the message to the item's spool; in the second case we |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
72 are calling the create() method to create a new node). If an auditor raises |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
73 an exception, the original message is bounced back to the sender with the |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
74 explanatory message given in the exception. |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
75 |
| 710 | 76 $Id: mailgw.py,v 1.71 2002-05-08 02:40:55 richard Exp $ |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
77 ''' |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
78 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
79 |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
80 import string, re, os, mimetools, cStringIO, smtplib, socket, binascii, quopri |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
81 import time, random |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
82 import traceback, MimeWriter |
|
270
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
83 import hyperdb, date, password |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
84 |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
85 SENDMAILDEBUG = os.environ.get('SENDMAILDEBUG', '') |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
86 |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
87 class MailGWError(ValueError): |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
88 pass |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
89 |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
90 class MailUsageError(ValueError): |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
91 pass |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
92 |
|
544
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
93 class MailUsageHelp(Exception): |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
94 pass |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
95 |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
96 class UnAuthorized(Exception): |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
97 """ Access denied """ |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
98 |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
99 class Message(mimetools.Message): |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
100 ''' subclass mimetools.Message so we can retrieve the parts of the |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
101 message... |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
102 ''' |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
103 def getPart(self): |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
104 ''' Get a single part of a multipart message and return it as a new |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
105 Message instance. |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
106 ''' |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
107 boundary = self.getparam('boundary') |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
108 mid, end = '--'+boundary, '--'+boundary+'--' |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
109 s = cStringIO.StringIO() |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
110 while 1: |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
111 line = self.fp.readline() |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
112 if not line: |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
113 break |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
114 if line.strip() in (mid, end): |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
115 break |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
116 s.write(line) |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
117 if not s.getvalue().strip(): |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
118 return None |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
119 s.seek(0) |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
120 return Message(s) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
121 |
|
573
f0513f650042
handle stripping of "AW:" from subject line
Richard Jones <richard@users.sourceforge.net>
parents:
571
diff
changeset
|
122 subject_re = re.compile(r'(?P<refwd>\s*\W?\s*(fwd|re|aw)\s*\W?\s*)*' |
|
616
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
123 r'\s*(\[(?P<classname>[^\d\s]+)(?P<nodeid>\d+)?\])?' |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
124 r'\s*(?P<title>[^[]+)?(\[(?P<args>.+?)\])?', re.I) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
125 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
126 class MailGW: |
|
389
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
127 def __init__(self, instance, db): |
|
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
128 self.instance = instance |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
129 self.db = db |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
130 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
131 def main(self, fp): |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
132 ''' fp - the file from which to read the Message. |
|
343
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
133 ''' |
|
699
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
134 return self.handle_Message(Message(fp)) |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
135 |
|
343
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
136 def handle_Message(self, message): |
|
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
137 '''Handle an RFC822 Message |
|
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
138 |
|
391
399340646765
handle the case where there is no file attached
Richard Jones <richard@users.sourceforge.net>
parents:
389
diff
changeset
|
139 Handle the Message object by calling handle_message() and then cope |
|
343
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
140 with any errors raised by handle_message. |
|
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
141 This method's job is to make that call and handle any |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
142 errors in a sane manner. It should be replaced if you wish to |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
143 handle errors in a different manner. |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
144 ''' |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
145 # in some rare cases, a particularly stuffed-up e-mail will make |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
146 # its way into here... try to handle it gracefully |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
147 sendto = message.getaddrlist('from') |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
148 if sendto: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
149 try: |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
150 return self.handle_message(message) |
|
544
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
151 except MailUsageHelp: |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
152 # bounce the message back to the sender with the usage message |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
153 fulldoc = '\n'.join(string.split(__doc__, '\n')[2:]) |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
154 sendto = [sendto[0][1]] |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
155 m = [''] |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
156 m.append('\n\nMail Gateway Help\n=================') |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
157 m.append(fulldoc) |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
158 m = self.bounce_message(message, sendto, m, |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
159 subject="Mail Gateway Help") |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
160 except MailUsageError, value: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
161 # bounce the message back to the sender with the usage message |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
162 fulldoc = '\n'.join(string.split(__doc__, '\n')[2:]) |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
163 sendto = [sendto[0][1]] |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
164 m = [''] |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
165 m.append(str(value)) |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
166 m.append('\n\nMail Gateway Help\n=================') |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
167 m.append(fulldoc) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
168 m = self.bounce_message(message, sendto, m) |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
169 except UnAuthorized, value: |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
170 # just inform the user that he is not authorized |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
171 sendto = [sendto[0][1]] |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
172 m = [''] |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
173 m.append(str(value)) |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
174 m = self.bounce_message(message, sendto, m) |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
175 except: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
176 # bounce the message back to the sender with the error message |
|
588
16d13b9b8321
mailgw failures (unexpected ones) are forwarded to the roundup admin
Richard Jones <richard@users.sourceforge.net>
parents:
573
diff
changeset
|
177 sendto = [sendto[0][1], self.instance.ADMIN_EMAIL] |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
178 m = [''] |
| 590 | 179 m.append('An unexpected error occurred during the processing') |
| 180 m.append('of your message. The tracker administrator is being') | |
| 181 m.append('notified.\n') | |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
182 m.append('---- traceback of failure ----') |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
183 s = cStringIO.StringIO() |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
184 import traceback |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
185 traceback.print_exc(None, s) |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
186 m.append(s.getvalue()) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
187 m = self.bounce_message(message, sendto, m) |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
188 else: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
189 # very bad-looking message - we don't even know who sent it |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
190 sendto = [self.instance.ADMIN_EMAIL] |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
191 m = ['Subject: badly formed message from mail gateway'] |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
192 m.append('') |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
193 m.append('The mail gateway retrieved a message which has no From:') |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
194 m.append('line, indicating that it is corrupt. Please check your') |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
195 m.append('mail gateway source. Failed message is attached.') |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
196 m.append('') |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
197 m = self.bounce_message(message, sendto, m, |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
198 subject='Badly formed message from mail gateway') |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
199 |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
200 # now send the message |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
201 if SENDMAILDEBUG: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
202 open(SENDMAILDEBUG, 'w').write('From: %s\nTo: %s\n%s\n'%( |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
203 self.instance.ADMIN_EMAIL, ', '.join(sendto), m.getvalue())) |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
204 else: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
205 try: |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
206 smtp = smtplib.SMTP(self.instance.MAILHOST) |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
207 smtp.sendmail(self.instance.ADMIN_EMAIL, sendto, m.getvalue()) |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
208 except socket.error, value: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
209 raise MailGWError, "Couldn't send error email: "\ |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
210 "mailhost %s"%value |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
211 except smtplib.SMTPException, value: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
212 raise MailGWError, "Couldn't send error email: %s"%value |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
213 |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
214 def bounce_message(self, message, sendto, error, |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
215 subject='Failed issue tracker submission'): |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
216 ''' create a message that explains the reason for the failed |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
217 issue submission to the author and attach the original |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
218 message. |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
219 ''' |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
220 msg = cStringIO.StringIO() |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
221 writer = MimeWriter.MimeWriter(msg) |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
222 writer.addheader('Subject', subject) |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
223 writer.addheader('From', '%s <%s>'% (self.instance.INSTANCE_NAME, |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
224 self.instance.ISSUE_TRACKER_EMAIL)) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
225 writer.addheader('To', ','.join(sendto)) |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
226 writer.addheader('MIME-Version', '1.0') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
227 part = writer.startmultipartbody('mixed') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
228 part = writer.nextpart() |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
229 body = part.startbody('text/plain') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
230 body.write('\n'.join(error)) |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
231 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
232 # reconstruct the original message |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
233 m = cStringIO.StringIO() |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
234 w = MimeWriter.MimeWriter(m) |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
235 # default the content_type, just in case... |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
236 content_type = 'text/plain' |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
237 # add the headers except the content-type |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
238 for header in message.headers: |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
239 header_name = header.split(':')[0] |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
240 if header_name.lower() == 'content-type': |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
241 content_type = message.getheader(header_name) |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
242 elif message.getheader(header_name): |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
243 w.addheader(header_name, message.getheader(header_name)) |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
244 # now attach the message body |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
245 body = w.startbody(content_type) |
|
521
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
246 try: |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
247 message.rewindbody() |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
248 except IOError: |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
249 body.write("*** couldn't include message body: read from pipe ***") |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
250 else: |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
251 body.write(message.fp.read()) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
252 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
253 # attach the original message to the returned message |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
254 part = writer.nextpart() |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
255 part.addheader('Content-Disposition','attachment') |
|
544
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
256 part.addheader('Content-Description','Message you sent') |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
257 part.addheader('Content-Transfer-Encoding', '7bit') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
258 body = part.startbody('message/rfc822') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
259 body.write(m.getvalue()) |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
260 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
261 writer.lastpart() |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
262 return msg |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
263 |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
264 def get_part_data_decoded(self,part): |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
265 encoding = part.getencoding() |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
266 data = None |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
267 if encoding == 'base64': |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
268 # BUG: is base64 really used for text encoding or |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
269 # are we inserting zip files here. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
270 data = binascii.a2b_base64(part.fp.read()) |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
271 elif encoding == 'quoted-printable': |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
272 # the quopri module wants to work with files |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
273 decoded = cStringIO.StringIO() |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
274 quopri.decode(part.fp, decoded) |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
275 data = decoded.getvalue() |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
276 elif encoding == 'uuencoded': |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
277 data = binascii.a2b_uu(part.fp.read()) |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
278 else: |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
279 # take it as text |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
280 data = part.fp.read() |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
281 return data |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
282 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
283 def handle_message(self, message): |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
284 ''' message - a Message instance |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
285 |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
286 Parse the message as per the module docstring. |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
287 ''' |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
288 # handle the subject line |
|
226
8af4945246cb
Make the mail parser a little more robust.
Richard Jones <richard@users.sourceforge.net>
parents:
224
diff
changeset
|
289 subject = message.getheader('subject', '') |
|
544
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
290 |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
291 if subject.strip() == 'help': |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
292 raise MailUsageHelp |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
293 |
| 218 | 294 m = subject_re.match(subject) |
|
616
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
295 |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
296 # check for well-formed subject line |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
297 if m: |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
298 # get the classname |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
299 classname = m.group('classname') |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
300 if classname is None: |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
301 # no classname, fallback on the default |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
302 if hasattr(self.instance, 'MAIL_DEFAULT_CLASS') and \ |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
303 self.instance.MAIL_DEFAULT_CLASS: |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
304 classname = self.instance.MAIL_DEFAULT_CLASS |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
305 else: |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
306 # fail |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
307 m = None |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
308 |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
309 if not m: |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
310 raise MailUsageError, ''' |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
311 The message you sent to roundup did not contain a properly formed subject |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
312 line. The subject must contain a class name or designator to indicate the |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
313 "topic" of the message. For example: |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
314 Subject: [issue] This is a new issue |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
315 - this will create a new issue in the tracker with the title "This is |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
316 a new issue". |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
317 Subject: [issue1234] This is a followup to issue 1234 |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
318 - this will append the message's contents to the existing issue 1234 |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
319 in the tracker. |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
320 |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
321 Subject was: "%s" |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
322 '''%subject |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
323 |
|
616
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
324 # get the class |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
325 try: |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
326 cl = self.db.getclass(classname) |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
327 except KeyError: |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
328 raise MailUsageError, ''' |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
329 The class name you identified in the subject line ("%s") does not exist in the |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
330 database. |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
331 |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
332 Valid class names are: %s |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
333 Subject was: "%s" |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
334 '''%(classname, ', '.join(self.db.getclasses()), subject) |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
335 |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
336 # get the optional nodeid |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
337 nodeid = m.group('nodeid') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
338 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
339 # title is optional too |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
340 title = m.group('title') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
341 if title: |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
342 title = title.strip() |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
343 else: |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
344 title = '' |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
345 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
346 # but we do need either a title or a nodeid... |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
347 if not nodeid and not title: |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
348 raise MailUsageError, ''' |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
349 I cannot match your message to a node in the database - you need to either |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
350 supply a full node identifier (with number, eg "[issue123]" or keep the |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
351 previous subject title intact so I can match that. |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
352 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
353 Subject was: "%s" |
|
438
9d97c1a4ddad
Notes from changes.
Richard Jones <richard@users.sourceforge.net>
parents:
434
diff
changeset
|
354 '''%subject |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
355 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
356 # extract the args |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
357 subject_args = m.group('args') |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
358 |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
359 # If there's no nodeid, check to see if this is a followup and |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
360 # maybe someone's responded to the initial mail that created an |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
361 # entry. Try to find the matching nodes with the same title, and |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
362 # use the _last_ one matched (since that'll _usually_ be the most |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
363 # recent...) |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
364 if not nodeid and m.group('refwd'): |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
365 l = cl.stringFind(title=title) |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
366 if l: |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
367 nodeid = l[-1] |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
368 |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
369 # start of the props |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
370 properties = cl.getprops() |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
371 props = {} |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
372 |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
373 # handle the args |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
374 args = m.group('args') |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
375 if args: |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
376 for prop in string.split(args, ';'): |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
377 # extract the property name and value |
|
287
ee2f4cb160bd
Implemented the comma-separated printing option in the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
286
diff
changeset
|
378 try: |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
379 key, value = prop.split('=') |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
380 except ValueError, message: |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
381 raise MailUsageError, ''' |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
382 Subject argument list not of form [arg=value,value,...;arg=value,value...] |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
383 (specific exception message was "%s") |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
384 |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
385 Subject was: "%s" |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
386 '''%(message, subject) |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
387 |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
388 # ensure it's a valid property name |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
389 key = key.strip() |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
390 try: |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
391 proptype = properties[key] |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
392 except KeyError: |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
393 raise MailUsageError, ''' |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
394 Subject argument list refers to an invalid property: "%s" |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
395 |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
396 Subject was: "%s" |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
397 '''%(key, subject) |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
398 |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
399 # convert the string value to a real property value |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
400 if isinstance(proptype, hyperdb.String): |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
401 props[key] = value.strip() |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
402 if isinstance(proptype, hyperdb.Password): |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
403 props[key] = password.Password(value.strip()) |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
404 elif isinstance(proptype, hyperdb.Date): |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
405 try: |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
406 props[key] = date.Date(value.strip()) |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
407 except ValueError, message: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
408 raise UsageError, ''' |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
409 Subject argument list contains an invalid date for %s. |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
410 |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
411 Error was: %s |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
412 Subject was: "%s" |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
413 '''%(key, message, subject) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
414 elif isinstance(proptype, hyperdb.Interval): |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
415 try: |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
416 props[key] = date.Interval(value) # no strip needed |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
417 except ValueError, message: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
418 raise UsageError, ''' |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
419 Subject argument list contains an invalid date interval for %s. |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
420 |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
421 Error was: %s |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
422 Subject was: "%s" |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
423 '''%(key, message, subject) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
424 elif isinstance(proptype, hyperdb.Link): |
|
560
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
425 linkcl = self.db.classes[proptype.classname] |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
426 propkey = linkcl.labelprop(default_to_id=1) |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
427 try: |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
428 props[key] = linkcl.lookup(value) |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
429 except KeyError, message: |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
430 raise MailUsageError, ''' |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
431 Subject argument list contains an invalid value for %s. |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
432 |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
433 Error was: %s |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
434 Subject was: "%s" |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
435 '''%(key, message, subject) |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
436 elif isinstance(proptype, hyperdb.Multilink): |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
437 # get the linked class |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
438 linkcl = self.db.classes[proptype.classname] |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
439 propkey = linkcl.labelprop(default_to_id=1) |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
440 for item in value.split(','): |
|
560
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
441 item = item.strip() |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
442 try: |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
443 item = linkcl.lookup(item) |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
444 except KeyError, message: |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
445 raise MailUsageError, ''' |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
446 Subject argument list contains an invalid value for %s. |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
447 |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
448 Error was: %s |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
449 Subject was: "%s" |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
450 '''%(key, message, subject) |
|
434
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
451 if props.has_key(key): |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
452 props[key].append(item) |
|
434
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
453 else: |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
454 props[key] = [item] |
|
434
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
455 |
|
264
a671e5917b33
Many features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
244
diff
changeset
|
456 # |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
457 # handle the users |
|
264
a671e5917b33
Many features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
244
diff
changeset
|
458 # |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
459 |
|
615
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
460 # Don't create users if ANONYMOUS_REGISTER_MAIL is denied |
|
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
461 # ... fall back on ANONYMOUS_REGISTER if the other doesn't exist |
|
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
462 create = 1 |
|
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
463 if hasattr(self.instance, 'ANONYMOUS_REGISTER_MAIL'): |
|
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
464 if self.instance.ANONYMOUS_REGISTER_MAIL == 'deny': |
|
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
465 create = 0 |
|
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
466 elif self.instance.ANONYMOUS_REGISTER == 'deny': |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
467 create = 0 |
|
615
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
468 |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
469 author = self.db.uidFromAddress(message.getaddrlist('from')[0], |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
470 create=create) |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
471 if not author: |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
472 raise UnAuthorized, ''' |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
473 You are not a registered user. |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
474 |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
475 Unknown address: %s |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
476 '''%message.getaddrlist('from')[0][1] |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
477 |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
478 # the author may have been created - make sure the change is |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
479 # committed before we reopen the database |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
480 self.db.commit() |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
481 |
|
389
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
482 # reopen the database as the author |
|
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
483 username = self.db.user.get(author, 'username') |
|
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
484 self.db = self.instance.open(username) |
|
419
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
485 |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
486 # re-get the class with the new database connection |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
487 cl = self.db.getclass(classname) |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
488 |
|
389
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
489 # now update the recipients list |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
490 recipients = [] |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
491 tracker_email = self.instance.ISSUE_TRACKER_EMAIL.lower() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
492 for recipient in message.getaddrlist('to') + message.getaddrlist('cc'): |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
493 r = recipient[1].strip().lower() |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
494 if r == tracker_email or not r: |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
495 continue |
|
699
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
496 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
497 # look up the recipient - create if necessary (and we're |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
498 # allowed to) |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
499 recipient = self.db.uidFromAddress(recipient, create) |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
500 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
501 # if all's well, add the recipient to the list |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
502 if recipient: |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
503 recipients.append(recipient) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
504 |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
505 # |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
506 # handle message-id and in-reply-to |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
507 # |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
508 messageid = message.getheader('message-id') |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
509 inreplyto = message.getheader('in-reply-to') or '' |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
510 # generate a messageid if there isn't one |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
511 if not messageid: |
|
499
9ad589d0a60f
Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents:
476
diff
changeset
|
512 messageid = "<%s.%s.%s%s@%s>"%(time.time(), random.random(), |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
513 classname, nodeid, self.instance.MAIL_DOMAIN) |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
514 |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
515 # |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
516 # now handle the body - find the message |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
517 # |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
518 content_type = message.gettype() |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
519 attachments = [] |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
520 # General multipart handling: |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
521 # Take the first text/plain part, anything else is considered an |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
522 # attachment. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
523 # multipart/mixed: multiple "unrelated" parts. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
524 # multipart/signed (rfc 1847): |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
525 # The control information is carried in the second of the two |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
526 # required body parts. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
527 # ACTION: Default, so if content is text/plain we get it. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
528 # multipart/encrypted (rfc 1847): |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
529 # The control information is carried in the first of the two |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
530 # required body parts. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
531 # ACTION: Not handleable as the content is encrypted. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
532 # multipart/related (rfc 1872, 2112, 2387): |
|
661
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
533 # The Multipart/Related content-type addresses the MIME |
|
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
534 # representation of compound objects. |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
535 # ACTION: Default. If we are lucky there is a text/plain. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
536 # TODO: One should use the start part and look for an Alternative |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
537 # that is text/plain. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
538 # multipart/Alternative (rfc 1872, 1892): |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
539 # only in "related" ? |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
540 # multipart/report (rfc 1892): |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
541 # e.g. mail system delivery status reports. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
542 # ACTION: Default. Could be ignored or used for Delivery Notification |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
543 # flagging. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
544 # multipart/form-data: |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
545 # For web forms only. |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
546 if content_type == 'multipart/mixed': |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
547 # skip over the intro to the first boundary |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
548 part = message.getPart() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
549 content = None |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
550 while 1: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
551 # get the next part |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
552 part = message.getPart() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
553 if part is None: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
554 break |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
555 # parse it |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
556 subtype = part.gettype() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
557 if subtype == 'text/plain' and not content: |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
558 # The first text/plain part is the message content. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
559 content = self.get_part_data_decoded(part) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
560 elif subtype == 'message/rfc822': |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
561 # handle message/rfc822 specially - the name should be |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
562 # the subject of the actual e-mail embedded here |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
563 i = part.fp.tell() |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
564 mailmess = Message(part.fp) |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
565 name = mailmess.getheader('subject') |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
566 part.fp.seek(i) |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
567 attachments.append((name, 'message/rfc822', part.fp.read())) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
568 else: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
569 # try name on Content-Type |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
570 name = part.getparam('name') |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
571 # this is just an attachment |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
572 data = self.get_part_data_decoded(part) |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
573 attachments.append((name, part.gettype(), data)) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
574 if content is None: |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
575 raise MailUsageError, ''' |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
576 Roundup requires the submission to be plain text. The message parser could |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
577 not find a text/plain part to use. |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
578 ''' |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
579 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
580 elif content_type[:10] == 'multipart/': |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
581 # skip over the intro to the first boundary |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
582 message.getPart() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
583 content = None |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
584 while 1: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
585 # get the next part |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
586 part = message.getPart() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
587 if part is None: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
588 break |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
589 # parse it |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
590 if part.gettype() == 'text/plain' and not content: |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
591 content = self.get_part_data_decoded(part) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
592 if content is None: |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
593 raise MailUsageError, ''' |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
594 Roundup requires the submission to be plain text. The message parser could |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
595 not find a text/plain part to use. |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
596 ''' |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
597 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
598 elif content_type != 'text/plain': |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
599 raise MailUsageError, ''' |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
600 Roundup requires the submission to be plain text. The message parser could |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
601 not find a text/plain part to use. |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
602 ''' |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
603 |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
604 else: |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
605 content = self.get_part_data_decoded(message) |
|
599
08aae4d34622
respect encodings in non multipart messages.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
595
diff
changeset
|
606 |
|
694
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
607 keep_citations = self.instance.EMAIL_KEEP_QUOTED_TEXT == 'yes' |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
608 keep_body = self.instance.EMAIL_LEAVE_BODY_UNCHANGED == 'yes' |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
609 summary, content = parseContent(content, keep_citations, |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
610 keep_body) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
611 |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
612 # |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
613 # handle the attachments |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
614 # |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
615 files = [] |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
616 for (name, mime_type, data) in attachments: |
|
545
d276d72ebdaf
if the attachment has no name, name it unnamed, happens with tnefs.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
544
diff
changeset
|
617 if not name: |
|
d276d72ebdaf
if the attachment has no name, name it unnamed, happens with tnefs.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
544
diff
changeset
|
618 name = "unnamed" |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
619 files.append(self.db.file.create(type=mime_type, name=name, |
|
172
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
620 content=data)) |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
621 |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
622 # |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
623 # now handle the db stuff |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
624 # |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
625 if nodeid: |
|
172
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
626 # If an item designator (class name and id number) is found there, |
|
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
627 # the newly created "msg" node is added to the "messages" property |
|
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
628 # for that item, and any new "file" nodes are added to the "files" |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
629 # property for the item. |
|
311
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
630 |
| 337 | 631 # if the message is currently 'unread' or 'resolved', then set |
| 632 # it to 'chatting' | |
|
311
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
633 if properties.has_key('status'): |
|
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
634 try: |
| 337 | 635 # determine the id of 'unread', 'resolved' and 'chatting' |
|
311
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
636 unread_id = self.db.status.lookup('unread') |
| 337 | 637 resolved_id = self.db.status.lookup('resolved') |
|
311
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
638 chatting_id = self.db.status.lookup('chatting') |
|
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
639 except KeyError: |
|
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
640 pass |
|
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
641 else: |
|
571
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
642 current_status = cl.get(nodeid, 'status') |
|
464
29f5ac8a0d2b
Fixed bugs:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
454
diff
changeset
|
643 if (not props.has_key('status') and |
|
571
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
644 current_status == unread_id or |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
645 current_status == resolved_id): |
|
311
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
646 props['status'] = chatting_id |
|
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
647 |
|
699
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
648 # update the nosy list |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
649 current = {} |
|
434
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
650 for nid in cl.get(nodeid, 'nosy'): |
|
699
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
651 current[nid] = 1 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
652 self.updateNosy(props, author, recipients, current) |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
653 |
|
699
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
654 # create the message |
|
434
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
655 message_id = self.db.msg.create(author=author, |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
656 recipients=recipients, date=date.Date('.'), summary=summary, |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
657 content=content, files=files, messageid=messageid, |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
658 inreplyto=inreplyto) |
|
434
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
659 try: |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
660 messages = cl.get(nodeid, 'messages') |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
661 except IndexError: |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
662 raise MailUsageError, ''' |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
663 The node specified by the designator in the subject of your message ("%s") |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
664 does not exist. |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
665 |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
666 Subject was: "%s" |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
667 '''%(nodeid, subject) |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
668 messages.append(message_id) |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
669 props['messages'] = messages |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
670 |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
671 # now apply the changes |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
672 try: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
673 cl.set(nodeid, **props) |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
674 except (TypeError, IndexError, ValueError), message: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
675 raise MailUsageError, ''' |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
676 There was a problem with the message you sent: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
677 %s |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
678 '''%message |
|
430
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
679 # commit the changes to the DB |
|
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
680 self.db.commit() |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
681 else: |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
682 # If just an item class name is found there, we attempt to create a |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
683 # new item of that class with its "messages" property initialized to |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
684 # contain the new "msg" node and its "files" property initialized to |
|
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
685 # contain any new "file" nodes. |
|
172
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
686 message_id = self.db.msg.create(author=author, |
|
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
687 recipients=recipients, date=date.Date('.'), summary=summary, |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
688 content=content, files=files, messageid=messageid, |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
689 inreplyto=inreplyto) |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
690 |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
691 # pre-set the issue to unread |
|
172
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
692 if properties.has_key('status') and not props.has_key('status'): |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
693 try: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
694 # determine the id of 'unread' |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
695 unread_id = self.db.status.lookup('unread') |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
696 except KeyError: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
697 pass |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
698 else: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
699 props['status'] = '1' |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
700 |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
701 # set the title to the subject |
|
172
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
702 if properties.has_key('title') and not props.has_key('title'): |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
703 props['title'] = title |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
704 |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
705 # pre-load the messages list |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
706 props['messages'] = [message_id] |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
707 |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
708 # set up (clean) the nosy list |
|
699
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
709 self.updateNosy(props, author, recipients) |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
710 |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
711 # and attempt to create the new node |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
712 try: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
713 nodeid = cl.create(**props) |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
714 except (TypeError, IndexError, ValueError), message: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
715 raise MailUsageError, ''' |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
716 There was a problem with the message you sent: |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
717 %s |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
718 '''%message |
|
25
4cf1daf2f2eb
More Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
719 |
|
430
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
720 # commit the new node(s) to the DB |
|
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
721 self.db.commit() |
|
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
722 |
|
699
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
723 return nodeid |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
724 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
725 def updateNosy(self, props, author, recipients, current=None): |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
726 '''Determine what the nosy list should be given: |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
727 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
728 props: properties specified on the subject line of the message |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
729 author: the sender of the message |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
730 recipients: the recipients (to, cc) of the message |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
731 current: if the issue already exists, this is the current nosy |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
732 list, as a dictionary. |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
733 ''' |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
734 if current is None: |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
735 current = {} |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
736 ok = ('new', 'yes') |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
737 else: |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
738 ok = ('yes',) |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
739 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
740 # add nosy in arguments to issue's nosy list |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
741 nosy = props.get('nosy', []) |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
742 for value in nosy: |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
743 if not self.db.hasnode('user', value): |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
744 continue |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
745 if not current.has_key(value): |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
746 current[value] = 1 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
747 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
748 # add the author to the nosy list |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
749 if getattr(self.instance, 'ADD_AUTHOR_TO_NOSY', 'new') in ok: |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
750 if not current.has_key(author): |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
751 current[author] = 1 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
752 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
753 # add on the recipients of the message |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
754 if getattr(self.instance, 'ADD_RECIPIENTS_TO_NOSY', 'new') in ok: |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
755 for recipient in recipients: |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
756 if not current.has_key(recipient): |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
757 current[recipient] = 1 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
758 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
759 # add assignedto to the nosy list |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
760 if props.has_key('assignedto'): |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
761 assignedto = props['assignedto'] |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
762 if not current.has_key(assignedto): |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
763 current[assignedto] = 1 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
764 |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
765 props['nosy'] = current.keys() |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
766 |
|
694
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
767 def parseContent(content, keep_citations, keep_body, |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
768 blank_line=re.compile(r'[\r\n]+\s*[\r\n]+'), |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
769 eol=re.compile(r'[\r\n]+'), |
|
706
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
770 signature=re.compile(r'^[>|\s]*[-_]+\s*$'), |
| 710 | 771 original_message=re.compile(r'^[>|\s]*-----Original Message-----$')): |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
772 ''' The message body is divided into sections by blank lines. |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
773 Sections where the second and all subsequent lines begin with a ">" or "|" |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
774 character are considered "quoting sections". The first line of the first |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
775 non-quoting section becomes the summary of the message. |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
776 ''' |
|
334
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
777 # strip off leading carriage-returns / newlines |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
778 i = 0 |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
779 for i in range(len(content)): |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
780 if content[i] not in '\r\n': |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
781 break |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
782 if i > 0: |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
783 sections = blank_line.split(content[i:]) |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
784 else: |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
785 sections = blank_line.split(content) |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
786 |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
787 # extract out the summary from the message |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
788 summary = '' |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
789 l = [] |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
790 for section in sections: |
|
334
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
791 #section = section.strip() |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
792 if not section: |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
793 continue |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
794 lines = eol.split(section) |
|
510
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
795 if (lines[0] and lines[0][0] in '>|') or (len(lines) > 1 and |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
796 lines[1] and lines[1][0] in '>|'): |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
797 # see if there's a response somewhere inside this section (ie. |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
798 # no blank line between quoted message and response) |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
799 for line in lines[1:]: |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
800 if line[0] not in '>|': |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
801 break |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
802 else: |
|
694
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
803 # we keep quoted bits if specified in the config |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
804 if keep_citations: |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
805 l.append(section) |
|
510
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
806 continue |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
807 # keep this section - it has reponse stuff in it |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
808 if not summary: |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
809 # and while we're at it, use the first non-quoted bit as |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
810 # our summary |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
811 summary = line |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
812 lines = lines[lines.index(line):] |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
813 section = '\n'.join(lines) |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
814 |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
815 if not summary: |
|
510
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
816 # if we don't have our summary yet use the first line of this |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
817 # section |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
818 summary = lines[0] |
|
706
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
819 elif signature.match(lines[0]) and 2 <= len(lines) <= 10: |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
820 # lose any signature |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
821 break |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
822 elif original_message.match(lines[0]): |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
823 # ditch the stupid Outlook quoting of the entire original message |
| 454 | 824 break |
|
510
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
825 |
| 709 | 826 |
|
510
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
827 # and add the section to the output |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
828 l.append(section) |
|
694
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
829 # we only set content for those who want to delete cruft from the |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
830 # message body, otherwise the body is left untouched. |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
831 if not keep_body: |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
832 content = '\n\n'.join(l) |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
833 return summary, content |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
834 |
|
26
c7c14960f413
Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
25
diff
changeset
|
835 # |
|
c7c14960f413
Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
25
diff
changeset
|
836 # $Log: not supported by cvs2svn $ |
| 710 | 837 # Revision 1.70 2002/05/06 23:40:07 richard |
| 838 # hrm | |
| 839 # | |
| 709 | 840 # Revision 1.69 2002/05/06 23:37:21 richard |
| 841 # Tweaking the signature deletion from mail messages. | |
| 842 # Added nuking of the "-----Original Message-----" crap from Outlook. | |
| 843 # | |
|
706
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
844 # Revision 1.68 2002/05/02 07:56:34 richard |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
845 # . added option to automatically add the authors and recipients of messages |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
846 # to the nosy lists with the options ADD_AUTHOR_TO_NOSY (default 'new') and |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
847 # ADD_RECIPIENTS_TO_NOSY (default 'new'). These settings emulate the current |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
848 # behaviour. Setting them to 'yes' will add the author/recipients to the nosy |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
849 # on messages that create issues and followup messages. |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
850 # . added missing documentation for a few of the config option values |
|
7ba403bffed5
Tweaking the signature deletion from mail messages.
Richard Jones <richard@users.sourceforge.net>
parents:
699
diff
changeset
|
851 # |
|
699
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
852 # Revision 1.67 2002/04/23 15:46:49 rochecompaan |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
853 # . stripping of the email message body can now be controlled through |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
854 # the config variables EMAIL_KEEP_QUOTED_TEST and |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
855 # EMAIL_LEAVE_BODY_UNCHANGED. |
|
676d4cfde9a5
Nosy list improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
694
diff
changeset
|
856 # |
|
694
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
857 # Revision 1.66 2002/03/14 23:59:24 richard |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
858 # . #517734 ] web header customisation is obscure |
|
34dbcdfb2fe1
stripping of email message body can be controlled through config variables...
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
661
diff
changeset
|
859 # |
|
661
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
860 # Revision 1.65 2002/02/15 00:13:38 richard |
|
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
861 # . #503204 ] mailgw needs a default class |
|
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
862 # - partially done - the setting of additional properties can wait for a |
|
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
863 # better configuration system. |
|
cdcee6721841
. [SF#517734] web header customisation is obscure
Richard Jones <richard@users.sourceforge.net>
parents:
616
diff
changeset
|
864 # |
|
616
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
865 # Revision 1.64 2002/02/14 23:46:02 richard |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
866 # . #516883 ] mail interface + ANONYMOUS_REGISTER |
|
08abec25b2c6
[SF#503204] mailgw needs a default class
Richard Jones <richard@users.sourceforge.net>
parents:
615
diff
changeset
|
867 # |
|
615
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
868 # Revision 1.63 2002/02/12 08:08:55 grubert |
|
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
869 # . Clean up mail handling, multipart handling. |
|
7c2c4840db6a
[SF#516883] mail interface + ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
609
diff
changeset
|
870 # |
|
609
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
871 # Revision 1.62 2002/02/05 14:15:29 grubert |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
872 # . respect encodings in non multipart messages. |
|
633f2b542146
Clean up mail handling, multipart handling.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
599
diff
changeset
|
873 # |
|
599
08aae4d34622
respect encodings in non multipart messages.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
595
diff
changeset
|
874 # Revision 1.61 2002/02/04 09:40:21 grubert |
|
08aae4d34622
respect encodings in non multipart messages.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
595
diff
changeset
|
875 # . add test for multipart messages with first part being encoded. |
|
08aae4d34622
respect encodings in non multipart messages.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
595
diff
changeset
|
876 # |
|
595
4c3dcda799f7
add test for multipart messages with first part being encoded.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
594
diff
changeset
|
877 # Revision 1.60 2002/02/01 07:43:12 grubert |
|
4c3dcda799f7
add test for multipart messages with first part being encoded.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
594
diff
changeset
|
878 # . mailgw checks encoding on first part too. |
|
4c3dcda799f7
add test for multipart messages with first part being encoded.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
594
diff
changeset
|
879 # |
|
594
82555a1429d0
mailgw checks encoding on first part too.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
590
diff
changeset
|
880 # Revision 1.59 2002/01/23 21:43:23 richard |
|
82555a1429d0
mailgw checks encoding on first part too.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
590
diff
changeset
|
881 # tabnuke |
|
82555a1429d0
mailgw checks encoding on first part too.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
590
diff
changeset
|
882 # |
| 590 | 883 # Revision 1.58 2002/01/23 21:41:56 richard |
| 884 # . mailgw failures (unexpected ones) are forwarded to the roundup admin | |
| 885 # | |
|
588
16d13b9b8321
mailgw failures (unexpected ones) are forwarded to the roundup admin
Richard Jones <richard@users.sourceforge.net>
parents:
573
diff
changeset
|
886 # Revision 1.57 2002/01/22 22:27:43 richard |
|
16d13b9b8321
mailgw failures (unexpected ones) are forwarded to the roundup admin
Richard Jones <richard@users.sourceforge.net>
parents:
573
diff
changeset
|
887 # . handle stripping of "AW:" from subject line |
|
16d13b9b8321
mailgw failures (unexpected ones) are forwarded to the roundup admin
Richard Jones <richard@users.sourceforge.net>
parents:
573
diff
changeset
|
888 # |
|
573
f0513f650042
handle stripping of "AW:" from subject line
Richard Jones <richard@users.sourceforge.net>
parents:
571
diff
changeset
|
889 # Revision 1.56 2002/01/22 11:54:45 rochecompaan |
|
f0513f650042
handle stripping of "AW:" from subject line
Richard Jones <richard@users.sourceforge.net>
parents:
571
diff
changeset
|
890 # Fixed status change in mail gateway. |
|
f0513f650042
handle stripping of "AW:" from subject line
Richard Jones <richard@users.sourceforge.net>
parents:
571
diff
changeset
|
891 # |
|
571
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
892 # Revision 1.55 2002/01/21 10:05:47 rochecompaan |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
893 # Feature: |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
894 # . the mail gateway now responds with an error message when invalid |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
895 # values for arguments are specified for link or multilink properties |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
896 # . modified unit test to check nosy and assignedto when specified as |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
897 # arguments |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
898 # |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
899 # Fixed: |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
900 # . fixed setting nosy as argument in subject line |
|
2998d683e2cf
Fixed status change in mail gateway.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
560
diff
changeset
|
901 # |
|
560
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
902 # Revision 1.54 2002/01/16 09:14:45 grubert |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
903 # . if the attachment has no name, name it unnamed, happens with tnefs. |
|
d7b9751f8927
Mail gateway improvements.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
545
diff
changeset
|
904 # |
|
545
d276d72ebdaf
if the attachment has no name, name it unnamed, happens with tnefs.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
544
diff
changeset
|
905 # Revision 1.53 2002/01/16 07:20:54 richard |
|
d276d72ebdaf
if the attachment has no name, name it unnamed, happens with tnefs.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
544
diff
changeset
|
906 # simple help command for mailgw |
|
d276d72ebdaf
if the attachment has no name, name it unnamed, happens with tnefs.
Engelbert Gruber <grubert@users.sourceforge.net>
parents:
544
diff
changeset
|
907 # |
|
544
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
908 # Revision 1.52 2002/01/15 00:12:40 richard |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
909 # #503340 ] creating issue with [asignedto=p.ohly] |
|
d32977eb8bd4
simple help command for mailgw
Richard Jones <richard@users.sourceforge.net>
parents:
537
diff
changeset
|
910 # |
|
537
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
911 # Revision 1.51 2002/01/14 02:20:15 richard |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
912 # . changed all config accesses so they access either the instance or the |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
913 # config attriubute on the db. This means that all config is obtained from |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
914 # instance_config instead of the mish-mash of classes. This will make |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
915 # switching to a ConfigParser setup easier too, I hope. |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
916 # |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
917 # At a minimum, this makes migration a _little_ easier (a lot easier in the |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
918 # 0.5.0 switch, I hope!) |
|
ad6dbc21a570
[SF#503340] creating issue with [asignedto=p.ohly]
Richard Jones <richard@users.sourceforge.net>
parents:
524
diff
changeset
|
919 # |
|
524
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
920 # Revision 1.50 2002/01/11 22:59:01 richard |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
921 # . #502342 ] pipe interface |
|
dce4c75bef5a
changed all config accesses...
Richard Jones <richard@users.sourceforge.net>
parents:
521
diff
changeset
|
922 # |
|
521
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
923 # Revision 1.49 2002/01/10 06:19:18 richard |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
924 # followup lines directly after a quoted section were being eaten. |
|
1416195a830d
[SF#502342] pipe interface
Richard Jones <richard@users.sourceforge.net>
parents:
510
diff
changeset
|
925 # |
|
510
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
926 # Revision 1.48 2002/01/08 04:12:05 richard |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
927 # Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822 |
|
3f6107488465
followup lines directly after a quoted section were being eaten.
Richard Jones <richard@users.sourceforge.net>
parents:
499
diff
changeset
|
928 # |
|
499
9ad589d0a60f
Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents:
476
diff
changeset
|
929 # Revision 1.47 2002/01/02 02:32:38 richard |
|
9ad589d0a60f
Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents:
476
diff
changeset
|
930 # ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER |
|
9ad589d0a60f
Changed message-id format to "<%s.%s.%s%s@%s>" so it complies with RFC822
Richard Jones <richard@users.sourceforge.net>
parents:
476
diff
changeset
|
931 # |
|
476
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
932 # Revision 1.46 2002/01/02 02:31:38 richard |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
933 # Sorry for the huge checkin message - I was only intending to implement #496356 |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
934 # but I found a number of places where things had been broken by transactions: |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
935 # . modified ROUNDUPDBSENDMAILDEBUG to be SENDMAILDEBUG and hold a filename |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
936 # for _all_ roundup-generated smtp messages to be sent to. |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
937 # . the transaction cache had broken the roundupdb.Class set() reactors |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
938 # . newly-created author users in the mailgw weren't being committed to the db |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
939 # |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
940 # Stuff that made it into CHANGES.txt (ie. the stuff I was actually working |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
941 # on when I found that stuff :): |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
942 # . #496356 ] Use threading in messages |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
943 # . detectors were being registered multiple times |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
944 # . added tests for mailgw |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
945 # . much better attaching of erroneous messages in the mail gateway |
|
00450ff9c4e7
ANONYMOUS_ACCESS -> ANONYMOUS_REGISTER
Richard Jones <richard@users.sourceforge.net>
parents:
475
diff
changeset
|
946 # |
|
475
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
947 # Revision 1.45 2001/12/20 15:43:01 rochecompaan |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
948 # Features added: |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
949 # . Multilink properties are now displayed as comma separated values in |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
950 # a textbox |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
951 # . The add user link is now only visible to the admin user |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
952 # . Modified the mail gateway to reject submissions from unknown |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
953 # addresses if ANONYMOUS_ACCESS is denied |
|
a1a44636bace
Fix breakage caused by transaction changes.
Richard Jones <richard@users.sourceforge.net>
parents:
467
diff
changeset
|
954 # |
|
467
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
955 # Revision 1.44 2001/12/18 15:30:34 rochecompaan |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
956 # Fixed bugs: |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
957 # . Fixed file creation and retrieval in same transaction in anydbm |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
958 # backend |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
959 # . Cgi interface now renders new issue after issue creation |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
960 # . Could not set issue status to resolved through cgi interface |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
961 # . Mail gateway was changing status back to 'chatting' if status was |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
962 # omitted as an argument |
|
103f521810f7
Features added:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
464
diff
changeset
|
963 # |
|
464
29f5ac8a0d2b
Fixed bugs:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
454
diff
changeset
|
964 # Revision 1.43 2001/12/15 19:39:01 rochecompaan |
|
29f5ac8a0d2b
Fixed bugs:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
454
diff
changeset
|
965 # Oops. |
|
29f5ac8a0d2b
Fixed bugs:
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
454
diff
changeset
|
966 # |
| 454 | 967 # Revision 1.42 2001/12/15 19:24:39 rochecompaan |
| 968 # . Modified cgi interface to change properties only once all changes are | |
| 969 # collected, files created and messages generated. | |
| 970 # . Moved generation of change note to nosyreactors. | |
| 971 # . We now check for changes to "assignedto" to ensure it's added to the | |
| 972 # nosy list. | |
|
453
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
973 # |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
974 # Revision 1.41 2001/12/10 00:57:38 richard |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
975 # From CHANGES: |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
976 # . Added the "display" command to the admin tool - displays a node's values |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
977 # . #489760 ] [issue] only subject |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
978 # . fixed the doc/index.html to include the quoting in the mail alias. |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
979 # |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
980 # Also: |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
981 # . fixed roundup-admin so it works with transactions |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
982 # . disabled the back_anydbm module if anydbm tries to use dumbdbm |
|
5b422e3bd05d
Performance tuning.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
438
diff
changeset
|
983 # |
|
438
9d97c1a4ddad
Notes from changes.
Richard Jones <richard@users.sourceforge.net>
parents:
434
diff
changeset
|
984 # Revision 1.40 2001/12/05 14:26:44 rochecompaan |
|
9d97c1a4ddad
Notes from changes.
Richard Jones <richard@users.sourceforge.net>
parents:
434
diff
changeset
|
985 # Removed generation of change note from "sendmessage" in roundupdb.py. |
|
9d97c1a4ddad
Notes from changes.
Richard Jones <richard@users.sourceforge.net>
parents:
434
diff
changeset
|
986 # The change note is now generated when the message is created. |
|
9d97c1a4ddad
Notes from changes.
Richard Jones <richard@users.sourceforge.net>
parents:
434
diff
changeset
|
987 # |
|
434
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
988 # Revision 1.39 2001/12/02 05:06:16 richard |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
989 # . We now use weakrefs in the Classes to keep the database reference, so |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
990 # the close() method on the database is no longer needed. |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
991 # I bumped the minimum python requirement up to 2.1 accordingly. |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
992 # . #487480 ] roundup-server |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
993 # . #487476 ] INSTALL.txt |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
994 # |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
995 # I also cleaned up the change message / post-edit stuff in the cgi client. |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
996 # There's now a clearly marked "TODO: append the change note" where I believe |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
997 # the change note should be added there. The "changes" list will obviously |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
998 # have to be modified to be a dict of the changes, or somesuch. |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
999 # |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1000 # More testing needed. |
|
2441743e335b
Removed generation of change note from "sendmessage" in roundupdb.py.
Roche Compaan <rochecompaan@users.sourceforge.net>
parents:
431
diff
changeset
|
1001 # |
|
431
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1002 # Revision 1.38 2001/12/01 07:17:50 richard |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1003 # . We now have basic transaction support! Information is only written to |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1004 # the database when the commit() method is called. Only the anydbm |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1005 # backend is modified in this way - neither of the bsddb backends have been. |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1006 # The mail, admin and cgi interfaces all use commit (except the admin tool |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1007 # doesn't have a commit command, so interactive users can't commit...) |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1008 # . Fixed login/registration forwarding the user to the right page (or not, |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1009 # on a failure) |
|
a28a80b714f9
Eliminate database close method by using weakrefs.
Richard Jones <richard@users.sourceforge.net>
parents:
430
diff
changeset
|
1010 # |
|
430
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
1011 # Revision 1.37 2001/11/28 21:55:35 richard |
|
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
1012 # . login_action and newuser_action return values were being ignored |
|
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
1013 # . Woohoo! Found that bloody re-login bug that was killing the mail |
|
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
1014 # gateway. |
|
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
1015 # (also a minor cleanup in hyperdb) |
|
350685601f37
Database transactions.
Richard Jones <richard@users.sourceforge.net>
parents:
419
diff
changeset
|
1016 # |
|
419
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1017 # Revision 1.36 2001/11/26 22:55:56 richard |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1018 # Feature: |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1019 # . Added INSTANCE_NAME to configuration - used in web and email to identify |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1020 # the instance. |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1021 # . Added EMAIL_SIGNATURE_POSITION to indicate where to place the roundup |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1022 # signature info in e-mails. |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1023 # . Some more flexibility in the mail gateway and more error handling. |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1024 # . Login now takes you to the page you back to the were denied access to. |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1025 # |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1026 # Fixed: |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1027 # . Lots of bugs, thanks Roché and others on the devel mailing list! |
|
831e91e23963
login_action and newuser_action return values were being ignored
Richard Jones <richard@users.sourceforge.net>
parents:
411
diff
changeset
|
1028 # |
|
411
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
1029 # Revision 1.35 2001/11/22 15:46:42 jhermann |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
1030 # Added module docstrings to all modules. |
|
a6088556e9ba
Features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
406
diff
changeset
|
1031 # |
|
406
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
391
diff
changeset
|
1032 # Revision 1.34 2001/11/15 10:24:27 richard |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
391
diff
changeset
|
1033 # handle the case where there is no file attached |
|
bdc2ea127ae9
Added module docstrings to all modules.
Jürgen Hermann <jhermann@users.sourceforge.net>
parents:
391
diff
changeset
|
1034 # |
|
391
399340646765
handle the case where there is no file attached
Richard Jones <richard@users.sourceforge.net>
parents:
389
diff
changeset
|
1035 # Revision 1.33 2001/11/13 21:44:44 richard |
|
399340646765
handle the case where there is no file attached
Richard Jones <richard@users.sourceforge.net>
parents:
389
diff
changeset
|
1036 # . re-open the database as the author in mail handling |
|
399340646765
handle the case where there is no file attached
Richard Jones <richard@users.sourceforge.net>
parents:
389
diff
changeset
|
1037 # |
|
389
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
1038 # Revision 1.32 2001/11/12 22:04:29 richard |
|
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
1039 # oops, left debug in there |
|
7d7cb5319fc0
re-open the database as the author in mail handling
Richard Jones <richard@users.sourceforge.net>
parents:
382
diff
changeset
|
1040 # |
|
382
be28f4c4feb6
oops, left debug in there
Richard Jones <richard@users.sourceforge.net>
parents:
380
diff
changeset
|
1041 # Revision 1.31 2001/11/12 22:01:06 richard |
|
be28f4c4feb6
oops, left debug in there
Richard Jones <richard@users.sourceforge.net>
parents:
380
diff
changeset
|
1042 # Fixed issues with nosy reaction and author copies. |
|
be28f4c4feb6
oops, left debug in there
Richard Jones <richard@users.sourceforge.net>
parents:
380
diff
changeset
|
1043 # |
|
380
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
379
diff
changeset
|
1044 # Revision 1.30 2001/11/09 22:33:28 richard |
|
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
379
diff
changeset
|
1045 # More error handling fixes. |
|
a1331423eb93
Fixed issues with nosy reaction and author copies.
Richard Jones <richard@users.sourceforge.net>
parents:
379
diff
changeset
|
1046 # |
|
379
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
1047 # Revision 1.29 2001/11/07 05:29:26 richard |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
1048 # Modified roundup-mailgw so it can read e-mails from a local mail spool |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
1049 # file. Truncates the spool file after parsing. |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
1050 # Fixed a couple of small bugs introduced in roundup.mailgw when I started |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
1051 # the popgw. |
|
c7b5b1aa6b4a
More error handling fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
367
diff
changeset
|
1052 # |
|
367
5140ccaaab1b
Modified roundup-mailgw so it can read e-mails from a local mail spool file.
Richard Jones <richard@users.sourceforge.net>
parents:
343
diff
changeset
|
1053 # Revision 1.28 2001/11/01 22:04:37 richard |
|
5140ccaaab1b
Modified roundup-mailgw so it can read e-mails from a local mail spool file.
Richard Jones <richard@users.sourceforge.net>
parents:
343
diff
changeset
|
1054 # Started work on supporting a pop3-fetching server |
|
5140ccaaab1b
Modified roundup-mailgw so it can read e-mails from a local mail spool file.
Richard Jones <richard@users.sourceforge.net>
parents:
343
diff
changeset
|
1055 # Fixed bugs: |
|
5140ccaaab1b
Modified roundup-mailgw so it can read e-mails from a local mail spool file.
Richard Jones <richard@users.sourceforge.net>
parents:
343
diff
changeset
|
1056 # . bug #477104 ] HTML tag error in roundup-server |
|
5140ccaaab1b
Modified roundup-mailgw so it can read e-mails from a local mail spool file.
Richard Jones <richard@users.sourceforge.net>
parents:
343
diff
changeset
|
1057 # . bug #477107 ] HTTP header problem |
|
5140ccaaab1b
Modified roundup-mailgw so it can read e-mails from a local mail spool file.
Richard Jones <richard@users.sourceforge.net>
parents:
343
diff
changeset
|
1058 # |
|
343
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
1059 # Revision 1.27 2001/10/30 11:26:10 richard |
|
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
1060 # Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail. |
|
ab16997d9cda
Started work on supporting a pop3-fetching server
Richard Jones <richard@users.sourceforge.net>
parents:
339
diff
changeset
|
1061 # |
|
339
4e39e26ede38
Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
1062 # Revision 1.26 2001/10/30 00:54:45 richard |
|
4e39e26ede38
Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
1063 # Features: |
|
4e39e26ede38
Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
1064 # . #467129 ] Lossage when username=e-mail-address |
|
4e39e26ede38
Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
1065 # . #473123 ] Change message generation for author |
|
4e39e26ede38
Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
1066 # . MailGW now moves 'resolved' to 'chatting' on receiving e-mail for an issue. |
|
4e39e26ede38
Case-insensitive match for ISSUE_TRACKER_EMAIL in address in e-mail.
Richard Jones <richard@users.sourceforge.net>
parents:
337
diff
changeset
|
1067 # |
| 337 | 1068 # Revision 1.25 2001/10/28 23:22:28 richard |
| 1069 # fixed bug #474749 ] Indentations lost | |
| 1070 # | |
|
334
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
1071 # Revision 1.24 2001/10/23 22:57:52 richard |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
1072 # Fix unread->chatting auto transition, thanks Roch'e |
|
256776bfdfc5
fixed [SF#474749] Indentations lost
Richard Jones <richard@users.sourceforge.net>
parents:
321
diff
changeset
|
1073 # |
|
321
d0d6feb17d2f
Fix unread->chatting auto transition, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents:
311
diff
changeset
|
1074 # Revision 1.23 2001/10/21 04:00:20 richard |
|
d0d6feb17d2f
Fix unread->chatting auto transition, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents:
311
diff
changeset
|
1075 # MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue. |
|
d0d6feb17d2f
Fix unread->chatting auto transition, thanks Roch'e
Richard Jones <richard@users.sourceforge.net>
parents:
311
diff
changeset
|
1076 # |
|
311
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
1077 # Revision 1.22 2001/10/21 03:35:13 richard |
|
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
1078 # bug #473125: Paragraph in e-mails |
|
895a1c09f4ae
MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
Richard Jones <richard@users.sourceforge.net>
parents:
310
diff
changeset
|
1079 # |
|
310
0ec8a9f1cbe6
[SF#473125]: Paragraph in e-mails
Richard Jones <richard@users.sourceforge.net>
parents:
309
diff
changeset
|
1080 # Revision 1.21 2001/10/21 00:53:42 richard |
|
0ec8a9f1cbe6
[SF#473125]: Paragraph in e-mails
Richard Jones <richard@users.sourceforge.net>
parents:
309
diff
changeset
|
1081 # bug #473130: Nosy list not set correctly |
|
0ec8a9f1cbe6
[SF#473125]: Paragraph in e-mails
Richard Jones <richard@users.sourceforge.net>
parents:
309
diff
changeset
|
1082 # |
|
309
f193e0a1b9a5
[SF#473130]: Nosy list not set correctly
Richard Jones <richard@users.sourceforge.net>
parents:
299
diff
changeset
|
1083 # Revision 1.20 2001/10/17 23:13:19 richard |
|
f193e0a1b9a5
[SF#473130]: Nosy list not set correctly
Richard Jones <richard@users.sourceforge.net>
parents:
299
diff
changeset
|
1084 # Did a fair bit of work on the admin tool. Now has an extra command "table" |
|
f193e0a1b9a5
[SF#473130]: Nosy list not set correctly
Richard Jones <richard@users.sourceforge.net>
parents:
299
diff
changeset
|
1085 # which displays node information in a tabular format. Also fixed import and |
|
f193e0a1b9a5
[SF#473130]: Nosy list not set correctly
Richard Jones <richard@users.sourceforge.net>
parents:
299
diff
changeset
|
1086 # export so they work. Removed freshen. |
|
f193e0a1b9a5
[SF#473130]: Nosy list not set correctly
Richard Jones <richard@users.sourceforge.net>
parents:
299
diff
changeset
|
1087 # Fixed quopri usage in mailgw from bug reports. |
|
f193e0a1b9a5
[SF#473130]: Nosy list not set correctly
Richard Jones <richard@users.sourceforge.net>
parents:
299
diff
changeset
|
1088 # |
|
299
fd9835c1e58d
Did a fair bit of work on the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
287
diff
changeset
|
1089 # Revision 1.19 2001/10/11 23:43:04 richard |
|
fd9835c1e58d
Did a fair bit of work on the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
287
diff
changeset
|
1090 # Implemented the comma-separated printing option in the admin tool. |
|
fd9835c1e58d
Did a fair bit of work on the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
287
diff
changeset
|
1091 # Fixed a typo (more of a vim-o actually :) in mailgw. |
|
fd9835c1e58d
Did a fair bit of work on the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
287
diff
changeset
|
1092 # |
|
287
ee2f4cb160bd
Implemented the comma-separated printing option in the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
286
diff
changeset
|
1093 # Revision 1.18 2001/10/11 06:38:57 richard |
|
ee2f4cb160bd
Implemented the comma-separated printing option in the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
286
diff
changeset
|
1094 # Initial cut at trying to handle people responding to CC'ed messages that |
|
ee2f4cb160bd
Implemented the comma-separated printing option in the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
286
diff
changeset
|
1095 # create an issue. |
|
ee2f4cb160bd
Implemented the comma-separated printing option in the admin tool.
Richard Jones <richard@users.sourceforge.net>
parents:
286
diff
changeset
|
1096 # |
|
286
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
1097 # Revision 1.17 2001/10/09 07:25:59 richard |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
1098 # Added the Password property type. See "pydoc roundup.password" for |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
1099 # implementation details. Have updated some of the documentation too. |
|
2313560b8477
Initial cut at trying to handle people responding to CC'ed messages...
Richard Jones <richard@users.sourceforge.net>
parents:
270
diff
changeset
|
1100 # |
|
270
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1101 # Revision 1.16 2001/10/05 02:23:24 richard |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1102 # . roundup-admin create now prompts for property info if none is supplied |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1103 # on the command-line. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1104 # . hyperdb Class getprops() method may now return only the mutable |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1105 # properties. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1106 # . Login now uses cookies, which makes it a whole lot more flexible. We can |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1107 # now support anonymous user access (read-only, unless there's an |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1108 # "anonymous" user, in which case write access is permitted). Login |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1109 # handling has been moved into cgi_client.Client.main() |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1110 # . The "extended" schema is now the default in roundup init. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1111 # . The schemas have had their page headings modified to cope with the new |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1112 # login handling. Existing installations should copy the interfaces.py |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1113 # file from the roundup lib directory to their instance home. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1114 # . Incorrectly had a Bizar Software copyright on the cgitb.py module from |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1115 # Ping - has been removed. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1116 # . Fixed a whole bunch of places in the CGI interface where we should have |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1117 # been returning Not Found instead of throwing an exception. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1118 # . Fixed a deviation from the spec: trying to modify the 'id' property of |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1119 # an item now throws an exception. |
|
a4241ddd22d7
Added the Password property type.
Richard Jones <richard@users.sourceforge.net>
parents:
264
diff
changeset
|
1120 # |
|
264
a671e5917b33
Many features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
244
diff
changeset
|
1121 # Revision 1.15 2001/08/30 06:01:17 richard |
|
a671e5917b33
Many features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
244
diff
changeset
|
1122 # Fixed missing import in mailgw :( |
|
a671e5917b33
Many features and fixes.
Richard Jones <richard@users.sourceforge.net>
parents:
244
diff
changeset
|
1123 # |
|
244
6bf584784e31
Fixed missing import in mailgw :(
Richard Jones <richard@users.sourceforge.net>
parents:
226
diff
changeset
|
1124 # Revision 1.14 2001/08/13 23:02:54 richard |
|
6bf584784e31
Fixed missing import in mailgw :(
Richard Jones <richard@users.sourceforge.net>
parents:
226
diff
changeset
|
1125 # Make the mail parser a little more robust. |
|
6bf584784e31
Fixed missing import in mailgw :(
Richard Jones <richard@users.sourceforge.net>
parents:
226
diff
changeset
|
1126 # |
|
226
8af4945246cb
Make the mail parser a little more robust.
Richard Jones <richard@users.sourceforge.net>
parents:
224
diff
changeset
|
1127 # Revision 1.13 2001/08/12 06:32:36 richard |
|
8af4945246cb
Make the mail parser a little more robust.
Richard Jones <richard@users.sourceforge.net>
parents:
224
diff
changeset
|
1128 # using isinstance(blah, Foo) now instead of isFooType |
|
8af4945246cb
Make the mail parser a little more robust.
Richard Jones <richard@users.sourceforge.net>
parents:
224
diff
changeset
|
1129 # |
|
224
ad2c98faec97
using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents:
221
diff
changeset
|
1130 # Revision 1.12 2001/08/08 01:27:00 richard |
|
ad2c98faec97
using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents:
221
diff
changeset
|
1131 # Added better error handling to mailgw. |
|
ad2c98faec97
using isinstance(blah, Foo) now instead of isFooType
Richard Jones <richard@users.sourceforge.net>
parents:
221
diff
changeset
|
1132 # |
|
221
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
1133 # Revision 1.11 2001/08/08 00:08:03 richard |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
1134 # oops ;) |
|
152fedaab07c
Added better error handling to mailgw.
Richard Jones <richard@users.sourceforge.net>
parents:
218
diff
changeset
|
1135 # |
| 218 | 1136 # Revision 1.10 2001/08/07 00:24:42 richard |
| 1137 # stupid typo | |
| 1138 # | |
| 214 | 1139 # Revision 1.9 2001/08/07 00:15:51 richard |
| 1140 # Added the copyright/license notice to (nearly) all files at request of | |
| 1141 # Bizar Software. | |
| 1142 # | |
|
213
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
1143 # Revision 1.8 2001/08/05 07:06:07 richard |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
1144 # removed some print statements |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
202
diff
changeset
|
1145 # |
|
202
d702ac2ceedb
removed some print statements
Richard Jones <richard@users.sourceforge.net>
parents:
198
diff
changeset
|
1146 # Revision 1.7 2001/08/03 07:18:22 richard |
|
d702ac2ceedb
removed some print statements
Richard Jones <richard@users.sourceforge.net>
parents:
198
diff
changeset
|
1147 # Implemented correct mail splitting (was taking a shortcut). Added unit |
|
d702ac2ceedb
removed some print statements
Richard Jones <richard@users.sourceforge.net>
parents:
198
diff
changeset
|
1148 # tests. Also snips signatures now too. |
|
d702ac2ceedb
removed some print statements
Richard Jones <richard@users.sourceforge.net>
parents:
198
diff
changeset
|
1149 # |
|
198
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
1150 # Revision 1.6 2001/08/01 04:24:21 richard |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
1151 # mailgw was assuming certain properties existed on the issues being created. |
|
eda506860b32
Implemented correct mail splitting (was taking a shortcut).
Richard Jones <richard@users.sourceforge.net>
parents:
172
diff
changeset
|
1152 # |
|
172
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
1153 # Revision 1.5 2001/07/29 07:01:39 richard |
|
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
1154 # Added vim command to all source so that we don't get no steenkin' tabs :) |
|
c580555a6508
mailgw was assuming certain properties existed on the issues being created.
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
1155 # |
|
127
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
110
diff
changeset
|
1156 # Revision 1.4 2001/07/28 06:43:02 richard |
|
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
110
diff
changeset
|
1157 # Multipart message class has the getPart method now. Added some tests for it. |
|
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
110
diff
changeset
|
1158 # |
|
110
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
1159 # Revision 1.3 2001/07/28 00:34:34 richard |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
1160 # Fixed some non-string node ids. |
|
19686b60e410
Multipart message class has the getPart method now. Added some tests for it.
Richard Jones <richard@users.sourceforge.net>
parents:
103
diff
changeset
|
1161 # |
|
103
381016730332
Fixed some non-string node ids.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
1162 # Revision 1.2 2001/07/22 12:09:32 richard |
|
381016730332
Fixed some non-string node ids.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
1163 # Final commit of Grande Splite |
|
26
c7c14960f413
Final commit of Grande Splite
Richard Jones <richard@users.sourceforge.net>
parents:
25
diff
changeset
|
1164 # |
|
103
381016730332
Fixed some non-string node ids.
Richard Jones <richard@users.sourceforge.net>
parents:
26
diff
changeset
|
1165 # |
|
127
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
110
diff
changeset
|
1166 # vim: set filetype=python ts=4 sw=4 et si |
