;ò ø™®Ec@s9dZdklZdklZdklZdklZl Z dk l Z dk l Z dklZdklZlZd kZd kZd kZd kZd kZd Zed d ƒed dƒeddƒeddƒeddƒeddƒeddƒeddƒeddƒdfd„ƒYZd S(s"Manage a TMDA-style Auto Response.(smessage_from_string(s add_alias(s MessageError(sHeaders decode_header(s MIMEMessage(s MIMEMultipart(sMIMEText(s formataddrs parseaddrNsUS-ASCIIscyrillics iso-8859-5sgreeks iso-8859-7shebrews iso-8859-8sjapaneseseuc-jpskoreanseuc-krsrussianskoi8-rsthaistis-620sturkishs iso-8859-9s vietnamesesvisciis AutoResponsecBs,tZd„Zd„Zd„Zd„ZRS(NcCs#ti|ƒ|_tidjo¡ttiƒ}|o|t |iƒjo'|i d|ƒti|ƒ|_nyt |iƒ|_WqÌt tttfj o||_dt_qÌXn ||_t |ƒ|_||_||_|iidƒ|_|itjo t|_ndS(s msgin is an email.message object representing the incoming message we are responding to. bouncetext is a string of rfc822 headers/body created from a TMDA template. response_type is the type of auto response we should send ('request' is a confirmation request, 'accept' is a confirmation acceptance notice, and 'bounce' is a failure notice). recipient is the recipient e-mail address of this auto response. Normally the envelope sender address. is/[ Message body suppressed (exceeded %s bytes) ]s bodycharsetN(sUtils msg_as_stringsmsginsselfsmsgin_as_stringsDefaultss AUTORESPONSE_INCLUDE_SENDER_COPYsintsCONFIRM_MAX_MESSAGE_SIZEs max_msg_sizeslens set_payloadsmessage_from_stringsKeyErrors MessageErrors TypeErrors ValueErrors bouncetexts bouncemsgs response_types responsetypes recipientsgets bodycharsetsNonesDEFAULT_CHARSET(sselfsmsgins bouncetexts response_types recipients max_msg_size((s./TMDA/AutoResponse.pys__init__:s&    cCsddddddg}x/|D]'} |ii| ƒo|i| =qqWt|iiƒd|iƒ} dt i }|djo | |_ n3|djo%t d ƒ|_ |id jod | dªssasciisus-asciiserrorssreplacescharsets header_namesDates Message-IDs referencess message-ids s Referencess In-Reply-TosTosbulks Precedences auto-repliedsAuto-Submittedsauto-generated (failure)s TMDA/%s (%s)sX-Delivery-AgentN(=s bad_headersshsselfs bouncemsgshas_keysMIMETexts get_payloads bodycharsetstextpartsDefaultss AUTORESPONSE_INCLUDE_SENDER_COPYs bodypartssmimemsgs MIMEMultiparts responsetypesattachsmsgin_as_stringsindexsmsgins get_charsetssDEFAULT_CHARSETs rfc822parts MIMEMessagesitemssksvssplitsksplitslens hdrcharsetslowersmapsTEMPLATE_EMAIL_HEADERSs parseaddrsnamesaddrsHeadersencodes formataddrsTEMPLATE_ENCODED_HEADERSs decode_headers decoded_seqssscharsetsappendstimestimesecssUtils make_dates make_msgidsrefssgetsjoins recipientsVersionsTMDAsCODENAMEs add_headerssADDED_HEADERS_SERVERs purge_headerssPURGED_HEADERS_SERVER(sselfscharsetsrefssaddrs bad_headerssksplits rfc822parts decoded_seqs bodypartssnamestextpartshskstimesecss hdrcharsetsssv((s./TMDA/AutoResponse.pyscreategs˜              +    $ cCs,titi|idƒ|itiƒdS(sJ Inject the auto response into the mail transport system. iNN(sUtilssendmails msg_as_stringsselfsmimemsgs recipientsDefaultssBOUNCE_ENV_SENDER(sself((s./TMDA/AutoResponse.pyssendÝscCs‹dttiƒƒtiti|iƒf}t i i ti ƒ ot i ti dƒntt i iti |ƒdƒ}|iƒdS(s« Record this auto response. Used as part of TMDA's auto response rate limiting feature, controlled by Defaults.MAX_AUTORESPONSES_PER_DAY. s%s.%s.%siÀswN(sintstimesDefaultssPIDsUtilsnormalize_sendersselfs recipientsresponse_filenamesosspathsexistss RESPONSE_DIRsmakedirssopensjoinsfpsclose(sselfsfpsresponse_filename((s./TMDA/AutoResponse.pysrecordås. (s__name__s __module__s__init__screatessendsrecord(((s./TMDA/AutoResponse.pys AutoResponse9s - v (s__doc__semailsmessage_from_strings email.charsets add_aliass email.errorss MessageErrors email.headersHeaders decode_headersemail.mime.messages MIMEMessagesemail.mime.multiparts MIMEMultipartsemail.mime.textsMIMETexts email.utilss formataddrs parseaddrsosstimesDefaultssUtilsVersionsDEFAULT_CHARSETs AutoResponse(s MessageErrorstimes MIMEMessages MIMEMultipartsmessage_from_stringsDEFAULT_CHARSETsUtilsHeadersVersionsMIMETextsDefaultss decode_headers add_aliass parseaddrsoss formataddrs AutoResponse((s./TMDA/AutoResponse.pys?s0