ó
8ü½cc           @   sä   d  Z  d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m	 Z	 d d l m
 Z
 d d	 l m Z d d
 l m Z e
 j Z y e e f Wn e k
 rÌ d Z d Z n Xd d d „  ƒ  YZ d S(   s+   Mixin class with message delivery routines.iÿÿÿÿ(   t   MIMEText(   t   MIMEMessage(   t   mm_cfg(   t   Errors(   t   Utils(   t   Message(   t   i18n(   t   Pending(   t   syslogi   i    t	   Delivererc           B   sJ   e  Z d  d „ Z d „  Z d „  Z d d e d „ Z d „  Z d „  Z	 RS(   t    c         C   s†  |  j  | ƒ } t j | ƒ |  j r> t j |  j ƒ d } n d } |  j rt |  j | ƒ } t j t d ƒ ƒ } n d } | t j	 d i	 |  j
 d 6|  j d 6| d 6| d 6|  j ƒ  d	 6|  j d
 d t ƒd 6|  j | d t ƒd 6| d 6|  j | ƒ d 6d | d |  ƒ7} | r#t d ƒ }	 n d }	 |  j
 }
 t j |  j | ƒ |  j ƒ  t d ƒ | | ƒ } d | d <| j |  d t j ƒd  S(   Ns   
R
   s    Note: Since this is a list of mailing lists, administrative
notices like the password reminder will be sent to
your membership administrative address, %(addr)s.s   subscribeack.txtt	   real_namet	   host_namet   welcomet   umbrellat	   emailaddrt   listinfot   absolutet   listinfo_urlt
   optionsurlt   passwordt   usert   langt   mlists    (Digest mode)s5   Welcome to the "%(realname)s" mailing list%(digmode)st   yess   X-No-Archivet   verp(   t   getMemberLanguageR   t   set_languaget   welcome_msgR   t   wrapt   umbrella_listt   GetMemberAdminEmailt   _t   maketextR   R   t   GetListEmailt   GetScriptURLt   Truet   GetOptionsURLt   getMemberCPAddressR   t   UserNotificationt   GetRequestEmailt   sendR   t   VERP_PERSONALIZED_DELIVERIES(   t   selft   nameR   t   digestt   textt   pluserR   t   addrR   t   digmodet   realnamet   msg(    (    s0   /export/web/mailman/mailman/Mailman/Deliverer.pyt   SendSubscribeAck+   s@    				
		
c         C   sl   |  j  } t j | ƒ t j |  j | ƒ |  j ƒ  t d ƒ t j	 |  j
 ƒ | ƒ } | j |  d t j ƒd  S(   Ns=   You have been unsubscribed from the %(realname)s mailing listR   (   R   R   R   R   R'   R   t   GetBouncesEmailR    R   R   t   goodbye_msgR)   R   R*   (   R+   R0   R   R2   R3   (    (    s0   /export/web/mailman/mailman/Mailman/Deliverer.pyt   SendUnsubscribeAckT   s    		c         C   sé  d |  j  |  j f } |  j ƒ  } |  j ƒ  } |  j | ƒ sC t ‚ |  j | ƒ sÈ t d d | |  j ƒ  ƒ |  j	 ƒ  } | sŠ |  j
 ƒ  n  z$ |  j | t j ƒ  ƒ |  j ƒ  Wd  | sÄ |  j ƒ  n  Xn  |  j | ƒ } |  j | ƒ } t d ƒ } |  j | ƒ }	 t j |	 ƒ }
 |  j | ƒ } t | |
 d ƒ j |
 d ƒ } t j d i | d 6|  j  d 6|  j ƒ  d	 6| d
 6|  j | d t ƒd 6| d 6|  j ƒ  d 6d |	 d |  ƒ} t j | | | | |	 ƒ } d | d <| j |  d t j  ƒd  S(   Ns   %s@%st   errors(   User %s had a false password for list %ss&   %(listfullname)s mailing list remindert   replaces   userpass.txtR   t   listnamet
   fqdn_lnameR   R   t   options_urlt   requestaddrt	   owneraddrR   R   R   s   X-No-ArchiveR   (!   R   R   R(   R5   t   isMembert   AssertionErrort   getMemberPasswordR   t   internal_namet   Lockedt   Lockt   setMemberPasswordR   t   MakeRandomPasswordt   Savet   UnlockR&   R   R    R   t
   GetCharSett   unicodet   encodeR!   R"   R%   R$   t   GetOwnerEmailR   R'   R)   R   R*   (   R+   R   t   listfullnameR=   t	   adminaddrt	   waslockedt   cpusert	   recipientt   subjectR   t   csetR   R.   R3   (    (    s0   /export/web/mailman/mailman/Mailman/Deliverer.pyt   MailUserPassword]   sH    	

	
c         C   s¹   | d  k r t d ƒ } n  | d  k r6 t d ƒ } n  t t j | ƒ d t j |  j ƒ ƒ} t | ƒ } t j	 |  | d | ƒ} | j
 d ƒ | j | ƒ | j | ƒ | j |  ƒ d  S(   Ns   No reason givens   (no subject)t   _charsett   tomoderatorss   multipart/mixed(   t   NoneR    R    R   R   RI   t   preferred_languageR   R   t   OwnerNotificationt   set_typet   attachR)   (   R+   R3   R.   RR   RV   t
   attachmentt   notice(    (    s0   /export/web/mailman/mailman/Mailman/Deliverer.pyt   ForwardMessage   s    c         C   s  |  j  ƒ  } t d d | | | ƒ t j |  t d ƒ t j t d ƒ ƒ ƒ } | j |  ƒ y& d d l m	 } | | d t
 ƒ} Wn t j k
 r– d  SXt j ƒ  } t j | j ƒ z; t j | t d ƒ t j t d ƒ ƒ ƒ } | j | ƒ Wd  t j | ƒ Xd  S(	   Nt   mischiefs(   %s was invited to %s but confirmed to %ss%   Hostile subscription attempt detectedsÙ   %(address)s was invited to a different mailing
list, but in a deliberate malicious attempt they tried to confirm the
invitation to your list.  We just thought you'd like to know.  No further
action by you is required.iÿÿÿÿ(   t   MailListt   locksÒ   You invited %(address)s to your list, but in a
deliberate malicious attempt, they tried to confirm the invitation to a
different list.  We just thought you'd like to know.  No further action by you
is required.(   RB   R   R   RY   R    R   R   R)   t   Mailman.MailListR`   t   FalseR   t   MMListErrorR   t   get_translationR   RX   t   set_translation(   R+   R:   t   addresst   selfnameR3   R`   R   t   otrans(    (    s0   /export/web/mailman/mailman/Mailman/Deliverer.pyt   SendHostileSubscriptionNoticež   s0    					c         C   s†  |  j  } i | d 6| d 6|  j | d t ƒd 6|  j ƒ  d 6} t j d | d |  j | ƒ d |  ƒ} |  j t j	 | | ƒ } i |  j
 ƒ  d	 d
 6| d 6} d t j | |  j f } |  j | ƒ }	 t j ƒ  }
 t j |	 ƒ z t d ƒ } Wd  t j |
 ƒ Xt j | | | d |	 ƒ} | j d ƒ t | d t j |	 ƒ ƒ} | j | ƒ | j t | ƒ ƒ | j |  d | d t d | ƒd  S(   NR:   Rg   R   R   R>   s	   probe.txtR   R   s   -bouncest   bouncest   tokens   %s@%ss'   %(listname)s mailing list probe messages   multipart/mixedRU   t	   envsenderR   t   probe_token(   R   R%   R$   RL   R   R!   R   t   pend_newR   t   PROBE_BOUNCERB   R   t   VERP_PROBE_FORMATR   R   Re   R   R    Rf   R   R'   RZ   R    RI   R[   R   R)   Rc   (   R+   t   memberR3   R:   t   dR.   Rl   t	   probedictt	   probeaddrt   ulangRi   RR   t   outer(    (    s0   /export/web/mailman/mailman/Mailman/Deliverer.pyt	   sendProbeÄ   s6    	
	
	N(
   t   __name__t
   __module__R4   R7   RT   RW   R$   R^   Rj   Rx   (    (    (    s0   /export/web/mailman/mailman/Mailman/Deliverer.pyR	   *   s   )			0	&N(    (   t   __doc__t   email.MIMETextR    t   email.MIMEMessageR   t   MailmanR   R   R   R   R   R   t   Mailman.Logging.SyslogR   R    R$   Rc   t	   NameErrorR	   (    (    (    s0   /export/web/mailman/mailman/Mailman/Deliverer.pyt   <module>   s    	
