メールはターミナルで - himalaya
Raspberry Pi5でターミナルでメールが読めたら良いなとCLIでメールが扱えるRust製のhimalayaを見つけたので試してみました。
himalayaとは
himalayaとは、 email-lib をベースとしてコマンドライン・インターフェイスでメールを扱えるRust製のツールです。
どうやら構想として単体で使うというより、このCLIベースのツールにUIを合わせて使うという想定のようです。
himalayaのインストール
以下のコマンドでインストールできるようです。
# Arch Linux (official) $ pacman -S himalaya # Arch Linux (from sources) $ yay -S himalaya-git # Homebrew $ brew install himalaya # Scoop $ scoop install himalaya # Cargo $ cargo install himalaya # Nix $ nix-env -i himalaya # Fedora/CentOS $ dnf copr enable atim/himalaya $ dnf install himalaya
apt
ではパッケージが見つからなかったので、今回はRustの環境を作って cargo
でインストールしました。
himalayaの設定
設定はhimakaya --config
でウィザードが起動して必要な項目をインプットしていけば設定ファイルを
作成してくれます。設定ファイルは $XDG_CONFIG/himalaya/config.toml
に保管されるので、これをベースに
編集しました。
[Fastmail] backend = "imap" email = "hogehoge@fastmail.com" default = true display-name = "Taro Yamada" imap-host = "imap.fastmail.com" imap-port = 993 imap-ssl = true imap-login = "hogehoge@fastmail.com" imap-auth = "passwd" sender = "smtp" smtp-host = "smtp.fastmail.com" smtp-port = 465 smtp-ssl = true smtp-login = "hogehoge@fastmail.com" smtp-auth = "passwd" folder.sync.filter.include = ["INBOX"] folder.alias.inbox = "INBOX" folder.alias.sent = "Sent" folder.alias.drafts = "Drafts" folder.alias.trash = "Trash" [Fastmail.imap-passwd] cmd = "pass fastmail.com/hogehoge@fastmail.com" [Fastmail.smtp-passwd] cmd = "pass fastmail.com/hogehoge@fastmail.com" [Fastmail.pgp] backend = "none"
パスワードを平文で書くのはためらわれたので、上記の設定ではpass
コマンドから呼び出すようにしています。
pass
コマンドのインストールと設定は以下の通りです。gpgが導入されている前提です。
sudo apt install pass # passコマンドのインストール pass init fastmail.com # fastmail.comのための領域を初期化 pass insert hogehoge@fastmail.com # パスワードの挿入
以上でパスワードがgpgで暗号化されて格納されます。
以降は、pass fastmail.com/hogehoge@fastmail.com
というコマンドで
毎回gpgのパスフレーズを入力すると標準出力に登録したパスワードが出力されます。
多くのメールサービスでも同様ですが、ここでのパスワードはメールサービスへのログインパスワードとは別に アプリ用のパスワードを生成しておく必要があります。
himalayaの操作
以下は簡単な操作をコマンドラインからやってみました。
himalaya list # メール一覧の取得 ID │FLAGS │SUBJECT │FROM │DATE 100050 │✷ │【お得なキャンペー… │NewsPicks │2024-04-04 06:02+09:00 100049 │✷ │Google Authenticato… │ITmediaエンタープライズ メールマガジン │2024-04-04 05:18+09:00 100048 │✷ │レビューをご報告い… │Amazon Reviews │2024-04-03 20:08+00:00 100047 │ │【抽選チケット進呈… │三井住友カード │2024-04-04 00:31+09:00 100046 │✷ │ご利用のお知らせ【… │三井住友カード │2024-04-04 00:29+09:00 100045 │✷ │Staff Pick: Your Pr… │PledgeBox │2024-04-03 15:03+00:00 100044 │ │Font Awesome Mechan… │Keyboard Awesome │2024-04-02 15:29+00:00 himalaya folders #メールボックス一覧の取得 NAME │DESC INBOX │Extension("\\HasNoChildren") Archive │Extension("\\HasNoChildren"), Archive Drafts │Extension("\\HasNoChildren"), Drafts Family │Extension("\\HasNoChildren") Friends │Extension("\\HasNoChildren") Junk Mail │NoInferiors, Extension("\\HasNoChildren"), Junk Learn_Spam │Extension("\\HasNoChildren") Notes │Extension("\\HasNoChildren"), Extension("\\XNotes") Preservation │Extension("\\HasNoChildren") Recruit │Extension("\\HasChildren") Sent Items │Extension("\\HasNoChildren"), Sent Snoozed │NoInferiors, Extension("\\HasNoChildren"), Extension("\\Snoozed") Temporary │Extension("\\HasNoChildren") Trash │NoInferiors, Extension("\\HasNoChildren"), Trash himalaya read 100044 # メールを読む From: Keyboard Awesome <hello@m.fontawesome.com> To: hogehoge@fastmail.com Subject: Font Awesome Mechanical Keyboard! ANNOUNCING THE LIMITED EDITION FONT AWESOME MECHANICAL KEYBOARD! Available now, and exclusively as an add-on to the Web Awesome Kickstarter [https://www.kickstarter.com/projects/fontawesome/web-awesome?ref=f4176c] campaign, we're excited to announce our very first keycap set and custom keyboard collaboration with Mode Designs! 〜〜以下、省略〜〜 himalaya delete #メールの削除 Email(s) successfully deleted!
himalaya まとめ
使ってみると、コマンドラインからメールが扱えるのでシーンによっては使えるかなと思いました。 ただし、送信系はうまく動作しなかったので確認できていません。
muttやneomuttのように普段使用するMUAとしては使い勝手がよいと言えないので、 バッチ的にメールを扱いたいときにはよいかもしれませんが移行する気にはなれません。
一時期このコマンドと連携しVimをUIとして機能されるVimプラグインがあったようですが、 既にDeprecateされていました。現在はGUIのインターフェイルを開発しているようですが、 それならば普通のGUIのメールアプリを使ったほうがよいでしょう。