ePub Advent Calendar 2015 - Qiitaの21日目に飛び入り参加しました。
(というか、書きたいネタがたまたま合致したので参加しました。)
はじめに
KindleにEPUBファイルを落として読みたい。
- EPUBファイルをMOBIファイルに変換すれば、Kindleで読めるようになります。
- 変換したMOBIファイルはSend-to-Kindleサービス(メール送信)でKindleに送れる
- Send-to-Kindleを使った事の無い人は、下記に従って設定できます:
- Amazon.co.jp ヘルプ: Kindleパーソナル・ドキュメントサービス
- Send-to-Kindle用のメールアドレス(後で使う)は、ここで取得できます。
- Send-to-Kindleを使った事の無い人は、下記に従って設定できます:
GUIのメールクライアントを使うのが面倒なので、すべてコマンドラインで済ませたい。
そのための手順を紹介します。
対象読者
- Mac(またはUnix-like OS)におけるコマンドラインの基本的な使い方が分かる方
- コマンドライン上でエディタ(Vim, Emacs, nanoなど)を使用できる方
-
vim
と書いているところは、適当に置き換えてください
-
- 「PATHを通す」の意味が分かる方
- 通し方(Bash): MacでPATHを通す - Qiita
準備
MOBIファイルへ変換するツール kindlegen を入れる
下記URLからkindlegen(適切なOSのもの)をダウンロード。
パッケージを解凍し、PATHの通っているディレクトリにkindlegen本体を移動します。
(Gmailで2段階認証を使っている場合)Gmailでアプリパスワードを生成しておく
- ログインとセキュリティ https://myaccount.google.com/security
- アプリパスワードをクリック、指示に従ってパスワードを取得します(後で使う)
CUIのメールクライアント(postfix)をセットアップする
基本的には下記に従う(パスワードはさきほど生成したものを使う)。
このままだと大容量の添付ファイルを送れないので、送信可能容量を1GBまで増やします。
-
sudo vi /etc/postfix/main.cf
message_size_limit = 10240000
↓
message_size_limit = 1073741824
CUIで添付ファイルを楽に送るツール mutt を入れる
-
Mac:
brew install mutt
-
設定:
vim ~/.muttrc
set send_charset="utf-8:iso-2022-jp"
set realname="Your Name"
設定は最低限のみなので、本格的に使いたい人はググってください。
(おまけ)postfixをデーモンとして常に起動するようにする
Mac OS X 10.11 El CapitanからSystem Integrity Protection(SIP; rootless) という機能により、一部のシステムディレクトリが管理者権限付きでも操作できなくなりました。
そのため、SIPで保護されているディレクトリから設定ファイルをコピーして編集します。
手順
-
設定ファイルを編集可能ディレクトリにコピー
sudo cp /System/Library/LaunchDaemons/org.postfix.master.plist /Library/LaunchDaemons/
-
org.postfix.master.plist を編集
sudo vim /Library/LaunchDaemons/org.postfix.master.plist
-
<dict>...</dict>
の間に次を挿入(似たような設定が並んでいるので、末尾に追記します)<key>RunAtLoad</key> <true/>
-
launchdに設定を読み込ませる
sudo launchctl unload /Library/LaunchDaemons/org.postfix.master.plist sudo launchctl load -w /Library/LaunchDaemons/org.postfix.master.plist
本番
EPUBをMOBIに変換
EPUBファイルのあるディレクトリに移動。
kindlegen foo.epub
KindleにMOBIファイルを転送する
件名不要、本文不要、添付ファイルのみ送る。
mutt -s "" -a foo.mobi -- myname@kindle.com < /dev/null
おまけ: 上記を一気にやってくれるシェルスクリプト
gistに置いたのでご自由にお使いください。
https://gist.github.com/sky-y/69282e06d28c3c4099ea
以上。