Viewing File: /opt/alt/python35/lib64/python3.5/__pycache__/smtplib.cpython-35.opt-2.pyc



]h@sQddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Zddddddd	d
ddd
dgZdZdZdZdZdZejdejZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdd	d	eZ Gdd
d
eZ!GdddeZ"d dZ#d!d"Z$d#d
Z%d$d%Z&d&d'Z'yddl(Z(Wne)k
r3d(Z*YnXd)Z*Gd*ddZ+e*rvGd+d,d,e+Z,ej-d,d-Z.Gd.d/d/e+Z/e0d0krMd1d2Z1e1d3Z2e1d4j3d5Z4e5d6d7Z6x%ej7j8Z9e9rPe6e9Z6qWe5d8e:e6e+d9Z;e;j<d:e;j=e2e4e6e;j>dS);N)body_encode
SMTPExceptionSMTPServerDisconnectedSMTPResponseExceptionSMTPSenderRefusedSMTPRecipientsRefused
SMTPDataErrorSMTPConnectError
SMTPHeloErrorSMTPAuthenticationError	quoteaddr	quotedataSMTPiz
s
i z	auth=(.*)c@seZdZdS)rN)__name__
__module____qualname__rr,/opt/alt/python35/lib64/python3.5/smtplib.pyrGsc@seZdZdS)SMTPNotSupportedErrorN)rrrrrrrrJsrc@seZdZdS)rN)rrrrrrrrQsc@seZdZddZdS)rcCs%||_||_||f|_dS)N)	smtp_code
smtp_errorargs)selfcodemsgrrr__init__bs		zSMTPResponseException.__init__N)rrrrrrrrrYs	c@seZdZddZdS)rcCs1||_||_||_|||f|_dS)N)rrsenderr)rrrrrrrrns			zSMTPSenderRefused.__init__N)rrrrrrrrrgsc@seZdZddZdS)rcCs||_|f|_dS)N)
recipientsr)rrrrrr|s	zSMTPRecipientsRefused.__init__N)rrrrrrrrrtsc@seZdZdS)rN)rrrrrrrrsc@seZdZdS)r	N)rrrrrrrr	sc@seZdZdS)r
N)rrrrrrrr
sc@seZdZdS)rN)rrrrrrrrscCsStjj|\}}||fdkrK|jjdrC|Sd|Sd|S)N<z<%s>)rr)emailutils	parseaddrstrip
startswith)
addrstringdisplaynameaddrrrrrscCs2tjj|\}}||fdkr.|S|S)Nr)rr)r!r"r#)r&r'r(rrr
_addr_onlysr)cCs"tjddtjdt|S)Nz(?m)^\.z..z(?:\r\n|\n|\r(?!\n)))resubCRLF)datarrrr
scCstjdd|S)Ns(?m)^\.s..)r*r+)Zbindatarrr_quote_periodssr.cCstjdt|S)Nz(?:\r\n|\n|\r(?!\n)))r*r+r,)r-rrr	_fix_eolssr/FTc@s8eZdZdZdZdZdZdZdZe	Z
dddejdddZ
ddZd	d
ZddZd
dZddZdddddZddZdddZddZdddZdddZdddZd d!Zdd"d#Zd$d%Zd&d'Zd(d)Zgd*d+Zgd,d-Z d.d/Z!d0d1Z"e"Z#d2d3Z$d4d5Z%d6d7d8d9Z&dd:d;Z'dd<d=Z(dd>d?Z)d6d7d@dAZ*ddddBdCZ+ggdDdEZ,ddgidFdGZ-dHdIZ.dJdKZ/dS)LrrNehlorc
Cs||_||_i|_d|_||_|rp|j||\}}|dkrp|jt|||dk	r||_nht	j
}d|kr||_nDd}	yt	jt	j}	Wnt	j
k
rYnXd|	|_dS)Nascii.z	127.0.0.1z[%s])_hosttimeoutesmtp_featurescommand_encodingsource_addressconnectcloser	local_hostnamesocketgetfqdn
gethostbynamegethostnamegaierror)
rhostportr;r5r8rrZfqdnr(rrrrs*					
z
SMTP.__init__cCs|S)Nr)rrrr	__enter__szSMTP.__enter__cGs_zMy4|jd\}}|dkr6t||Wntk
rKYnXWd|jXdS)NZQUIT)docmdrrr:)rrrmessagerrr__exit__s
	z
