吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3798|回复: 8
收起左侧

[Python 转载] [Python]推送文档到kindle

[复制链接]
鸣鸣惊人 发表于 2019-12-11 16:25
有kindle的同学,肯能大部分使用过亚马逊的推送服务,就是发一封带附件的邮件到你的亚马逊邮箱,然后附件就会通过wifi推送到你的kindle上。
因为懒得用USB,或者kindle给别人看了,加一本书进去,所以就用python写了一个小程序,就是选择电脑上的文档,云推送到kindle上。
首先你要有个带SMTP服务的邮箱,比如QQ邮箱,然后更改邮箱及密码,还要修改收件的亚马逊邮箱。
以下是代码:
[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
"""
Created on Thu Dec  5 16:45:42 2019

@author: Martin
"""

import smtplib
import email.mime.multipart
import email.mime.text
from email.mime.text import MIMEText

import tkinter.filedialog
from tkinter import *
import tkinter.messagebox

def send():
    msg = email.mime.multipart.MIMEMultipart()
    msgFrom = 'xxxxxxx@163.com' #SMTP的邮箱
    msgTo = 'xxxxx@kindle.cn' #亚马逊的邮箱
    smtpSever='smtp.163.com'  #SMTP的服务器
    smtpPort = '25'  #端口号
    sqm='xxxxxxxx' #邮箱密码
    
    msg['from'] = msgFrom
    msg['to'] = msgTo
    msg['subject'] = '[Kindle]Martin'
    
    content = '''
    Dear Martin,
        
        Please check this book.
        
    Auto send program
    '''
    txt = email.mime.text.MIMEText(content)
    msg.attach(txt)
    
    #附件
    #path=file_path
    #file_name=path+name+'.xlsx'
    att = MIMEText(open(file_path, 'rb').read(), 'base64', 'gb2312')
    att["Content-Type"] = 'application/octet-stream'
    att["Content-Disposition"] = 'attachment; filename='+file_path
    msg.attach(att)
    #
    smtp = smtplib
    smtp = smtplib.SMTP()
    
    smtp.connect(smtpSever, smtpPort)
    smtp.login(msgFrom, sqm)
    smtp.sendmail(msgFrom, msgTo, str(msg))
    
def callback1():
    global file_path
    file_path = tkinter.filedialog.askopenfilename(initialdir ="C:/Users/Martin/Downloads",filetypes=( ("亚马逊电子书格式", "*.mobi*"),("Excel 97-2003 工作簿", "*.xls")))
    t.insert('insert',file_path)
def t_k():
    root = Tk()
    root.title('发送文件至 Paper White 3')
    tkinter.Label(root, text='发送文件至kindle',bg='Gainsboro', font=('微软雅黑', 15,'bold'), width=400, height=2).pack()
    tkinter.Label(root, 
        text="软件使用说明:1,先选择文件,2,然后点击发送。\n --by Martin",
        bg='Gainsboro', font=('微软雅黑', 11), width=400, height=3).pack()
    fm=Frame(root)
    Button(fm, text="选择文件", font = ('微软雅黑',10),fg="DodgerBlue",bd=2,width=20,command=callback1, relief=GROOVE).pack(side=LEFT, anchor=W, fill=X, expand=YES)
    fm.pack(side=TOP)
    global t
    t = Text(root,height=1,font =('微软雅黑', 10), fg="Black",bg='White')
    t.pack()
    
    Button(fm, text="发送", font = ('微软雅黑',10), fg="DarkRed",bd=2,width=20,command=send, relief=GROOVE).pack(side=LEFT, anchor=W, fill=X, expand=YES)

    sw = root.winfo_screenwidth()#得到屏幕宽度
    sh = root.winfo_screenheight()#得到屏幕高度
    ww = 700
    wh = 350#窗口宽高为100
    x = (sw-ww) / 2
    y = (sh-wh) / 2
    root.geometry("%dx%d+%d+%d" %(ww,wh,x,y)) #窗口居中
    
    root.mainloop()
if __name__=='__main__':
    t_k()


里面已经写了注释,直接改就行。

免费评分

参与人数 4吾爱币 +6 热心值 +4 收起 理由
luanshils + 1 + 1 谢谢@Thanks!
LL生 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Edison_Bin + 1 + 1 我很赞同!
苏紫方璇 + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

所以呢 发表于 2019-12-16 14:39
这个正需要,感谢,研究一下
 楼主| 鸣鸣惊人 发表于 2019-12-17 08:48
所以呢 发表于 2019-12-16 14:39
这个正需要,感谢,研究一下

介绍写的不够详细,大概需要一点点基础才可以直接上手试试。有问题留言
FFM 发表于 2019-12-23 16:56
大佬细,还写了GUI。顺便问下可否推荐下买书的站或公众号,以前好多都倒了。
鲁包子 发表于 2019-12-24 01:13
用的是 Python 2?,另外编码不是有更好的写法吗:
#coding=utf-8
fx7788 发表于 2020-1-3 09:07
学习了。感谢,正需要
 楼主| 鸣鸣惊人 发表于 2020-1-9 14:03
鲁包子 发表于 2019-12-24 01:13
用的是 Python 2?,另外编码不是有更好的写法吗:
#coding=utf-8

开头是spyder默认写的,我只写了内容
 楼主| 鸣鸣惊人 发表于 2020-1-9 14:04
FFM 发表于 2019-12-23 16:56
大佬细,还写了GUI。顺便问下可否推荐下买书的站或公众号,以前好多都倒了。

目前我也不知道,也没有刻意去找公众号什么的。只可惜了从前那些好用的公众号啊
鲁包子 发表于 2020-1-9 16:23
鸣鸣惊人 发表于 2020-1-9 14:03
开头是spyder默认写的,我只写了内容

嗯嗯,好的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 19:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表