Calibre 常用命令行工具详解之 calibre-smtp

全能型电子书管理软件 Calibre 除了有可视化操作界面,还附带了一系列命令行工具(Command Line Interface),这些工具功能独立且实用。如果你熟悉命令行的使用,并且想要在处理电子书方面提高效率,抑或想要把一些和电子书处理相关的工作自动化,这些工具将会对你很有帮助。本文从 Calibre 提供的这些命令行工具中挑选了常用的 3 款,分别为:ebook-metaebook-convertcalibre-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-convert 的指令用法如下:

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 中等。具体如何应用,今后书伴会陆续推出相关文章。

有帮助,[ 捐助本站 ] 或分享给小伙伴:

发表评论

标注为 * 的是必填项。您填写的邮箱地址将会被保密。如果是在本站首次留言,审核后才能显示。
若提问,请务必描述清楚该问题的前因后果,提供尽可能多的对分析该问题有帮助的线索。