本文共 1583 字,大约阅读时间需要 5 分钟。
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' ) #收件人 |
转载地址:http://uugvl.baihongyu.com/