使用邮件来更新网易博客

有不少博客支持邮件发布,比如Blogger和网易博客。因此使用python的smtplib来写了一个很简单的博客程序,使用wxPython做的图形界面,目前还仅支持发布纯文本…

发送到Blogger中文会乱码,不知道为什么。但是邮件里面又不是乱码。也许是网易的编码不一样,可是Google的邮件要SSL验证的,我不会。所以现在要使用中文的话只好用网易博客了…


截图:

Windows:


Linux:



Mac OS X:



源代码:

#!usr/bin/env python
# -*- coding: utf-8 -*-
#Filename: EM2Blog.py

"此程序可以通过未经SSL验证的网易邮箱快速发送一封邮件给固定收件人,\
达到诸如更新Blogger或者网易博客的目的。"

from smtplib import SMTP
import wx

#也可以更改为从配置文件导入信息:

#import ConfigParser
#config = ConfigParser.ConfigParser()
#config.readfp(open('config.ini'))
#smtpsvr = config.get('SMTP','server')
#name = config.ger('SMTP','username')
#pw= config.ger('SMTP','password')
#from_= config.ger('SMTP','from')
#blogmail= config.ger('SMTP','to')

#配置文件config.ini内容格式:

#[SMTP]
#server=smtp.163.com
#username=username@163.com
#password=password
#from=username@163.com
#to=blogmail@188.com

smtpsvr = 'smtp.163.com'
name = '@163.com'
pw = ''
from_ = '@163.com'
blogmail = 'blogmail@188.com'
#网易的邮件博客发布收件人都是blogmail@188.com

class Frame(wx.Frame):
    
    def __init__(self):
        wx.Frame.__init__(self, None, -1, "Blog发布程序",
                          size=(800,600))
        panel = wx.Panel(self, -1)
        #"self."这个东西很重要,有了它我才能在之后引用并获取其中被更改的内容
        #否则后文获得文本控件内容的.GetValue()方法会失败。
        self.subject = wx.TextCtrl(panel, -1,"标题",
                                   size=(680,23),
                                   pos=(10,10),
                                   style=wx.TE_CENTER)#标题居中比较好看
        self.body = wx.TextCtrl(panel, -1,"正文",
                                size=(765,515),
                                pos=(10,40),
                                style=wx.TE_MULTILINE)
        self.button = wx.Button(panel, -1, "发布", pos=(699,9))
        self.Bind(wx.EVT_BUTTON, self.OnSendClick, self.button)
        self.Center()
    def OnSendClick(self, event):
        origHdrs = ['From:'+from_, 'To:'+blogmail,
                    #我使用的wxPython是unicode版本,输入的中文需要转码,否则报错
                    'Subject:'+self.subject.GetValue().encode('gb2312')]
        origBody = [self.body.GetValue().encode('gb2312'), ]
        #origMsg是把邮件头和邮件正文组合成一个可以发送的消息
        #两部分之间空行隔开,从而符合RFC 2822的标准
        origMsg = '\r\n\r\n'.join(['\r\n'.join(origHdrs),
                                   '\r\n'.join(origBody)])
        sendSvr = SMTP(smtpsvr)
        wx.EVT_BUTTON = sendSvr.login(name,pw)
        errs = sendSvr.sendmail(from_, blogmail, origMsg)
        sendSvr.quit()

if __name__ == '__main__':
    app = wx.PySimpleApp()
    frame = Frame()
    frame.Show()
    app.MainLoop()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值