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