SMTP.__exit__cCs
||_dS)N)
debuglevel)rrHrrrset_debuglevelszSMTP.set_debuglevelcGsN|jdkr7ttjjj|dtjnt|dtjdS)Nfile)rHprintdatetimeZnowtimesysstderr)rrrrr_print_debug's(zSMTP._print_debugcCsG|jdkr+|jd||f|jtj||f||jS)Nrzconnect: to)rHrQr8r<create_connection)rrArBr5rrr_get_socket-szSMTP._get_socket	localhostcCs>|r||_|r|jd|jdkr|jd}|dkr|d|||dd}}yt|}Wntk
rtdYnX|s|j}|jdkr|jd||f|j	|||j
|_d|_|j
\}}|jdkr4|jdt|||fS)N:rrJznonnumeric portzconnect:)r8findrfindint
ValueErrorOSErrordefault_portrHrQrSr5sockrKgetreplyrepr)rrArBr8irrrrrr95s(	%%
		zSMTP.connectcCs|jdkr%|jdt|t|dr|jrt|tr^|j|j}y|jj	|Wqt
k
r|jtdYqXntddS)Nrzsend:r\zServer not connectedzplease run connect() first)
rHrQr^hasattrr\
isinstancestrencoder7sendallrZr:r)rsrrrsendWs

z	SMTP.sendcCsC|dkrd|tf}nd||tf}|j|dS)Nrz%s%sz%s %s%s)r,rf)rcmdrrbrrrputcmdiszSMTP.putcmdcCsg}|jdkr*|jjd|_xEy|jjtd}WnEtk
r}z%|jtdt|WYdd}~XnX|s|jtd|j	dkr|j
dt|t|tkr|jt
dd|j|d	djd
|dd}yt|}Wntk
rVd}PYnX|dd	dkr-Pq-Wd
j|}|j	dkr|j
d||f||fS)NrbrJz Connection unexpectedly closed: zConnection unexpectedly closedrzreply:izLine too long.s 	
-s
zreply: retcode (%s); Msg: %a)rKr\makefilereadline_MAXLINErZr:rrbrHrQr^lenrappendr$rXrYjoin)rresplineerZerrcodeerrmsgrrrr]qs>

#

 
z
SMTP.getreplycCs|j|||jS)N)rhr])rrgrrrrrEsz
SMTP.docmdcCs>|jd|p|j|j\}}||_||fS)Nhelo)rhr;r]	helo_resp)rnamerrrrrrxs	z	SMTP.heloc
Csi|_|j|j|p!|j|j\}}|dkrkt|dkrk|jtd||_|dkr||fSd|_	|jj
djd}|d=x|D]}tj
|}|r|jjddd	|jdd|jd<qtj
d
|}|r|jdj}|j|jddj}	|dkr|jj|dd	|	|j|<q|	|j|<qW||fS)
NrJrzServer not connectedzlatin-1
authr z((?P<feature>[A-Za-z0-9][A-Za-z0-9\-]*) ?featurerm)r6rhehlo_msgr;r]rqr:r	ehlo_resp
does_esmtpdecodesplit
OLDSTYLE_AUTHmatchgetgroupsr*grouplowerstringendr$)
rrzrrrteachZ
auth_matchmrparamsrrrr0s2	
	
	
1"'z	SMTP.ehlocCs|j|jkS)N)rr6)roptrrrhas_extnsz
SMTP.has_extncCs|jd||jdS)NhelprJ)rhr])rrrrrrsz	SMTP.helpcCsd|_|jdS)Nr1rset)r7rE)rrrrrs	z	SMTP.rsetcCs'y|jWntk
r"YnXdS)N)rr)rrrr_rsets
z
SMTP._rsetcCs
|jdS)Nnoop)rE)rrrrrsz	SMTP.noopcCsd}|rh|jrhtdd|DrU|jdrId|_ntdddj|}|jdd	t||f|jS)
Nrcss!|]}|jdkVqdS)smtputf8N)r).0xrrr	<genexpr>szSMTP.mail.<locals>.<genexpr>rzutf-8z SMTPUTF8 not supported by serverr~mailz	FROM:%s%s)	ranyrr7rrsrhrr])rroptions
optionlistrrrrs		 z	SMTP.mailcCsRd}|r(|jr(ddj|}|jddt||f|jS)Nrr~rcptzTO:%s%s)rrsrhrr])rZreciprrrrrrs
 z	SMTP.rcptcCs|jd|j\}}|jdkrD|jd||f|dkrbt||nt|trt|jd}t	|}|ddt
