Decoding Subject lines is a PITA in Python. Do it once when injecting
the email, and store the subject lines as UTF-8. This saves a lot of
effort later on, even though it's not strictly RFC compliant.
def inject(m):
global processed
+ # Decode the subject line and store it back in the email as UTF-8.
+ # This saves a lot of effort later on, even though it's not
+ # strictly RFC822 compliant.
+ # https://stackoverflow.com/questions/7331351/python-email-header-decoding-utf-8/7331577#7331577
+ subj = m['Subject']
+ subj = email.header.decode_header(subj)
+ subj = ''.join([ unicode(t[0], t[1] or 'ASCII') for t in subj ])
+ m['Subject'] = subj
+
print("Injecting %s" % m['Subject'])
channel.basic_publish(exchange = 'patchq_input',