Calibre 常用命令行工具详解之 calibre-smtp
全能型电子书管理软件 Calibre 除了有可视化操作界面,还附带了一系列命令行工具(Command Line Interface),这些工具功能独立且实用。如果你熟悉命令行的使用,并且想要在处理电子书方面提高效率,抑或想要把一些和电子书处理相关的工作自动化,这些工具将会对你很有帮助。本文从 Calibre 提供的这些命令行工具中挑选了常用的 3 款,分别为:ebook-meta
、ebook-convert
、calibre-smtp
,详细介绍它们如何使用,以及都适用于哪些应用场景。这些内容需要你懂一点点命令行知识。
目录
一、元数据命令:ebook-meta
1、读取电子书元数据
2、写入电子书元数据
二、格式转换命令:ebook-convert
1、基本用法
2、转换示例
3、可用选项
4、应用场景
三、邮件推送命令:calibre-smtp
1、基本用法
2、转换示例
3、可用选项
4、应用场景
本文涉及的命令行工具需要在“命令提示符”(Windows 系统)或“终端”(macOS 或 Linux 系统)中使用。如果电脑是 Windows 系统,一般在安装好 Calibre 之后就可以使用。如果电脑是 macOS 或 Linux 系统,安装 Calibre 之后需要手动把命令行工具的路径添加到系统变量中才能直接使用。
三、邮件推送命令:calibre-smtp
calibre-smtp
是一个使用 STMP 协议发送邮件的命令。书伴之前写过一篇使用 Calibre 推送电子书的教程《Calibre 使用教程之邮件一键推送电子书》,文中介绍的是通过右键菜单把 Calibre 书库中的 mobi 格式的电子书推送到 Kindle 云端。此功能的实现就是调用 calibre-smtp
这个命令实现的。
1、基本用法
Calibre 官方文档给出的 ebook-smtp
的指令用法如下:
calibre-smtp [options] [from to text]
此指令有两部分参数,其中 [options]
是指可添加多个可选项,如 SMTP 服务器相关信息、附件文件路径等,[from to text]
是三个参数,from
是指发送邮箱、to
是指接收邮箱、text
是指正文内容。
2、转换示例
为了更直观地理解 calibre-smtp
命令如何使用,我们来看一个应用示例。假设我们有一个 163 邮箱,邮箱名是 example@163.com,其授权码密码为 123456,要推送一个文件名为 example.mobi 的电子书到 Kindle 邮箱 example@kindle.cn 同步到 Kindle 中,就可以通过运行下面这条指令来实现:
calibre-smtp -a /path/to/example.mobi -r smtp.163.com --port=465 -e SSL -u example@163.com -p 123456 example@163.com example@kindle.cn ''
以上指令中的可选项名用的是简称,如果想要用全称,也可以这样写:
calibre-smtp --attachment=/path/to/example.mobi --relay="smtp.163.com" --port="465" --username="example@163.com" --password="123456" --encryption-method=SSL "example@163.com" "example@kindle.cn" ""
在这条指令中 -a
或 --attachment
用来指定附件路径,也就是要推送电子书文件的路径;-r
或 --relay
是 SMTP 服务地址(比如 163 邮箱用的是 smtp.163.com
);--port
是 SMTP 服务器的端口(比如 163 邮箱用的是 465
);-e
或 --encryption-method
是 SMTP 服务器使用的加密方式(比如 163 邮箱的是 SSL
);-u
或 --username
是邮箱名(一般是完整的邮箱地址);-p
或 --password
是邮箱密码。最后三个选项分别是:发信邮箱地址、收信邮箱地址和正文内容。注意,如果可选项的参数含有空格一定要用引号包含。
上面这条指令中所用到的或全部可用选项的详细解释,可以参考第三部分的“可用选项”。
在指令中使用 -a
或 --attachment
指定附件路径的时候,可以使用附件文件的绝对路径,也可以使用相对路径,使用相对路径要确保运行此指令的当前路径和附件文件所在路径是一致的。
由于推送电子书时邮件的标题和正文不是必须的,所以在指令中可以不使可选项指定邮件标题,正文也可以用空引号留空。如果你推送的电子书需要强制转换格式,比如需要把 True PDF 文档转换成文本可选择的 Kindle 电子书格式,则需要添加主题选项 -s 'convert'
或 --subject="convert"
实现强制转换。
不同邮箱的 SMTP 服务所允许的密码形式可能不一样,比如 163 邮箱的 SMTP 服务就强制用户使用“授权码”而不能直接使用邮箱的登录密码,所以,如果当你在执行的指令中使用了邮箱登录密码却出现了类似 Error: authentication failed
这样的错误提示,就需要检查一下你使用的邮箱是否需要使用授权码。
另外,为方便排查错误,还可以在指令中添加一个可选项 -v
或 --verbose
来跟踪指令执行过程。
3、可用选项
以下是 calibre-smtp
命令可用选项的详细解释。这些信息也可以通过执行 calibre-smtp --help
获取。
可用选项:
-l LOCALHOST
或 --localhost=LOCALHOST
本机的主机名。连接 SMTP 服务器时使用。
-o OUTBOX
或 --outbox=OUTBOX
邮件投递失败信息的存放路径。
-f
或 --fork
在后台处理投递消息。使用此选项需要同时使用 --outbox
选项来管理投递失败信息。
-t TIMEOUT
或 --timeout=TIMEOUT
连接超时时间。
-v
或 --verbose
显示邮件投递过程的详细信息。
-a ATTACHMENT
或 --attachment=ATTACHMENT
选择邮件附件。
-s SUBJECT
或 --subject=SUBJECT
邮件标题。
-r RELAY
或 --relay=RELAY
发送邮件使用的 SMTP 中继服务器。
--port=PORT
中继服务器的端口。默认是 465(SSL 加密)和 25(不加密)。
-u USERNAME
或 --username=USERNAME
中继的用户名。
-p PASSWORD
或 --password=PASSWORD
中继的密码。
-e ENCRYPTION_METHOD
或 --encryption-method=ENCRYPTION_METHOD
连接到中继时使用的加密方式。选项有 TLS、SSL 和 NONE(无),默认是 TLS。警告:选择 NONE 十分不安全。
4、应用场景
除了可以使用 calibre-smtp
命令在命令行中发送邮件,还可以配合 ebook-convert
命令定时执行脚本抓取 RSS 新闻或任意网站页面,并推送到 Kindle 中等。具体如何应用,今后书伴会陆续推出相关文章。
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/646.html
“Calibre教程”相关阅读
- Calibre 使用教程之通过邮箱一键推送 Kindle 电子书
- Calibre 常用命令行工具详解之 ebook-meta
- Calibre 转换 TXT 文件出现 Errno 21 错误的解决方法
- Calibre 使用教程之抓取网站页面制成电子书
- Calibre 使用教程之抓取 RSS 制成电子书
- Calibre 使用教程之为 Kindle 电子书添加页码
- 如何用 Calibre 和 Count Pages 插件统计电子书的字数和页数
- Calibre 使用教程之通过 WiFi 向 Kindle 传输电子书
- 把 TXT 文档转换成带目录的 MOBI 格式电子书
- 如何将 Calibre 中的电子书拼音书名保存成中文书名
- Calibre 发布 3.0 版本(附常用功能梳理)
- 用 GitHub Actions 让 Calibre 定时推送新闻到 Kindle
- Calibre 使用教程之为电子书添加更换字体
- Calibre 使用教程之优化电子书的排版
- Calibre 常用命令行工具详解之 ebook-convert
请教一下,calibre导入的图书,如何才能不让它把书籍自动复制到书库文件夹里,并且还会把书名改成全拼,很难认?
还有,如何才能让它转换的文件,比如转为txt,文件名不要变成全都是拼音呢?
谢谢!
这是 Calibre 的默认行为,并且没有提供相关的设置项。如果你想要对电子书归档管理,建议使用文件夹,只有在需要转换格式时再把电子书导入到 Calibre 的书库中。对于转换后的电子书名,只能手动修改,如果数量比较多也可以考虑写个脚本批量修改。
“Calibre 官方文档给出的 ebook-convert 的指令用法如下:”
这一行是不是有点问题啊?应该是calibre-smtp吧
这是一个错误。谢谢指正,已修改。