kr|t
}|dt
}|j||j\}}|jdkr|jd||f||fSdS)	Nr-rzdata:ibr1.)rhr]rHrQrrarbr/rcr.bCRLFrf)rrrreplqrrrr-!s"



z	SMTP.datacCs |jdt||jS)Nvrfy)rhr)r])raddressrrrverify>szSMTP.verifycCs |jdt||jS)Nexpn)rhr)r])rrrrrrEsz	SMTP.expncCs|jdkr|jdkrd|jdko?dkns|j\}}d|komdknst||dS)Nri+)ryrr0rxr
)rrrtrrrehlo_or_helo_if_neededLs
&zSMTP.ehlo_or_helo_if_neededinitial_response_okTc	Cs|j}|r|nd}|dk	rkt|jddd}|jd|d|\}}n|jd|\}}|dkrtj|}t||jddd}|j|\}}|d	kr||fSt||dS)
Nr1ZeolrZAUTHr~iN)rr)upper
encode_base64rcrEbase64Zdecodebytesr)	rZ	mechanismZ
authobjectrZinitial_responseresponserrt	challengerrrr}]s#
z	SMTP.authcCs@|dkrdS|jdtj|jjd|djS)Nr~r1md5)userhmacZHMACpasswordrc	hexdigest)rrrrr
auth_cram_md5szSMTP.auth_cram_md5cCsd|j|jfS)Nz%s%s)rr)rrrrr
auth_plainszSMTP.auth_plaincCs|dkr|jS|jSdS)N)rr)rrrrr
auth_loginszSMTP.auth_logincs+|j|jds%td|jdjdddg}fdd|D}|srtd|||_|_x|D]}d	|jj	d
d}yA|j
|t||d|\}}	|dkr||	fSWqtk
r}
z|
}WYdd}
~
XqXqW|dS)Nr}z,SMTP AUTH extension not supported by server.zCRAM-MD5ZPLAINZLOGINcs"g|]}|kr|qSrr)rr})advertised_authlistrr
<listcomp>s	zSMTP.login.<locals>.<listcomp>z(No suitable authentication method found.Zauth_-_rr)rr)
rrrr6rrrrrreplacer}getattrr)rrrrZpreferred_authsZauthlistZ
authmethodZmethod_namerrtrvZlast_exceptionr)rrlogins*
	
z
SMTP.logincCs+|j|jds%td|jd\}}|dkrtsXtd|dk	r||dk	r|td|dk	r|dk	rtd|dkrtjd|d	|}|j	|j
d
|j|_
d|_d|_
d|_i|_d|_nt||||fS)Nstarttlsz+STARTTLS extension not supported by server.ZSTARTTLSr2z&No SSL support included in this Pythonz4context and keyfile arguments are mutually exclusivez5context and certfile arguments are mutually exclusivecertfilekeyfileserver_hostnamer)rrrrE	_have_sslRuntimeErrorrYssl_create_stdlib_contextwrap_socketr\r4rKryrr6rr)rrrcontextrtZreplyrrrrs0
						z
SMTP.starttlscCs|jg}t|tr4t|jd}|jr|jdrc|jdt|x|D]}|j|qjW|j	||\}}	|dkr|dkr|j
n
|jt||	|i}
t|tr|g}xp|D]h}|j
||\}}	|dkrE|dkrE||	f|
|<|dkr|j
t|
qWt|
t|kr|jt|
|j|\}}	|dkr|dkr|j
n
|jt||	|
S)Nr1sizezsize=%dr{i)rrarbr/rcrrrrrqrr:rrrrr-r)r	from_addrto_addrsrmail_optionsrcpt_optionsZ
esmtp_optsoptionrrtZsenderrsrrrrsendmailsF@
	


	




