Viewing File: /usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pyc

ó
)¿Úhc@sxdZddlZddlZddlmZddlmZddlmZddl	m
Z
ddl	mZddl	mZdd	l	m
Z
dd
l	mZddlmZddlmZdd
l	mZdZeje
jdƒƒd Zd„Zeaitdƒe
j6tdƒe
j6tdƒe
j6tdƒe
j6Zejaddd„ƒYZddd„ƒYZ dS(sHandle delivery bounces.iÿÿÿÿN(t
StringType(tMIMEText(tMIMEMessage(tmm_cfg(tUtils(tMessage(t
MemberAdaptor(tPending(tMMUnknownListError(tsyslog(ti18ntiicCs|S(N((ts((s5/usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pytD_+ssdue to excessive bouncessby yourselfsby the list administratorsfor unknown reasonst_BounceInfocBs#eZd„Zd„Zd„ZRS(cCs)||_d|_|j|||ƒdS(N(tmembertNonetcookietreset(tselfRtscoretdatetnoticesleft((s5/usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pyt__init__9s		cCs(||_||_||_t|_dS(N(RRRtZEROHOUR_PLUSONEDAYt
lastnotice(RRRR((s5/usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pyR>s			cCsd|jS(Nsí<bounce info for member %(member)s
        current score: %(score)s
        last bounce date: %(date)s
        email notices left: %(noticesleft)s
        last notice date: %(lastnotice)s
        confirmation cookie: %(cookie)s
        >(t__dict__(R((s5/usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pyt__repr__Ds	(t__name__t
__module__RRR(((s5/usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pyR8s		tBouncercBsMeZd„Zdded„Zd„Zdd„Zd„Zdd„Z	RS(cCs‚tj|_tj|_tj|_tj|_tj	|_
tj|_tj
|_tj|_tj|_i|_i|_dS(N(RtDEFAULT_BOUNCE_PROCESSINGtbounce_processingtDEFAULT_BOUNCE_SCORE_THRESHOLDtbounce_score_thresholdtDEFAULT_BOUNCE_INFO_STALE_AFTERtbounce_info_stale_aftert(DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGSt bounce_you_are_disabled_warningst1DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVALt)bounce_you_are_disabled_warnings_intervalt.DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNERt&bounce_unrecognized_goes_to_list_ownert/DEFAULT_BOUNCE_NOTIFY_OWNER_ON_BOUNCE_INCREMENTt'bounce_notify_owner_on_bounce_incrementt&DEFAULT_BOUNCE_NOTIFY_OWNER_ON_DISABLEtbounce_notify_owner_on_disablet&DEFAULT_BOUNCE_NOTIFY_OWNER_ON_REMOVALtbounce_notify_owner_on_removaltbounce_infotdelivery_status(R((s5/usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pytInitVarsRs	gð?cCs|j|ƒs$|js|r#dSddlm}xê|jD]ß}|jdƒ\}}	|jƒ}||jƒkrŒtdd|ƒq=nzmd}
y||ƒ}
Wn*t	k
rÑtdd|j
|ƒw=nX|
j||||dtƒ|
j
ƒWd|
r|
jƒr|
jƒnXq=WdS|j|ƒ}t}|dkrXtjƒd }nt|tƒs¡t||||jƒ}td	d
|jƒ||jƒn|j|ƒtjkrÖtd	d|jƒ|ƒdS|j|krt}td	d|jƒ|tjd
|dƒƒntj|ƒ}
tj|jƒ}||j|
kr€|j |||jƒtd	d|jƒ|ƒn7|j|7_||_td	d|jƒ||jƒ|j|j!kr9t"j#r#td	d|jƒ||j|j!ƒ|j$||ƒ|j d|j|j%ƒqg|j&|||ƒn.|j'rg|rg|j(||dt)dƒƒn|j|ƒr‰|j*||ƒndS(Niÿÿÿÿ(tMailListt@terrors(Bouncer: %s: Include list self references)Bouncer: %s: Include list "%s" not found.tsiblingitbounces%s: %s bounce score: %ss%s: %s residual bounce receiveds*%s: %s already scored a bounce for date %ss%d-%b-%Yiis'%s: %s has stale bounce info, resettings%s: %s current bounce score: %ss-sending %s list probe to: %s (score %s >= %s)tdidsbounce score incremented(iiiiii(+tisMembertregular_include_liststMailman.MailListR4tsplittlowert
internal_nameR	RRt	real_nametregisterBouncetTruetSavetLockedtUnlockt
getBounceInfottimet	localtimet
isinstanceRR&RtgetDeliveryStatusRtENABLEDRtFalsetstrftimeRtmidnightR$RR"RtVERP_PROBESt	sendProbeRtdisableBouncingMemberR,t_Bouncer__sendAdminBounceNoticet_t
setBounceInfo(RRtmsgtweighttdayR7R4tlistaddrtlistnamethostnametsiblisttinfotfirst_todaytnowt
lastbounce((s5/usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pyRAmsŒ
						
cCsÁ|jtj|jƒ|ƒ}||_|j||ƒtjr\tdd|jƒ|ƒn%tdd|jƒ||j	|j
ƒ|j|tj
ƒ|j|ƒ|jr½|j||ƒndS(NR8s-%s: %s disabling due to probe bounce receiveds-%s: %s disabling due to bounce score %s >= %s(tpend_newRt	RE_ENABLER?RRTRROR	RR"tsetDeliveryStatusRtBYBOUNCEtsendNextNotificationR.RR(RRR\RUR((s5/usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pyRQÐs				
	cCs$|dkrtdƒ}ntj|jƒ}tjdi|jd6|d6dd6|d6dd6dd	6|d
6d|ƒ}tdƒ}tj|j	ƒ||d
|j
ƒ}|jdƒ|jt
|dtj|j
ƒƒƒt|tƒr|jt
|ƒƒn|jt|ƒƒ|j|ƒdS(Ntdisableds
bounce.txtRYtaddrRtnegativeR9tbuttreenablet	owneraddrtmlistsBounce action notificationtlangsmultipart/mixedt_charset(RRSRtget_site_emailt	host_nametmaketextR@RtUserNotificationt
GetOwnerEmailtpreferred_languagetset_typetattachRt
GetCharSetRIRRtsend(RRRUR9t	siteownerttexttsubjecttumsg((s5/usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pyt__sendAdminBounceNoticeås0

		
c
Csº|j|ƒ}|dkrdS|j|ƒ}|jdkrta|j|tdƒd|jddƒtja|j	|j
ƒ|tjkr¬t
dd|jƒ|ƒnt
dd	|jƒ|id
tj6dtj6dtj6d
tj6j|dƒƒdSd|jdddƒ|j
f}|j|ddƒ}|jƒ}|j|ƒ}tj|ƒ}|dkr|tdƒ}nt|ƒ}|tjkr×tjdtjtj|jƒƒƒ}	tdƒ}
||
7}ntjdi|jd6|jd6|d6|d6|j |ƒd6|j!ƒd6|d6d|d|ƒ}t"j#||d|d|ƒ}|d =d!|j
|d"<|j$|d#t%ƒ|jd8_tjƒd$ |_&|j'||ƒdS(%Nisdisabled addresstadmin_notiftuserackiR8s'%s: %s deleted after exhausting noticest	subscribes%%s: %s auto-unsubscribed [reason: %s]RctBYUSERtBYADMINtUNKNOWNs
invalid values%s/%stconfirmtabsolutesfor unknown reasonss%d-%b-%Ys5 The last bounce received from you was dated %(date)ssdisabled.txtRYRt
confirmurlt
optionsurltpasswordRjtreasonRlRkRyRzsconfirm tSubjecttnoprecedencei((RFRRJRR
RStApprovedDeleteMemberR0R
tpend_confirmRRRcR	R?R€RR‚tgettGetScriptURLt
GetOptionsURLtGetRequestEmailtgetMemberLanguagetREASONSRGRMRHRRNRRpR@tgetMemberPasswordRrRRqRwRBRRT(
RRR\RˆR…R†treqaddrRlt	txtreasonRtextraRyRU((s5/usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pyRdsl				





	




c	Csõ|jƒ}|jdtdƒƒ}tj|tj|jƒƒ}|dkr]tdƒ}nt|jƒƒ}t	j
|jƒ|jƒ|d|jƒ}|jdƒt
|dtj|jƒƒ}|j|ƒ|jt|ƒƒ|j|ƒdS(NRzs(no subject)s![No bounce details are available]Rlsmultipart/mixedRm(t
get_senderRRSRtonelineRvRsRtnoticeRRqRrRtRRuRRw(	RRUtmsgdatatetsenderRzR™tbmsgttxt((s5/usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pyt
BounceMessageKs"		
	
N(
RRR3RRLRARQRRRdRŸ(((s5/usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pyRQs	c	"	D(((!t__doc__tsysRGttypesRtemail.MIMETextRtemail.MIMEMessageRtMailmanRRRRRtMailman.ErrorsRtMailman.Logging.SyslogR	R
tEMPTYSTRINGRHtdaysRR
RSRcR€RR‚R’RR(((s5/usr/local/cpanel/3rdparty/mailman/Mailman/Bouncer.pyt<module>s0		
Back to Directory File Manager