python备份到gmail的实现代码

发布时间:2020-06-16编辑:脚本学堂
本文介绍下,python实现的备份内容到gmail中的一段代码,有需要的朋友作个参考。

python实现备份到gmail邮箱。
 

复制代码 代码示例:

代码:
#!/usr/bin/python
import smtplib, email
import os, sys
import hashlib

def send_mail(send_from, send_to, subject, text, attachment_bytes, auth=(), send_server='localhost'):
    msg = email.MIMEMultipart.MIMEMultipart()
    msg['From'] = send_from
    msg['To'] = email.Utils.COMMASPACE.join(send_to)
    msg['Date'] = email.Utils.formatdate(localtime=True)
    msg['Subject'] = subject

    msg.attach( email.MIMEText.MIMEText(text) )

    part = email.MIMEBase.MIMEBase('application', 'octet-stream')
    part.set_payload( attachment_bytes )
    email.Encoders.encode_base64(part)
    part.add_header('Content-Disposition', 'attachment; filename=%s' % subject)
    msg.attach(part)

    smtp = smtplib.SMTP(send_server)
    smtp.login(*auth)
    smtp.sendmail(send_from, send_to, msg.as_string())
    smtp.close()

for f in sys.argv[1:]:
    f_name = os.path.basename(f)
    print '+ Uploading ' + f_name
    f = open(f, 'rb').read()
    md5 = hashlib.md5()
    md5.update(f)
    md5 = md5.hexdigest()
    sha1 = hashlib.sha1()
    sha1.update(f)
    sha1 = sha1.hexdigest()

    send_mail(
        'username@163.com',
        ['username@gmail.com'],
        f_name,
        f_name + 'rn' + 'MD5: ' + md5 + 'rnSHA1: ' + sha1,
        f,
        ('username@163.com', 'passwd'),
        'smtp.163.com' )

print 'Done.'