本文实例为大家分享了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