python自动发送邮件脚本

时间:2022-10-12 08:37:54

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#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自动发送邮件的脚本源码

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

原文链接:https://blog.csdn.net/henni_719/article/details/60580593