Python smtp gmail发送邮件(to,cc)

简单邮件发送

import smtplib
import psycopg2
class sendEmail:

    def __init__(self,free,used,usedpercent):
        self.free=free
        self.used=used
        self.usedpercent=usedpercent
    def getInformation(self):
        con=psycopg2.connect(dbname='vsphere_info',user='vsphere',password='viadmin',host='*****',port=5432)
        cursor=con.cursor()

        cursor.execute("""SELECT
                                    SUM(free) AS "Available Share Storage", SUM(capability) - SUM(free) AS "Usaged Storage"
                                    FROM sharestore """)
        result=cursor.fetchall()
        for row in result:
            self.free = row[0]
            self.used = row[1]
        cursor.close()
        con.close()
    def convertStorage(self,num):
        for x in ['bytes','KB','MB','GB']:
            if num<1024:
                return "%3.1f%s" % (num,x)
            num/=1024

        return "%3.1f%s" % (num,'TB')


    def percentage(self):
        total=self.free+self.used
        self.usedpercent="%2.2f"%(self.used/total)

    def sendEmail(self,to_addr_list,cc_addr_list,Subject,message):

        gmail_user = '***@gmail.com'
        gmail_password = '***'
        server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
        server.ehlo()
        server.login(gmail_user, gmail_password)
        header = ''
        header += 'To: %s\n' % ','.join(to_addr_list)
        header +='CC: %s\n' % ','.join(cc_addr_list)
        header += 'Subject: %s\n\n' % Subject
        message = header + message
        #抄送给cc_addr_list
        server.sendmail(gmail_user, to_addr_list+cc_addr_list, message)

    def main(self):
        self.getInformation()
        self.percentage()
        freeed=self.convertStorage(self.free)
        use=self.convertStorage(self.used)
        if float(self.usedpercent)>0.85:
            message="Free Total:%s\nUsed Total:%s\nUsed Percent:%s\n"%(freeed,use,self.usedpercent)
            self.sendEmail(to_addr_list=['***.com','***.com'],
            			cc_addr_list=['***.com','***.com']
                         Subject='testEmail',
                         message=message)
if __name__=="__main__":
    ee=sendEmail(0.0,0.0,0.0)
    ee.main()

发送HTML邮件

import smtplib
import psycopg2
class sendEmail:

    def __init__(self,free,used,usedpercent):
        self.free=free
        self.used=used
        self.usedpercent=usedpercent
    def getInformation(self):
        con=psycopg2.connect(dbname='vsphere_info',user='vsphere',password='viadmin',host='**',port=5432)
        cursor=con.cursor()

        cursor.execute("""SELECT
                                    SUM(free) AS "Available Share Storage", SUM(capability) - SUM(free) AS "Usaged Storage"
                                    FROM sharestore """)
        result=cursor.fetchall()
        for row in result:
            self.free = row[0]
            self.used = row[1]
        cursor.close()
        con.close()
    def convertStorage(self,num):
        for x in ['bytes','KB','MB','GB']:
            if num<1024:
                return "%3.1f%s" % (num,x)
            num/=1024

        return "%3.1f%s" % (num,'TB')


    def percentage(self):
        total=self.free+self.used
        self.usedpercent="%2.2f"%(self.used/total)

    def sendEmail(self,to_addr_list,Subject,message):

        from email.mime.multipart import MIMEMultipart
        from email.mime.text import MIMEText

        # me == my email address
        # you == recipient's email address
        me = "**@gmail.com"
        you = "**@ra.rockwell.com"

        # Create message container - the correct MIME type is multipart/alternative.
        msg = MIMEMultipart('alternative')
        msg['Subject'] = "Link"
        msg['From'] = me
        msg['To'] = you

        # Create the body of the message (a plain-text and an HTML version).
        text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.python.org"
        html = """\
                
                  
                  
                    

Hi!
How are you?
Here is the link you wanted.

"""
# Record the MIME types of both parts - text/plain and text/html. part1 = MIMEText(text, 'plain') part2 = MIMEText(html, 'html') # Attach parts into message container. # According to RFC 2046, the last part of a multipart message, in this case # the HTML message, is best and preferred. msg.attach(part1) msg.attach(part2) gmail_user = '**@gmail.com' gmail_password = '**' server = smtplib.SMTP_SSL('smtp.gmail.com', 465) # server.ehlo() server.login(gmail_user, gmail_password) server.sendmail(me,you, msg.as_string()) # gmail_user = '***@gmail.com' # gmail_password = '***' # server = smtplib.SMTP_SSL('smtp.gmail.com', 465) # # server.ehlo() # server.login(gmail_user, gmail_password) # header = '' # header += 'To: %s\n' % ','.join(to_addr_list) # header += 'Subject: %s\n\n' % Subject # message = header + message # server.sendmail(gmail_user, to_addr_list, message) def main(self): self.getInformation() self.percentage() freeed=self.convertStorage(self.free) use=self.convertStorage(self.used) if float(self.usedpercent)>0.85: message="Free Total:%s\nUsed Total:%s\nUsed Percent:%s\n"%(freeed,use,self.usedpercent) self.sendEmail(to_addr_list=['*.com','*.com'], Subject='testEmail', message=message) if __name__=="__main__": ee=sendEmail(0.0,0.0,0.0) ee.main()

添加附件

源码地址

你可能感兴趣的:(Python)