码迷,mamicode.com
首页 > 编程语言 > 详细

python之用smtplib模块使用第三方smtp发送邮件(我改写成了类,方便点)

时间:2016-11-21 20:35:54      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:python

#_*_ 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‘)  #收件人


本文出自 “FA&IT运维-Q群:223843163” 博客,请务必保留此出处http://freshair.blog.51cto.com/8272891/1875021

python之用smtplib模块使用第三方smtp发送邮件(我改写成了类,方便点)

标签:python

原文地址:http://freshair.blog.51cto.com/8272891/1875021

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!