python 发送邮件的四种方法汇总
这里针对smtplib做了一系列封装,可以完成以下四种场景:
- 发送纯文本的邮件
- 发送html页面的邮件
- 发送带附件文件的邮件
- 发送能展示图片的邮件
以上四种场景,已经做好了二次封装,经测试OK,使用时直接传入对应参数即可,直接上代码
importsmtplib fromemail.mime.textimportMIMEText fromemail.mime.imageimportMIMEImage fromemail.mime.applicationimportMIMEApplication fromemail.mime.multipartimportMIMEMultipart classSendEMail(object): """封装发送邮件类""" def__init__(self,host,port,msg_from,pwd): self.msg_from=msg_from self.password=pwd #邮箱服务器地址和端口 self.smtp_s=smtplib.SMTP_SSL(host=host,port=port) #发送方邮箱账号和授权码 self.smtp_s.login(user=msg_from,password=pwd) defsend_text(self,to_user,content,subject,content_type='plain'): """ 发送文本邮件 :paramto_user:对方邮箱 :paramcontent:邮件正文 :paramsubject:邮件主题 :paramcontent_type:内容格式:'plain'or'html' :return: """ msg=MIMEText(content,_subtype=content_type,_charset="utf8") msg["From"]=self.msg_from msg["To"]=to_user msg["subject"]=subject self.smtp_s.send_message(msg,from_addr=self.msg_from,to_addrs=to_user) defsend_file(self,to_user,content,subject,reports_path,filename,content_type='plain'): """ 发送带文件的邮件 :paramto_user:对方邮箱 :paramcontent:邮件正文 :paramsubject:邮件主题 :paramreports_path:文件路径 :paramfilename:邮件中显示的文件名称 :paramcontent_type:内容格式 """ file_content=open(reports_path,"rb").read() msg=MIMEMultipart() text_msg=MIMEText(content,_subtype=content_type,_charset="utf8") msg.attach(text_msg) file_msg=MIMEApplication(file_content) file_msg.add_header('content-disposition','attachment',filename=filename) msg.attach(file_msg) msg["From"]=self.msg_from msg["To"]=to_user msg["subject"]=subject self.smtp_s.send_message(msg,from_addr=self.msg_from,to_addrs=to_user) defsend_img(self,to_user,subject,content,filename,content_type='html'): ''' 发送带图片的邮件 :paramto_user:对方邮箱 :paramsubject:邮件主题 :paramcontent:邮件正文 :paramfilename:图片路径 :paramcontent_type:内容格式 ''' subject=subject msg=MIMEMultipart('related') #Html正文必须包含content=MIMEText(content,_subtype=content_type,_charset="utf8") msg.attach(content) msg['Subject']=subject msg['From']=self.msg_from msg['To']=to_user withopen(filename,"rb")asfile: img_data=file.read() img=MIMEImage(img_data) img.add_header('Content-ID','imageid') msg.attach(img) self.smtp_s.sendmail(self.msg_from,to_user,msg.as_string())
以上就是python发送邮件的四种方法汇总的详细内容,更多关于python发送邮件的资料请关注毛票票其它相关文章!