Kindle 伴侣在之前曾经写过一个教程《通过电子邮箱附件推送文档到Kindle》,内容是手动通过电子邮箱推送电子书到【我的内容】,下面介绍的用 Calibre 推送的方法可以使推送过程更加简化。跟着下面的步骤简单的设置以下就可以享受便捷的一键推送了:
一、Calibre 的设置及推送步骤
在开始下面步骤之前请确保你有一个电子邮箱并且你的Kindle设备已经和你的亚马逊账号进行了绑定。如果没有亚马逊账号请点击这里(亚马逊中国)或点击这里(美国亚马逊)先自行注册。详细步骤请参见《通过电子邮箱附件推送文档到Kindle》。
1、下载安装Calibre
Calibre下载页面:https://bookfere.com/tools#calibre
2、添加Kindle接收推送的邮箱
点击“首选项”图标,找到“分享”分类,点击“通过邮件分享”。在弹出的对话框中点击右边的“添加邮件地址”,填入和你的Kindle设备绑定的推送接收邮箱(可添加多个)。接收推送的邮箱可以在【管理我的内容和设备】中的【我的设备】选项卡页面找到。
3、填写推送邮箱
在下面的“发信人地址”中填写你的电子邮箱。注意请确保该邮箱已经添加到亚马逊官网 Kindle 管理后台的【设置】页面中的“已认可的发件人电子邮箱列表”中(这一项在设置页面底部)。
4、设置推送邮箱的邮件服务器
接下来设置“邮件服务器”。Calibre 支持两种发送邮件的方式,既可以自行选用。
方式一:留空邮件服务器
Calibre 的“邮件服务器”不是必填项,你可以将其留空,这样 Calibre 会将你的电脑作为邮件服务器发送邮件。虽然通过这种方式发送的电子邮件是伪造邮件(邮箱无法通过 SFP 验证),大部分邮件服务商通常都会被标记为垃圾邮件,但貌似并不影响 Kindle 邮箱的收信,发信速度取决于你的网络速度。via
方式二:指定邮件服务器
如果通过以上方式推送时遇到了错误,或 Kindle 收不到邮件,就需要手动指定邮件服务器了。如果你用的是 Gmail 或 Live/Outlook/Hotmail 邮箱,直接点右边相应的图标填写你的邮箱地址及用户名密码即可,软件将会自动为你填写主机名和端口。如果使用其他的邮箱请自行填写邮箱服务器设置并填入你的邮箱用户名和密码。常见的几个邮箱服务器如下:
- 163 邮箱:主机名 smtp.163.com 端口 465 或 587(加密类型:SSL)*推荐
- 126 邮箱:主机名 smtp.126.com 端口 465 或 587(加密类型:SSL)
- yeah 邮箱:主机名 smtp.yeah.net 端口 465 或 587(加密类型:SSL)
- 新浪邮箱:主机名 smtp.sina.com 端口 端口 465(加密类型:SSL)
- Gmail 邮箱:主机名 smtp.gmail.com 端口 587(加密类型:TLS)
- Hotmail/Live/Outlook邮箱:主机名 smtp-mail.outlook.com 端口 587(加密类型:TLS)
QQ 邮箱:主机名 smtp.qq.com 端口 465(加密类型:SSL)*不推荐
* 小提示 1: 一定要仔细检查填写的端口是 465 或 587,而不是 465、578等。
* 小提示 2: 以上列出的邮箱附件大小除 Gmail/Outlook 是 25MB 外皆为 50MB。
* 小提示 3: 目前 Gmail 在大陆处于被封锁状态,暂时无法使用。
* 小提示 4: 新注册的 163 邮箱无法立即使用。
* 小提示 5: 163 邮箱如果开启了授权码,请使用授权码而不是登录密码。
邮件参数填写效果如下:
5、测试邮件推送
全部设置完毕后点击右下角的“测试邮件发送”按钮,会出现“该操作会在屏幕上明文显示你的电子邮件地址密码。要继续吗?”的提示,点击“是”会弹出一个测试对话框,点击“测试”按钮,如果显示框出现“邮件已发出”即表示设置成功,否则请检查设置重试。点击“确定”按钮退出该对话框。点击左上角的“应用”按钮保存刚才的设置,结束设置。
* 测试邮件发出后不久,亚马逊Kindle客服的自动回复系统会向你的推送邮箱发送一封主题为“你发送至Kindle的邮件未附任何文件附件”的提示邮件,请忽略。
6、用右键一键推送图书
回到主界面书库,选择一个或多个电子书,右键点击所选电子书,在弹出的菜单里将鼠标指针悬浮到“连接/共享”,在弹出的子菜单中点击“发送右键至***@kindle.cn”(***@kindle.cn 就是第2步填写的那个邮箱),就可以直接把这些电子书发送到你亚马逊账户中的【我的内容】中了。
当我们将epub等格式的电子书转换成mobi格式后,只需要通过右键菜单就可以将转换后的电子书推送到亚马逊的云端了,是不是很方便。快来试试吧!
二、错误的排查及解决方法
* 无法推送成功请检查:
如果你无法推送成功,请仔细检查“发信人地址”和邮件服务器中的“用户名”是否都是“xxx@xxx.com”这样的格式,比如你的邮件是“ test@simple.com”,那么设置中的“用户名”和“发信地址”都应该填写“test@simple.com”,“用户名”不能只填写“test”,“发信地址”也不能只填写“@simple.com”。另外还需要检查端口是否填写正确,一般邮箱可选择“加密”类型为“SSL”,端口号应该填写 465 或 587;Gmail 的“加密”类型为 TLS,端口号为 587。
* 出现错误提示的解决方法:
如果设置完成后测试推送或推送电子书时出现以下错误,请按照相应的解决办法解决:
1、错误提示之一
SMTPAuthenticationError: (550, ‘\xd3\xc3\xbb\xa7\xb1\xbb\xcb\xf8\xb6\xa8′)
【解决办法】
错误提示中的“乱码”意思是“用户被锁定”。如果你的 163 邮箱是新注册账号,可能会出现这个这是因为 163 邮箱为防止 SMTP 外泄和滥用,默认没有开启客户端 SMTP 功能。开通 SMTP 需要先进入【设置】页面,在侧边找到【POP3/SMTP/IMAP】这一项,把“开启SMTP邮件”这一项勾选上(注意这里需要手机验证)即可正常使用。
2、错误提示之二
SMTPAuthenticationError: (454, ‘Authentication failed, please open smtp flag first!’)
SMTPAuthenticationError: (535, ‘Error: authentication failed’)
【解决办法】
如果你的 QQ 邮箱出现该错误,请先进入该邮箱的网页版,进入邮箱的【设置】页面,找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”这一项,把其中的“POP3/SMTP服务”开启即可正常使用。
如果你使用的是 163 邮箱,请登陆网页版邮箱,进入【设置】页面,在侧边找到【POP3/SMTP/IMAP】这一项,把“开启SMTP邮件”这一项勾选上(注意这里可能需要手机验证)。
3、错误提示之三
SMTPServerDisconnected: Connection unexpectedly closed
解决办法:
这是因为 QQ 邮箱自身原因,请转用其他如 163 邮箱。
4、错误提示之四
reply: ‘535 Error: authentication failed\r\n’
reply: retcode (535); Msg: Error: authentication failed
【解决办法】
请检查下邮箱设置中“客户端授权密码”有没有被开启?如果此功能已开启,则需要使用授权密码而不是邮箱登录密码。
5、错误提示之五
554 DT:SPM
【解决办法】
此错误常出现在 163 邮箱,官方说明为:554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件。可能由于大量发送邮件导致的,如果遇到此错误请更换其他邮箱。
6、错误提示之六
500 Error: bad syntax\r\n
【解决办法】
Windows 下可能会出现此错误,这可能是因为网络属性中的“连接特定的 DNS 后缀”值带有空格导致的。在“控制版面”中打开“网络和共享中心”,点击现在使用的网络连接,然后点击【详细信息】查看“连接特定的 DNS 后缀”的值,看是否带有空格,如果有则需要修改一下。具体步骤为:点击【属性】按钮,双击“Internet 协议版本 4(TCP/IPv4)”这一项,再点击【高级】按钮,切换到“DNS”标签,把“此连接的 DNS 后缀”清空或修改为 HOST,依次确认保存。至此问题可得到解决。via
更详细的操作步骤参见《解决 Calibre 推送“500 Error: bad syntax”错误》这篇文章。
7、错误提示之七
error: [Errno 10060]
【解决办法】
错误提示无法建立连接。检查一下你的电脑是否使用了网络代理,或者有防火墙、病毒软件之类的阻止了 SMTP 的连接。
8、错误提示之八
SMTPSenderRefused: (553, ‘Mail from must equal authorized user’, u’1584624613@qq.com’)
【解决办法】
SMTP 服务器拒绝的原因是发信邮箱和发信人名称不一致。假设你使用的是 163 邮箱,如果你的发信邮箱是 example@163.com,那么发信人名称也应该是 example@163.com,而不是 example,更不能是其它邮箱地址。简单说就是直接用你的 Email 做用户名就可以了。
9、错误提示之九
File “ssl.py”, line 828, in do_handshake
error: [Errno 10054]
或者
File “socket.py”, line 575, in create_connection
error: [Errno 10060]
【解决办法】
错误提示无法建立连接。由于每个人的电脑环境不同,出现此问题的原因可能也不尽相同,建议检查一下你的电脑是否使用了网络代理,或者有防火墙、病毒软件之类的阻止了 SMTP 的连接。
您好 我的 同一本书用邮件推送了5次 每次都显示发送成功
kindle里一直收不到 几个小时一直同步设备刷新也没有
这是为什么啊
一年前有过一次 Calibre 升级到最新版本后就能收到了
但现在已经是最新版本 了 一直刷新也没有
在使用 Calibre 推送电子书时,Calibre 的任务只是简单地用邮箱把文件发送到 Kindle 邮箱,一旦发送成功就表示它的任务完成了。如果 Kindle 没有收到推送,要么是亚马逊服务的问题(比如设置不正确、收到了退信等),要么是 Kindle 设备联网有问题。建议从这两个方面逐一排查。
您好 现在又发送失败
calibre, version 5.9.0 (win32, embedded-python: True)
无法通过电子邮件发送书籍: 失败: 把 兽王 发Email到 m13839987343@kindle.cn
Starting job: 把 兽王 发Email到 m13839987343@kindle.cn
Waiting 1 seconds before sending, to avoid being marked as spam.
You can control this delay via Preferences->Tweaks
Sending failed…
Traceback (most recent call last):
File “calibre\gui2\email.py”, line 45, in run
File “calibre\gui2\email.py”, line 129, in sendmail
File “calibre\utils\smtp.py”, line 168, in sendmail
File “calibre\utils\smtp.py”, line 130, in sendmail_direct
File “calibre\utils\smtp.py”, line 122, in get_mx
File “dns\resolver.py”, line 1221, in query
File “dns\resolver.py”, line 1205, in resolve
File “dns\resolver.py”, line 1043, in resolve
File “dns\resolver.py”, line 950, in _compute_timeout
dns.exception.Timeout: The DNS operation timed out after 5.000821590423584 seconds
Retrying in 1 seconds…
Waiting 1 seconds before sending, to avoid being marked as spam.
You can control this delay via Preferences->Tweaks
Sending failed…
Traceback (most recent call last):
File “calibre\gui2\email.py”, line 45, in run
File “calibre\gui2\email.py”, line 129, in sendmail
File “calibre\utils\smtp.py”, line 168, in sendmail
File “calibre\utils\smtp.py”, line 130, in sendmail_direct
File “calibre\utils\smtp.py”, line 122, in get_mx
File “dns\resolver.py”, line 1221, in query
File “dns\resolver.py”, line 1205, in resolve
File “dns\resolver.py”, line 1043, in resolve
File “dns\resolver.py”, line 950, in _compute_timeout
dns.exception.Timeout: The DNS operation timed out after 5.0003662109375 seconds
Job: “把 兽王 发Email到 m13839987343@kindle.cn” failed with error:
Traceback (most recent call last):
File “calibre\gui2\threaded_jobs.py”, line 83, in start_work
File “calibre\gui2\email.py”, line 102, in __call__
File “calibre\gui2\email.py”, line 45, in run
File “calibre\gui2\email.py”, line 129, in sendmail
File “calibre\utils\smtp.py”, line 168, in sendmail
File “calibre\utils\smtp.py”, line 130, in sendmail_direct
File “calibre\utils\smtp.py”, line 122, in get_mx
File “dns\resolver.py”, line 1221, in query
File “dns\resolver.py”, line 1205, in resolve
File “dns\resolver.py”, line 1043, in resolve
File “dns\resolver.py”, line 950, in _compute_timeout
dns.exception.Timeout: The DNS operation timed out after 5.0003662109375 seconds
Called with args: (‘C:\\Users\\dell\\AppData\\Local\\Temp\\calibre_j8b8_1c_\\aj7_qhu_caltmpfmt.mobi’, ‘Shou Wang – Yu Mo.mobi’, ‘m13839987343@kindle.cn’, ‘电子书: 兽王’, ‘已添加, 你可以从中获取电子书\n\n兽王\n\t由 雨魔\n\n使用 MOBI 格式.’) {‘notifications’: , ‘abort’: , ‘log’: }
用什么邮箱发送的邮件?
是163邮箱
而且calibre 用USB连kindle直接发送到设备
发送成功 但kindle里一直没有
你是指上一次留言中提供的的错误信息是偶发性的,后来又发送成功了,但是 Kindle 没有收到是吗?如果是的话,建议重启一下 Kindle 重新联网看能不能正常同步。
谢谢!!改了好几遍kindle的邮箱地址,但还是有二次验证,看完这篇才知道解决办法!感谢!!!BTW我是用126邮箱推送,那个密码也是填授权码~如果错填成登录密码就会推送失败
请问这里倒是显示成功了,然而在阿玛逊的个人内容里面没有看到文件,这要怎么解决?
错误提示为 Error:authentication failed 那怎么办哇
这是因为用户名或密码错误导致的。如果你使用的是需要开启授权码才能使用其 STMP 功能的邮箱服务(如 163 邮箱),需要在邮箱设置中开启授权码,并用授权码而不是登录密码登录。
如果电子书文件本身没问题,可能是亚马逊服务器出小差了,可以尝试重新推送一下。还是不行的话大概率是电子书自身的问题,可以尝试用 Calibre 等转换软件重新转换一下格式再推送。
感谢,虽然是老帖子,但是解决了问题!
发布时间虽早,内容不会过时哦,文章会根据反馈随时更新。
测试邮件时,我用163邮箱,显示的错误是这个
SMTPServerDisconnected: Connection unexpectedly closed
用outlook邮箱,显示是
SMTPAuthenticationError: (535, ‘Error: authentication failed’)
跟列出来的常见错误也不一样啊,请问这是怎么回事?
第一个错误显示“连接意外关闭”,建议检查 163 是否使用的是“授权码”登录,否则会出现登录异常。第二个错误是用户名密码错误,如果你是新注册的 Outlook 邮箱,建议通过网页登录,检查一下能否正常发信,一般情况下新账户需要验证才能正常发信。
另外,Calibre 允许 SMTP 信息留空,你也可以尝试这种方法推送。
下载的软件是英文版,没有中文,怎么回事呢?
Calibre 是多国语言版,包含简体中文。你可以前往 Calibre 的偏好设置(Preference),进入界面外观(Look & Feel),将语言设置(Choose Language)选成简体中文(Simplified Chinese),然后重启一下 Calibre 即可。
已成功修改,非常感谢
仔细核对了邮箱名和密码,然后还是测试发送失败,能麻烦小编帮我看一下吗?提示如下:
Traceback (most recent call last):
File “site-packages\calibre\gui2\wizard\send_email.py”, line 209, in test_email_settings
File “site-packages\calibre\utils\smtp.py”, line 182, in sendmail
File “site-packages\calibre\utils\smtplib.py”, line 645, in login
SMTPAuthenticationError: (535, ‘Error: authentication failed’)
Log:
connect: (u’smtp.163.com’, 587)
connect: (u’smtp.163.com’, 587)
reply: ‘220 163.com Anti-spam GT for Coremail System (163com[20141201])\r\n’
reply: retcode (220); Msg: 163.com Anti-spam GT for Coremail System (163com[20141201])
connect: 163.com Anti-spam GT for Coremail System (163com[20141201])
send: u’ehlo [172.27.35.1]\r\n’
reply: ‘250-mail\r\n’
reply: ‘250-PIPELINING\r\n’
reply: ‘250-AUTH LOGIN PLAIN\r\n’
reply: ‘250-AUTH=LOGIN PLAIN\r\n’
reply: ‘250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrwGxRvUCa0xDrUUUUj\r\n’
reply: ‘250-STARTTLS\r\n’
reply: ‘250 8BITMIME\r\n’
reply: retcode (250); Msg: mail
PIPELINING
AUTH LOGIN PLAIN
AUTH=LOGIN PLAIN
coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrwGxRvUCa0xDrUUUUj
STARTTLS
8BITMIME
send: AUTH
reply: ‘535 Error: authentication failed\r\n’
reply: retcode (535); Msg: Error: authentication failed
你用的是邮箱登录密码吗?要注意 163 必须开启并使用授权码。