python实现kindle每天推送博客1----kindle推送原理,python实现qq邮箱登录及邮件发送

kindle想每天看新闻,看博客,

其实自己用python写个代码就能很简单实现了。


1.kindle推送原理

kindle不仅可以买书看书,还可以自己推送内容大笑

原理很简单,往你个人的kindle邮箱发邮件,附件为你要推送的内容即可。

登录亚马逊官网,点击管理我的内容和设备,进入设置,找到

〖发送至Kindle〗电子邮箱,
记这个邮箱为A
然后你需要有个自己的常用邮箱,我是qq邮箱,记这个邮箱为B
把B添加到
已认可的发件人电子邮箱列表
至此已完成设置。

注意kindle推送的规则:
Kindle个人文档服务目前只能转换并发送以下类型的文档:
Microsoft Word (.doc, .docx) 
RTF文件(.rtf) 
HTML(.htm, .html)
TXT文件(.txt) 
Zip, x-zip压缩文件
Mobi格式电子书 

JPEG (.jpg), GIF (.gif), Bitmap (.bmp) 和 PNG (.png) 格式的图片。
Adobe PDF (.pdf)文档可维持原文件格式,发送至您的Kindle。

Adobe PDF (.pdf)文档可转换为Kindle格式发送,目前处于试用阶段。

2.qq邮箱登录

这里需要用到python的email模块

网上有很多例子,我也上下我的例子

#!/usr/bin/env python
#coding=utf-8
#
#   Copyright 2017 liuxinxing
#

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import zipfile
import time

file_dir=os.path.dirname(os.path.realpath(__file__))

class sendmail():
    def __init__(self):
        self.msg = MIMEMultipart()
        self.to_email ='aaaaa@kindle.cn'
        self.from_email ='bbbbbb@qq.com'
        self.email_subject = 'kindle 推送邮件'
        self.smtpServer ='smtp.qq.com'
        self.sslPort = 465


    # 加邮件头
    def gen_msghead(self):
        self.msg['to'] = self.to_email
        self.msg['from'] = self.from_email
        self.msg['subject'] = self.email_subject

    # 添加附件,可多次添加
    def add_attachment(self, dir):
        att1 = MIMEText(open(dir, 'rb').read(), 'base64', 'gb2312')
        att1["Content-Type"] = 'application/octet-stream'
        att1["Content-Disposition"] = 'attachment; filename=%s'%os.path.basename(dir)
        self.msg.attach(att1)

    #发送邮件
    def send(self):
        try:
            server = smtplib.SMTP_SSL(self.smtpServer, self.sslPort)
            server.login('bbbbbbb','sssssss')#XXX为用户名,XXXXX为密码
            server.sendmail(self.msg['from'], self.msg['to'],self.msg.as_string())
            server.quit()
            print '发送成功'
        except Exception, e:
            print str(e)

if __name__=="__main__":
    a=sendmail()
    a.gen_msghead()
    # a.add_attachment(file_dir+"/data/")
    a.send()

代码里to email就是A,from email就是B

网上很多都是直接账号密码登录,但是实际很多邮箱为了安全,smtp登录都要用授权码,qq邮箱也不例外

可以自己到qq邮箱去设置,获得授权码后登录。

网上很多例子的登录都不是ssl的,qq邮箱是登录不了的,要通过ssl端口登录才不会有问题。


问题及解决:

经常会遇到

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-78: ordinal not in range(128)

报错,原因是编码问题,解决方法是

import sys
sys.setdefaultencoding('utf-8')

但是直接这样用又会报错

AttributeError: 'module' object has no attribute 'setdefaultencoding'

需要先reload

import sys
reload(sys)
sys.setdefaultencoding('utf-8')
这里比较奇怪



3.kindle推送邮件


4.每天爬取博客内容


这两个章节在下一个文章讲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值