Gmail to wordpress:通过mail更新wordpress

个人比较习惯用email更新博客,写日记用的blogger一直是手机写邮件更新,于是打算这个工作blog也要这么搞

wordpress自身有个通过邮件更新的功能,但是很弱,不支持附件.所以俺再次拿python做练习

实现方式:

发布blog时只要写信给somebody+xxoo@gmail.com

脚本会定时检查somebody@gmail邮箱,

取出收信人是somebody+xxoo@gmail.com的未读邮件(加xxoo为了防止垃圾邮件),然后将邮件正文中引用的图片取出,上传到blog或着picasa,将返回的地址作为图片的新地址,然后通过wordpress的metaWeblog api 发布到wordpress

实现特性:

  • 可以通过添加"[[tag:t1,t2,t3]]"设定文章的标签
  • 可以通过添加"[[cat:c1,c2]]"设定文章分类
  • 可以添加"[[end]]"标记文章结尾,标记后面的字符将被忽略
  • 可以添加[[html]][[/html]]块发布纯html代码块
  • 可以将邮件中的图片提取,并上传到picasa或者wp
(备注:"[["实际使用用时要用三个,即"[[[xxxx]]]"这里用两个是因为本文也是通过这个脚本发布的)

运行环境:
python2.6(ubuntu)(其他版本未测),gdata库

部分代码:

def after_publish( self, mid ):

        self.mail.read( mid )


#实例化一个Gmail2Blog,参数依次为:gmail帐号,gmail密码,wp帐号,wp密码,blog的xmlrpc地址
myG2B = Gmail2Blog( 'somebody@gmail.com', 'xxxx', 'admin', 'xxxx', 'http://xxoo.com/xmlrpc.php' )



#将处理完的邮件标记为已读
myG2B.publish_callback = after_publish

#设置图片的上传方式,'picasa':上传到账户的picasa相册,'wp':上传到blog
myG2B.upload2 = 'picasa'
    
while True:
    #将收件箱中发送给'somebody+blog@gmail.com'的未读邮件发送到blog


    myG2B.publish_mail( 'INBOX' , '(UNSEEN) (TO \"somebody+blog@gmail.com\")' )
    #每隔十分钟检查一次
    time.sleep( 60 * 10 )

源码下载:
非常不靠谱版本(等靠谱了就放到vps上长期运行)

gmail2blog-sbeta.tar.gz

Gmail撰写截图:

screenshot_016.png

讨论

  1. FREEZhao

    Hi 你好,我也使打算用email来更新wp,请问您具体是如何实现的?我现在正在组建一个多用户更新的blog我希望通过email来更新,这样比较方便,非常期待您的回信!!!!!感谢您的帮助!

  2. 小鹿

    哦,我写的这个脚本需要在一个支持python的server上长期运行才可以,呵呵,如果有条件我可以帮助配置一下~

  3. stonehoo

    现在好使了吗?

  4. 小鹿

    yes,我已经把它做成一个网站了,哈哈,http://www.blogo2.com

  5. Anymaker

    能不能告诉我具体怎么配置啊,方便的话加个Q详细讨论

加入讨论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据