LinuxでGmailアカウントを使ってmuttをインストール、設定、および使用する方法
ThunderbirdやEvolutionなどのメールリーダープログラムは素晴らしいですが、時には膨れすぎていると感じることもあります。もしCLI(コマンドラインインターフェース)で主に作業をしているなら、Muttというコマンドラインメールクライアントをインストールして設定する方法を学ぶことが役立つかもしれません。これがこのチュートリアルで行うことです。
このチュートリアルではあなたが学ぶことになる:
- Muttをインストールする方法
- Gmailアカウントで使用するためのMuttの設定方法
- 暗号化されたファイルにセンシティブな情報を保存し、それをメインのMutt設定から取得する方法
- メールボックスディレクトリ間を簡単に切り替えるためのマクロの設定方法
LinuxでGmailアカウントを使ってmuttをインストール、設定、および使用する方法
使用されるソフトウェア要件と規約
インストール
Muttはすべての主要なLinuxディストリビューションの公式リポジトリにデフォルトで用意されているため、お気に入りのパッケージマネージャーを使って簡単にインストールできます。Fedoraファミリーのディストリビューションでは、dnfを使用できます:
sudo dnf install mutt
Debianおよびその派生版では、aptを使用できます。
sudo apt install mutt
MuttはArchlinuxのextraリポジトリでも利用可能です。それをインストールするには、pacmanを使用できます:
sudo pacman -S mutt
インストールが完了したら、アプリケーションの設定を進めることができます。このチュートリアルでは、Gmailアカウントと連携するように調整します。
基本設定
多くの方法からMuttの設定ファイルを作成することができますが、最も一般的なものは~/.muttrcと~/.config/mutt/muttrcです。このチュートリアルでは前者を使用します。以下は、その中で使用する可能性のあるいくつかのディレクティブです:
set ssl_force_tls = yes
set abort_nosubject = no
set mail_check = 60
set timeout = 10
set sort = "reverse-date-received"
set signature = "~/.mutt/signature"
set copy = no
上記で設定した変数の意味と、それがMuttの動作にどのように影響するかを説明するために、少し時間を取ってみましょう。
TLS接続を強制する
インストールしたMuttのバージョンはtlsのサポートでコンパイルされている必要があります:これはリモートサーバーとの暗号化された通信を有効にするために必要です。それを確認するために、次のコマンドを実行できます。
mutt -v | grep tls
上記のコマンドの結果、構成オプションの中に--with-gnutlsが一致するものとして強調表示されているのが確認できるはずです。このオプションで mUtt が構成されている場合、ssl_force_tlsを「yes」に設定することで、Mutt がリモートサーバーとのすべての接続に暗号化を要求するようにできます。Mutt は、公式にサポートされていないサーバーとのコミュニケーションでも暗号化を使用しようとし、成功しない場合は接続を中止します。
件名が含まれていないメッセージは中止してください
abort_nosubjectを使用することで、Muttがメッセージが作成されているが件名のプロンプトで件名が指定されていない場合にどのように動作するかを設定できます。このオプションのデフォルトはask-yesで、つまり、メッセージを本当に送信してもよいか確認されますが、デフォルトとして「yes」オプションが使用されます。この場合、値としてnoを使用したので、件名のないメッセージは確認なしで送信されます。
新しいメールを確認してください
Muttは、キーボードからの入力を受け取るたびにすべてのディレクトリのステータスを更新します。通常、私たちはキーを押すことなく、アイドル時でも新しいメールを通知されることを望みます。この動作を制御する変数はtimeoutです。これは、ユーザーからの入力を待つ最大時間を秒で指定します。指定された時間内にユーザーの入力がない場合でも、更新操作は行われます。この変数のデフォルト値は600秒であるため、入力がない場合、10分ごとに更新を受け取ります。デフォルト値は高すぎるため、10を使用します。
私たちが言ったように、ユーザー入力が受信されるたびにmuttは更新を探します。高いキーボード活動時には、これによりあまりにも多くのアクセス操作が発生するため、私たちはこの頻度を制限したいと考えています。このタスクを達成するために、mail_check 変数を使用できます。timeoutと同様に、この変数は数値を受け入れ、2つのスキャン間の最小時間(秒単位)として解釈されます。この変数のデフォルト値は5で、muttは非常に頻繁にキーが押されても、毎5秒ごとに新しいメールを探します。この変数の値を増やしたいと考えており、特に複数のメールボックスを使用する場合、可能な遅延を避けるためです:60が妥当な値であると言えるでしょう。
インデックスページでメールのソート順を設定する
デフォルトでは、メールは「インデックス」メニュー(メッセージのリストが表示される場所)で、日付が昇順に並べられていますので、新しいメールは下に表示されます。メールの並べ方を変更するには、sort_order変数の値を設定して使用することができます。この場合、最新のメールがリストの上部に表示されるようにreverse-data-receivedを使用しました。他にもsubjectやsizeなどのパラメータを並べ替えの要素として使用することができます。
送信するメールに署名を追加する
私たちが出ていくメールに特定の署名を追加したい場合、signature変数を設定して使用することができます。この変数では、署名を含むファイルのパスを指定します。ファイル名が|(パイプ)で終わる場合、それはシェルコマンドとして解釈され、その出力が署名として使用されます。この場合、既存のファイルのパス~/.mutt/signatureを使用しました。
送信メッセージのコピーを保存する
デフォルトでは、Muttではcopy変数は「yes」に設定されているため、送信されたメッセージのコピーはrecord変数で指定されたファイルに保存されます。デフォルトでは、これは~/sentです。私たちはMuttをGmailと連携させるように設定しているので、Gmailにはこの機能が組み込まれていて(送信メールはリモートの「[Gmail]/送信済みメール」フォルダーに保存されます)、copyをfalseに設定したいと考えています。そうしないと、送信されたメールが上記の場所($record)にもローカルで保存されてしまいます。
Gmailと連携するためのMuttの設定
これまでに、私たちはいくつかの基本的で重要なオプションを見て設定しました。今度は、MuttをGmailアカウントで動作させる方法を見ていきます。
Muttのアプリ専用パスワードを生成する
Googleの二要素認証を使用している場合、MuttからGmailアカウントにアクセスするためには、アプリ専用パスワードを生成する必要があります。GoogleはOauth2を認証方法として使用しないアプリケーションに対してこれを要求します。アプリ専用パスワードを生成するには、このアドレスに移動し、認証を行って、パスワードを生成するための指示に従ってください:これを設定に使用します。
Gmailアカウントの設定
MuttをGmailで使用するために設定したいオプションは以下の通りです(ダミーアドレスを使用します):
set from = "foo.bar@gmail.com"
set realname = "Foo Bar"
Imap settings
set imap_user = "foo.bar@gmail.com"
set imap_pass = "<mutt-app-specific-password>"
Smtp settings
set smtp_url = "smtps://foo.bar@smtp.gmail.com"
set smtp_pass = "<mutt-app-specific-password>"
Remote gmail folders
set folder = "imaps://imap.gmail.com/"
set spoolfile = "+INBOX"
set postponed = "+[Gmail]/Drafts"
set record = "+[Gmail]/Sent Mail"
set trash = "+[Gmail]/Trash"
上で定義した変数を見てみましょう。まず、fromとrealnameがあります。これらは、それぞれ「From:」ヘッダーパラメータの値と、送信するメールで使用される「本名」(あなたの名と姓)を指定します。
私たちが上で行った次のことは、imap_userとimap_pass変数を指定することでした。前者は実質的にあなたのアドレスであり、fromで使用したものと同じです。後者に割り当てる値は、私たちのアカウントのために以前生成したアプリ固有のパスワードです。
次に、smtp_urlおよびsmtp_passに使用する値を設定しました。最初のものは、メッセージの配信のために送信するURLを定義します。Gmailの場合、それはsmtp://<yourusername>@smtp.gmail.comです。smtp_pass変数の値は、再度、生成されたアプリ固有のパスワードである必要があります。
最後に、いくつかのGmailフォルダーを定義しました。
フォルダ: 私たちのメールボックスの場所。Gmailの場合はimaps://imap.gmail.comです。spoolfile: メールボックス内にある、メールが届くフォルダー;- 延期された: 段階ごとのメッセージを保存するために使用するフォルダー(ドラフト);
レコード: Gmail が送信したメッセージを保存するディレクトリ;ゴミ箱: 削除するメールを直接削除するのではなく保存するディレクトリです。
以前に言ったように、Gmailは送信したメールを自動的に専用フォルダに保存します。ここでは、後でマクロでハードコーディングすることなく、参照できるようにrecordディレクトリ(+[Gmail]/Sent Mail)の値を設定しました(Gmailは唯一のメールボックスプロバイダではありません)。
私たちはまた trash を定義しました:それは、Muttを閉じるときやその状態を同期するときに削除のためにマークされたメールが移動されるディレクトリです。これにより、直接削除されるのではなく、偶発的に削除されたメッセージを取り戻すチャンスを得ることができます。この機能は、最近のMuttのバージョンに標準で含まれていますが、古いバージョンでこれを得るには、「trash patch」と呼ばれるものを適用する必要がありますが、マクロを通じても達成することが可能です。
機密アカウント情報の保護
この時点で、あなたの中で疑問が生じるべきです:私たちがMutt用に生成したアプリ固有のパスワードのような機密情報をプレーンな設定ファイルに置くことは危険ではないですか?もちろん、危険です!これは決して行うべきではないことです!一方で、メールボックスに接続するたびにパスワードを提供するのは本当に面倒です。この問題の解決策は、私たちのGmailアカウント情報を別のファイルに保存し、それをgpgで暗号化することです;そのファイルはメインのMutt設定ファイルから読み込まれ、メモリ上で復号されます。
これは、どのようにそれを行うかの例です。前のセクションで設定したすべてのgmail情報を~/.mutt/gmailという名前のファイルに移動し、次のコマンドを実行してgpgを使用して暗号化します:
gpg --recipient <recipientname> --encrypt ~/.mutt/gmail
上記のコマンドは新しい暗号化ファイル、~/.mutt/gmail.gpg を生成します。これで、元の平文のファイルは削除しても構いません。暗号化ファイルをメインのMutt設定から呼び出すには、~/.muttrc 設定ファイルの最初にこの行を配置するだけです。
Source default account configuration
source "gpg2 -dq ~/.mutt/gmail.gpg |"
末尾のパイプに注意してください:これはMuttがコマンドの出力を使用できるようにするために重要です。「pass」というパスワードマネージャーを使用している場合、ファイルを手動で暗号化する必要はありませんが、パスワードストアに保存されるエントリを作成する必要があります。もっと知りたいですか?私たちは「pass」をパスワードマネージャーとして使用する方法についての記事で話しました。
マクロの定義
Muttでは、さまざまな目的のために使用できる「マクロ」を定義できます。たとえば、フォルダー間の切り替えのためのショートカットを設定することができます。以下は、私たちの~/.muttrcファイルに配置できる便利なものです。その目的は明確です:
macro index gd "<change-folder>$postponed<enter>" "go to drafts"
macro index gs "<change-folder>$record<enter>" "go to sent"
macro index gi "<change-folder>$spoolfile<Enter>" "go to inbox"
macro index gt "<change-folder>$trash<enter>" "go to trash""
結論
この記事では、主要なLinuxディストリビューションのいくつかで、コマンドラインメールクライアントMuttのインストールと設定方法を学びました。最も重要なオプションのいくつかを設定する方法、Gmailアカウントで使用するためにMuttを設定する方法、gpgを使ってメインのMutt設定ファイルから参照される別の暗号化されたファイルに機密情報を保存する方法について学びました。また、ディレクトリを迅速に切り替えるためのマクロも作成しました。これで、ターミナルからメールを読むことができるようになります!
