78 |
|
|
79 |
return result |
return result |
80 |
|
|
81 |
|
def getCharset(msg): |
82 |
|
for param in msg.getplist(): |
83 |
|
if param[0:7] == 'charset': |
84 |
|
return param[8:] |
85 |
|
|
86 |
def storeMail(mail, mediaserver): |
def storeMail(mail, mediaserver): |
87 |
mail = re.sub('(\r\n|\n)', '\r\n', mail) |
mail = re.sub('(\r\n|\n)', '\r\n', mail) |
91 |
msgID = msg.getheader("Message-ID") |
msgID = msg.getheader("Message-ID") |
92 |
ctparams = [] |
ctparams = [] |
93 |
|
|
94 |
|
getCharset(msg) |
95 |
|
|
96 |
for param in msg.getplist(): |
for param in msg.getplist(): |
97 |
ctparams.append(string.join(['; ', param], '')) |
ctparams.append(string.join(['; ', param], '')) |
98 |
|
|
120 |
body = string.join(submsg.fp.readlines(), '') |
body = string.join(submsg.fp.readlines(), '') |
121 |
id = mediaserver.addDatum(body, headerLinesB, None, 0) |
id = mediaserver.addDatum(body, headerLinesB, None, 0) |
122 |
|
|
123 |
|
|
124 |
header = ['--', msg.getparam("boundary") + '\r\n'] |
header = ['--', msg.getparam("boundary") + '\r\n'] |
125 |
header = header + transformHeader(submsg.headers, id) |
header = header + transformHeader(submsg.headers, id) |
126 |
header = string.join(header, '') |
header = string.join(header, '') |
130 |
headerData += '--' + msg.getparam("boundary") + '--\r\n\r\n' |
headerData += '--' + msg.getparam("boundary") + '--\r\n\r\n' |
131 |
id2 = mediaserver.addDatum(headerData, headerLinesH, None, 0) |
id2 = mediaserver.addDatum(headerData, headerLinesH, None, 0) |
132 |
eis = gzz.modules.email.DefaultEmailInStorm(mediaserver, id2) |
eis = gzz.modules.email.DefaultEmailInStorm(mediaserver, id2) |
133 |
|
print eis.getSubject().makeString(), ": ", id2.getString() |
134 |
else: |
else: |
135 |
headerLinesH = java.util.ArrayList() |
headerLinesH = java.util.ArrayList() |
136 |
headerLinesB = java.util.ArrayList() |
headerLinesB = java.util.ArrayList() |
143 |
|
|
144 |
body = string.join(msg.fp.readlines(), '') |
body = string.join(msg.fp.readlines(), '') |
145 |
id = mediaserver.addDatum(body, headerLinesB, None, 0) |
id = mediaserver.addDatum(body, headerLinesB, None, 0) |
146 |
|
|
147 |
|
print "convertible:", isConvertible(body, getCharset(msg)) |
148 |
|
|
149 |
header = string.join(transformHeader(msg.headers, id), '') |
header = string.join(transformHeader(msg.headers, id), '') |
150 |
|
|
151 |
id2 = mediaserver.addDatum(header, headerLinesH, None, 0) |
id2 = mediaserver.addDatum(header, headerLinesH, None, 0) |
152 |
eis = gzz.modules.email.DefaultEmailInStorm(mediaserver, id2) |
eis = gzz.modules.email.DefaultEmailInStorm(mediaserver, id2) |
153 |
|
print eis.getSubject().makeString(), ": ", id2.getString() |
154 |
mail.close() |
mail.close() |
155 |
return eis |
return eis |
156 |
|
|
157 |
|
def isConvertible(body, charset): |
158 |
|
cBody = "" |
159 |
|
try: |
160 |
|
cBody = java.lang.String(body, charset); |
161 |
|
except java.io.UnsupportedEncodingException: |
162 |
|
print charset, "not supported" |
163 |
|
return 0 |
164 |
|
|
165 |
|
bBody = cBody.getBytes(charset) |
166 |
|
if body.equals(bBody): # somehow like this... just with body as a byte-array |
167 |
|
return 1 |
168 |
|
else: |
169 |
|
return 0 |