电信内部也有G,如同猫鼠在青瓦屋顶追逐,或者,已经接近尾声,猫捕获了它的猎物,眼下正挑逗。屋里的人将衣服挂在窗外,巷子中砖瓦F的W,首尾两点之间距离没那么均匀分配,中间的社区相对密集,是嘈杂的闹市。如果有时间,哪怕你走马观花也能淘到一些W了? New Year Resolution
25

好吧。。我又Out了。。

整理资料。准备备份一次。15MB的rar包准备传到Gmail。手工操作太不靠谱,于是就自己写了一段Python脚本来完成这个工作。原理是:登录我的126邮箱,向Gmail发送带附件的Email。选择126的原因是网易公司在全国的CDN都比较快。。。

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( 'aaaaaa@126.com', ['bbbbbb@gmail.com'], f_name, f_name + '\r\n' + 'MD5: ' + md5 + '\r\nSHA1: ' + sha1, f, ('aaaaaa@126.com', 'aaaaaapwd'), 'smtp.126.com' )
print 'Done.'

比较Out的原因是,写完这个script就发现n个现成的了:Backup to EmailLifehacker上用Blat命令行实现,Javaeye上一个几乎一样功能的帖子GSend.pyGmail BackupSend To GMail(a.k.a. Gmailer),当然Gmail Drive Shell Extension也是很老的一个软件了。。令我感到安慰的是这些软件基本都达到了1MB以上的体积。。还有我的script可以算MD5。。。。不过没法自动切割文件。。

4 Responses to “[Python]一键备份到Gmail”

  1. C5 Says:

    大年三十了还写博客啊,潜水看一直觉得很有意思,浮出来拜个年哈:)

    Reply

  2. killkeeper Says:

    Geek精神万岁!
    新年快乐= =

    Reply

    electronixtar reply on 一月 26th, 2009 00:20:

    牛年牛运!
    拜年拜年~~~

    Reply

  3. [Python]一句话建立SMTP测试服务器 Says:

    [...] 非常方便测试。前几天玩Gmail的时候发现的。 [...]

Leave a Reply