
下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
#!/usr/bin/pythonfrom email.MIMEText import MIMETextfrom email.MIMEMultipart import MIMEMultipartfrom email.MIMEBase import MIMEBasefrom email import Utils,Encodersimport mimetypes,sys,smtplib,socket,getoptclass SendMail: def __init__(self,smtp_server,from_addr,to_addr,user,passwd): self.mailserver=smtp_server self.from_addr=from_addr self.to_addr=to_addr self.username=user self.password=passwd def attachment(self,filename): fd=open(filename,'rb') filename=filename.split('/') mimetype,mimeenCoding=mimetypes.guess_type(filename[-1]) if (mimeenCoding is None) or (mimetype is None): mimetype='application/octet-stream' maintype,subtype=mimetype.split('/') if maintype=='text': retval=MIMEText(fd.read(),_subtype=subtype,_charset='utf-8') else: retval=MIMEBase(maintype,subtype) retval.set_payload(fd.read()) Encoders.encode_base64(retval) retval.add_header('Content-disposition','attachment',filename=filename[-1]) fd.close() return retval def msginfo(self,msg,subject,filename): # message = """Hello,ALL #This is test message. #--Anonymous""" message=msg msg=MIMEMultipart() msg['To'] = self.to_addr msg['From'] = 'sa <'+self.from_addr+'>' msg['Date'] = Utils.formatdate(localtime=1) msg['Message-ID'] = Utils.make_msgid() if subject: msg['Subject'] = subject if message: body=MIMEText(message,_subtype='plain') msg.attach(body) #for filename in sys.argv[1:]: if filename: msg.attach(self.attachment(filename)) return msg.as_string() def send(self,msg=None,subject=None,filename=None): try: s=smtplib.SMTP(self.mailserver) try: s.login(self.username,self.password) except smtplib.SMTPException,e: print "Authentication Failed:",e sys.exit(1) s.sendmail(self.from_addr,self.to_addr.split(','),self.msginfo(msg,filename)) except (socket.gaIError,socket.error,socket.herror,smtplib.SMTPException),e: print "*** Your message may not have been sent!" print e sys.exit(2) else: print "Message successfully sent to %d recipIEnt(s)" %len(self.to_addr)if __name__=='__main__': def usage(): print """Useage:%s [-h] -s <SMTP Server> -f <FROM_ADDRESS> -t <TO_ADDRESS> -u <USER_name> -p <PASSWORD> [-S <MAIL_SUBJECT> -m <MAIL_MESSAGE> -F <ATTACHMENT>] Mandatory arguments to long options are mandatory for short options too. -f,--from= Sets the name of the "from" person (i.e.,the envelope sender of the mail). -t,--to= Addressee's address. -t "[email protected],[email protected]". -u,--user= Login SMTP server username. -p,--pass= Login SMTP server password. -S,--subject= Mail subject. -m,--msg= Mail message.-m "msg,......." -F,--file= Attachment file name. -h,--help Help documen. """ %sys.argv[0] sys.exit(3) try: options,args=getopt.getopt(sys.argv[1:],"hs:f:t:u:p:S:m:F:","--help --server= --from= --to= --user= --pass= --subject= --msg= --file=",) except getopt.GetoptError: usage() sys.exit(3) server=None from_addr=None to_addr=None username=None password=None subject=None filename=None msg=None for name,value in options: if name in ("-h","--help"): usage() if name in ("-s","--server"): server=value if name in ("-f","--from"): from_addr=value if name in ("-t","--to"): to_addr=value if name in ("-u","--user"): username=value if name in ("-p","--pass"): password=value if name in ("-S","--subject"): subject=value if name in ("-m","--msg"): msg=value if name in ("-F","--file"): filename=valueif server and from_addr and to_addr and username and password: test=SendMail(server,username,password) test.send(msg,filename)else: usage() 以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的Python 发送邮件可以添加附件全部内容,希望文章能够帮你解决Python 发送邮件可以添加附件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)