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.'