z
SMTP.sendmailcCs|j|jd}|dkr.d}n't|dkrId}ntd|dkr|d|kr||dn||d}|dkrdd	||d
||d||dfD}d
d	tjj|D}tj|}	|	d=|	d=d}
y#dj|f|j	dWn3t
k
rg|jds]tdd}
YnXt
jx}|
rtjj|d|jjdd}|ddg7}ntjj|}|j|	dd|j}
WdQRX|j|||
||S)NzResent-DaterrJzResent-z0message has more than one 'Resent-' header blockZSenderFromcSs"g|]}|dk	r|qS)Nr)rfrrrrs	z%SMTP.send_message.<locals>.<listcomp>ToZBccZCccSsg|]}|dqS)rJr)rarrrrs	z
Resent-BccFr1rzOne or more source or delivery addresses require internationalized email support, but the server does not advertise the required SMTPUTF8 capabilityTpolicyutf8ZSMTPUTF8z
BODY=8BITMIMElinesepz
)rZget_allrqrYr!r"ZgetaddressescopyrsrcUnicodeEncodeErrorrrioBytesIO	generatorZBytesGeneratorrZcloneZflattengetvaluer)rrrrrrZresentZ
header_prefixZaddr_fieldsZmsg_copy
internationalZbytesmsggZflatmsgrrrsend_messagexsH
		#
		zSMTP.send_messagecCsPz&|j}d|_|r%|jWd|j}d|_|rK|jXdS)N)rKr:r\)rrKr\rrrr:s				z
SMTP.closecCs?|jd}d|_|_i|_d|_|j|S)NquitF)rErryr6rr:)rresrrrrs		
z	SMTP.quit)0rrrrHrKryrrr	SMTP_PORTr[r<_GLOBAL_DEFAULT_TIMEOUTrrCrGrIrQrSr9rfrhr]rErxr0rrrrrrrr-rrrrr}rrrrrrrr:rrrrrrs\	-
	"1
3'	B4gK
c
@sIeZdZeZdddddejddddZddZdS)SMTP_SSLrrNc		Cs|dk	r$|dk	r$td|dk	rH|dk	rHtd||_||_|dkr~tjd|d|}||_tj||||||dS)Nz4context and keyfile arguments are mutually exclusivez5context and certfile arguments are mutually exclusiverr)rYrrrrrrr)	rrArBr;rrr5r8rrrrrs				zSMTP_SSL.__init__cCsb|jdkr%|jd||ftj||f||j}|jj|d|j}|S)Nrzconnect:r)rHrQr<rRr8rrr4)rrArBr5Z
new_socketrrrrSszSMTP_SSL._get_socket)	rrr
SMTP_SSL_PORTr[r<rrrSrrrrrs	ric@sCeZdZdZdeddddZddddd	ZdS)
LMTPZlhlorNcCs#tj|||d|d|dS)Nr;r8)rr)rrArBr;r8rrrr sz
LMTP.__init__rTrcCs|ddkr)tj|||d|Sy8tjtjtj|_d|_|jj|WnStk
r|jdkr|j	d||jr|jj
d|_YnX|j\}}|jdkr|j	d|||fS)Nr/r8z
connect fail:zconnect:)rr9r<AF_UNIXSOCK_STREAMr\rKrZrHrQr:r])rrArBr8rrrrrr9&s"	
	
	zLMTP.connect)rrrr	LMTP_PORTrr9rrrrrs	r__main__cCs4tjj|dtjjtjjjS)Nz: )rOstdoutwriteflushstdinror$)promptrrrr@s
rrr,zEnter message, end with ^D:rzMessage length is %drTrJ)?r<rr*Zemail.utilsr!Z
email.messageZemail.generatorrrrrMrOZemail.base64mimerr__all__rrr,rrpcompileIrrZrrrrrrrr	r
rrr)r
r.r/rImportErrorrrrrrrrrrZfromaddrrZtoaddrsrLrrrorurqZserverrIrrrrrr<module>,s			


	
!,
/


Back to Directory File Manager