|
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
|
#_*_ coding:utf-8 _*_
import
smtplib
from
email.mime.multipart
import
MIMEMultipart
from
email.mime.text
import
MIMEText
class
Sendmail:
local_hostname
=
[
'toby-ThinkPad-T430shhhh'
]
msg
=
MIMEMultipart(
'related'
)
def
__init__(
self
,smtp_server,mail_user,mail_pass):
self
.smtp_server
=
smtp_server
self
.mail_user
=
mail_user
self
.mail_pass
=
mail_pass
def
mess(
self
,theme,message):
Sendmail.msg[
'Subject'
]
=
theme
# 邮件主题
html_msg
=
'''
<html><head><body>
<p>%s</p>
</body></head></html>
'''
%
message
html
=
MIMEText(html_msg,
'html'
,
'utf-8'
)
Sendmail.msg.attach(html)
def
files(
self
,path,filenames):
files
=
path
+
filenames
att
=
MIMEText(
open
(files,
'rb'
).read(),
'base64'
,
'utf-8'
)
att[
"Content-Type"
]
=
'application/octet-stream'
att[
"Content-Disposition"
]
=
'attachment; filename=%s'
%
filenames
Sendmail.msg.attach(att)
def
send(
self
,receiver):
smtp
=
smtplib.SMTP()
smtp.connect(
self
.smtp_server)
smtp.ehlo(
self
.local_hostname)
# 使用ehlo指令向smtp服务器确认身份
smtp.starttls()
# smtp连接传输加密
smtp.login(
self
.mail_user,
self
.mail_pass)
smtp.sendmail(
self
.mail_user, receiver, Sendmail.msg.as_string())
smtp.quit()
if
__name__
=
=
"__main__"
:
a
=
Sendmail(
'xxxx.xxxx.com'
,
'xxxxx@xxxx.com'
,
'xxxxxx'
)
#实例化一个发送邮件的对象
a.mess(
'hello world'
,
'this is test mail'
)
#定义主题,消息
a.files(
'/var/log/'
,
'syslog.2.gz'
)
#这是发送邮件 定义路径、文件名
a.send(
'xxxx@qq.com'
)
#收件人
|
本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1875021