欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python自动发送邮件脚本

程序员文章站 2022-08-08 11:46:03
本文实例为大家分享了python自动发送邮件的具体代码,供大家参考,具体内容如下 #coding=utf8 ''''' 该模块使自动发送邮件的模块...

本文实例为大家分享了python自动发送邮件的具体代码,供大家参考,具体内容如下

#coding=utf8  
''''' 
该模块使自动发送邮件的模块 
模块初始化时需要设置: 
sender:发送人 
reciver:接收者 
smtpserver:发送人的服务器类型 
password:登录命令 
subject:邮件标题 
datafile:数据文件 
 
文件包含六个函数: 
senderlogin():连接服务并登录服务 
setsubject():设置邮件标题 
sendmessage():邮件发送的信息 
sendmail():发送邮件 
quitmail():关闭邮件服务 
run():执行登录、设置邮件标题、设置邮件发送信息、发送邮件、关闭邮件服务 
 
''' 
import smtplib  
from mangerresultfile import filemanger  
from email.mime.text import mimetext  
from email.mime.multipart import mimemultipart  
class automail(object):   
  def __init__(self,sender,reciver,smtpserver, password,subject,datafile): 
    #设置发送人 
    self.sender=sender 
    #设置登录密码 
    self.password=password 
    #设置接收者 
    self.reciver=reciver 
    #设置邮件标题 
    self.subject=subject 
    #设置附件路径 
    self.datafile=datafile 
    #设置发送邮件服务 
    self.smtpserver=smtpserver 
    #创建一个smtp实例 
    self.smtp = smtplib.smtp()  
    #设置下发送信息包含的类型的信息体 
    self.msgroot =mimemultipart('related')  
    #调用run函数运行 
    self.run()  
   
  #发送用户登录 
  def senderlogin(self): 
    #通过smtp实例的connect方法连接发送邮件服务 
    self.smtp.connect(self.smtpserver)  
    #通过smtp实例的login方法登录发送邮件服务  
    self.smtp.login(self.sender,self.password)  
     
  def setsubject(self): 
    #设置邮件标题 
    self.msgroot['subject']=self.subject 
     
  def sendmessage(self): 
    #读取附件信息到att中 
    att =mimetext(open( self.datafile, 'rb').read(), 'base64', 'utf8')  
    #设置att的内容类型 
    att["content-type"]= 'application/octet-stream'  
    #给附件设置一个文件名 
    att["content-disposition"]= 'attachment; '+'filename='+filemanger().getlastfile()+'' 
    self.msgroot.attach(att)  
     
  def sendmail(self): 
    #发送邮件 
    self.smtp.sendmail(self.sender,self.reciver,self.msgroot .as_string())  
   
  def quitmail(self): 
    #退出邮件服务 
    self.smtp.quit()  
   
  def run(self):          
    try: 
      self.senderlogin()  
      self.setsubject() 
      self.sendmessage() 
      self.sendmail() 
      self.quitmail() 
      print "send success...." 
    except exception,e: 
      print e 
          
def test():  
  #创建一个filemanger实例 
  fm=filemanger()    
  sender ='wang@163.com'  
     
  receiver ='e.wang@163.com'  
     
  smtpserver ='smtp.163.com'  
   
  password =' '  
  ject= 'xql autom excut project' 
  filpath=fm.getlastfilewithpath() 
  try: 
    automail(sender,receiver,smtpserver,password,ject,filpath) 
  except exception,e: 
    print e 
 
if __name__=="__main__": 
  test() 

完整项目源码下载链接:python自动发送邮件的脚本源码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。