Ñò
?]Mc           @   sæ   d  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 d d
 k l Z e
 i Z y e e f Wn e j
 o 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  |  i  | ƒ } |  i o t i |  i ƒ d } n d } |  i o( |  i | ƒ } t i t d ƒ ƒ } n d } | t i d h	 |  i d 6|  i	 d 6| d 6| d 6|  i
 ƒ  d	 6|  i d
 d t ƒd 6|  i | d t ƒd 6| d 6|  i | ƒ d 6d | d |  ƒ7} | o t d ƒ }	 n d }	 |  i }
 t i |  i | ƒ |  i ƒ  t d ƒ | | ƒ } d | d <| i |  d t i ƒ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   getMemberLanguaget   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(    (    s%   /usr/lib/mailman/Mailman/Deliverer.pyt   SendSubscribeAck+   s>    

		
		
c         C   s_   |  i  } t i |  i | ƒ |  i ƒ  t d ƒ t i |  i ƒ | ƒ } | i	 |  d t
 i ƒd  S(   Ns=   You have been unsubscribed from the %(realname)s mailing listR   (   R   R   R&   R   t   GetBouncesEmailR   R   R   t   goodbye_msgR(   R   R)   (   R*   R/   R   R1   R2   (    (    s%   /usr/lib/mailman/Mailman/Deliverer.pyt   SendUnsubscribeAckR   s    		c      
   C   sñ  d |  i  |  i f } |  i ƒ  } |  i ƒ  } |  i | ƒ p t ‚ |  i | ƒ p{ t d d | |  i ƒ  ƒ |  i	 ƒ  } | p |  i
 ƒ  n z$ |  i | t i ƒ  ƒ |  i ƒ  Wd  | p |  i ƒ  n Xn |  i | ƒ } |  i | ƒ } t d ƒ } |  i | ƒ }	 t i |	 ƒ }
 |  i | ƒ } t | |
 d ƒ i |
 d ƒ } t i d h | d 6|  i  d 6|  i ƒ  d	 6| d
 6|  i | d t ƒd 6| d 6|  i ƒ  d 6d |	 d |  ƒ} t i | | | | |	 ƒ } d | d <| i |  d t i  ƒ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'   R4   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-   R2   (    (    s%   /usr/lib/mailman/Mailman/Deliverer.pyt   MailUserPasswordZ   sH    	

	
c         C   s½   | d  j o t d ƒ } n | d  j o t d ƒ } n t t i | ƒ d t i |  i ƒ ƒ} t | ƒ } t i	 |  | d | ƒ} | i
 d ƒ | i | ƒ | i | ƒ | i |  ƒ d  S(   Ns   No reason givens   (no subject)t   _charsett   tomoderatorss   multipart/mixed(   t   NoneR   R    R   R   RH   t   preferred_languageR   R   t   OwnerNotificationt   set_typet   attachR(   (   R*   R2   R-   RQ   RU   t
   attachmentt   notice(    (    s%   /usr/lib/mailman/Mailman/Deliverer.pyt   ForwardMessageŠ   s    c         C   s  |  i  ƒ  } t d d | | | ƒ t i |  t d ƒ t i t d ƒ ƒ ƒ } | i |  ƒ y& d d k l	 } | | d t
 ƒ} Wn t i j
 o d  SXt i ƒ  } t i | i ƒ z; t i | t d ƒ t i t d ƒ ƒ ƒ } | i | ƒ Wd  t i | ƒ 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.(   RA   R   R   RX   R   R   R   R(   t   Mailman.MailListR_   t   FalseR   t   MMListErrorR   t   get_translationt   set_languageRW   t   set_translation(   R*   R9   t   addresst   selfnameR2   R_   R   t   otrans(    (    s%   /usr/lib/mailman/Mailman/Deliverer.pyt   SendHostileSubscriptionNotice›   s0    					c         C   s†  |  i  } h | d 6| d 6|  i | d t ƒd 6|  i ƒ  d 6} t i d | d |  i | ƒ d |  ƒ} |  i t i	 | | ƒ } h |  i
 ƒ  d	 d
 6| d 6} d t i | |  i f } |  i | ƒ }	 t i ƒ  }
 t i |	 ƒ z t d ƒ } Wd  t i |
 ƒ Xt i | | | d |	 ƒ} | i d ƒ t | d t i |	 ƒ ƒ} | i | ƒ | i t | ƒ ƒ | i |  d | d t d | ƒd  S(   NR9   Rg   R   R   R=   s	   probe.txtR   R   s   -bouncest   bouncest   tokens   %s@%ss'   %(listname)s mailing list probe messages   multipart/mixedRT   t	   envsenderR   t   probe_token(   R   R$   R#   RK   R   R    R   t   pend_newR   t   PROBE_BOUNCERA   R   t   VERP_PROBE_FORMATR   R   Rd   Re   R   Rf   R   R&   RY   R    RH   RZ   R   R(   Rb   (   R*   t   memberR2   R9   t   dR-   Rl   t	   probedictt	   probeaddrt   ulangRi   RQ   t   outer(    (    s%   /usr/lib/mailman/Mailman/Deliverer.pyt	   sendProbeÁ   s6    	
	
	N(
   t   __name__t
   __module__R3   R6   RS   RV   R#   R]   Rj   Rx   (    (    (    s%   /usr/lib/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#   Rb   t	   NameErrorR	   (    (    (    s%   /usr/lib/mailman/Mailman/Deliverer.pyt   <module>   s    	
