php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay

| files >> /var/www/html/sub/images/sym/root/proc/self/root/usr/lib/mailman/Mailman/Queue/ |
| files >> //var/www/html/sub/images/sym/root/proc/self/root/usr/lib/mailman/Mailman/Queue/MaildirRunner.pyo |
Pc @ s d Z d d k Z d d k Z d d k Z d d k l Z d d k l Z d d k l Z d d k l
Z
d d k l Z d d k
l Z d d k l Z d d
k l Z e i d e i e i B Z d e f d
YZ d S( s Maildir pre-queue runner.
Most MTAs can be configured to deliver messages to a `Maildir'[1]. This
runner will read messages from a maildir's new/ directory and inject them into
Mailman's qfiles/in directory for processing in the normal pipeline. This
delivery mechanism contrasts with mail program delivery, where incoming
messages end up in qfiles/in via the MTA executing the scripts/post script
(and likewise for the other -aliases for each mailing list).
The advantage to Maildir delivery is that it is more efficient; there's no
need to fork an intervening program just to take the message from the MTA's
standard output, to the qfiles/in directory.
[1] http://cr.yp.to/proto/maildir.html
We're going to use the :info flag == 1, experimental status flag for our own
purposes. The :1 can be followed by one of these letters:
- P means that MaildirRunner's in the process of parsing and enqueuing the
message. If successful, it will delete the file.
- X means something failed during the parse/enqueue phase. An error message
will be logged to log/error and the file will be renamed <filename>:1,X.
MaildirRunner will never automatically return to this file, but once the
problem is fixed, you can manually move the file back to the new/ directory
and MaildirRunner will attempt to re-process it. At some point we may do
this automatically.
See the variable USE_MAILDIR in Defaults.py.in for enabling this delivery
mechanism.
iN( t Parser( t parseaddr( t mm_cfg( t Utils( t Message( t Runner( t get_switchboard( t syslogs
^ # start of string
(?P<listname>[^+@]+?) # listname@ or listname-subq@ (non-greedy)
(?: # non-grouping
- # dash separator
(?P<subq> # any known suffix
admin|
bounces|
confirm|
join|
leave|
owner|
request|
subscribe|
unsubscribe
)
)? # if it exists
[+@] # followed by + or @
t
MaildirRunnerc B s) e Z d d d Z d Z d Z RS( i c C sR d | _ t i i t i d | _ t i i t i d | _ t t | _
d S( Ni t newt cur( t _stopt ost patht joinR t MAILDIR_DIRt _dirt _curR R t _parser( t selft slicet numslices( ( sd /builddir/build/BUILDROOT/mailman-2.1.12-18.el6.i386//usr/lib/mailman/Mailman/Queue/MaildirRunner.pyt __init__` s c C s t i } y t i | i } Wn0 t j
o$ } | i t i j o n d SXx| D]w} t i i | i | } t i i | i
| d } t i i | i
| d } y t i | | WnB t j
o6 } | i t i j o q\ n t d d | n Xyt
| } z | i i | } Wd | i Xg }
x' d D] } |
i | i | g qKWx |
D]k } t | d }
|
p qun t i |
} | p qun | i d
d \ } } | | j o PququWt d d | t i | | w\ h | d
6} | d! j o t t i } nG| d j o d | d <t t i } n| d"