[Python]推送文档到kindle
有kindle的同学,肯能大部分使用过亚马逊的推送服务,就是发一封带附件的邮件到你的亚马逊邮箱,然后附件就会通过wifi推送到你的kindle上。因为懒得用USB,或者kindle给别人看了,加一本书进去,所以就用python写了一个小程序,就是选择电脑上的文档,云推送到kindle上。
首先你要有个带SMTP服务的邮箱,比如QQ邮箱,然后更改邮箱及密码,还要修改收件的亚马逊邮箱。
以下是代码:
# -*- coding: utf-8 -*-
"""
Created on Thu Dec5 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'] = '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()
里面已经写了注释,直接改就行。 这个正需要,感谢,研究一下 所以呢 发表于 2019-12-16 14:39
这个正需要,感谢,研究一下
介绍写的不够详细,大概需要一点点基础才可以直接上手试试。有问题留言 大佬细,还写了GUI。顺便问下可否推荐下买书的站或公众号,以前好多都倒了。 用的是 Python 2?,另外编码不是有更好的写法吗:
#coding=utf-8 学习了。感谢,正需要 鲁包子 发表于 2019-12-24 01:13
用的是 Python 2?,另外编码不是有更好的写法吗:
#coding=utf-8
开头是spyder默认写的,我只写了内容 FFM 发表于 2019-12-23 16:56
大佬细,还写了GUI。顺便问下可否推荐下买书的站或公众号,以前好多都倒了。
目前我也不知道,也没有刻意去找公众号什么的。只可惜了从前那些好用的公众号啊 鸣鸣惊人 发表于 2020-1-9 14:03
开头是spyder默认写的,我只写了内容
嗯嗯,好的
页:
[1]