python自动发送邮件脚本

yipeiwu_com6年前Python基础

本文实例为大家分享了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自动发送邮件的脚本源码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python运用pygame库实现双人弹球小游戏

python运用pygame库实现双人弹球小游戏

使用python pygame库实现一个双人弹球小游戏,两人分别控制一个左右移动的挡板用来拦截小球,小球会在两板间不停弹跳,拦截失败的一方输掉游戏,规则类似于简化版的乒乓球。 因为是第一...

python简单实现AES加密和解密

本文实例为大家分享了python实现AES加密和解密的具体代码,供大家参考,具体内容如下 参考:python实现AES加密和解密 AES加密算法是一种对称加密算法, 他有一个密匙, 即用...

Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程

Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程

Python是支持可视化编程,即编写gui程序,你可以用它来编写自己喜欢的桌面程序。使用wxPython来做界面非常的简单,只是不能像C#一样拖动控件,需要自行写代码布局。在完成编写之后...

python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序

python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序

本文通过Python3+PyQt5实现《python Qt Gui 快速编程》这本书的page Designer应用程序,采用QGraphicsView,QGraphicsScene,Q...

python使用KNN算法手写体识别

本文实例为大家分享了用KNN算法手写体识别的具体代码,供大家参考,具体内容如下 #!/usr/bin/python #coding:utf-8 import numpy as...