備忘録:高速 CLIメーラー neomutt のインストール (Ubuntu系Linux編)
2020/10/30
2021/03/26
タグ: fetchmail, mutt, neomutt, procmail, w3m
普段はメールソフトに関して言えばthunderbirdを愛用して使っているが、以前、alpineというCLIベースのメールソフトを使ったことがあった。このソフトは軽快で動作し可愛いソフトウエアでもあった。最近のメールはリッチコンテンツ化してうざったくもある。そんなときは、最初からテキストベース前提でゆくのも悪くない。もちろんテキストベースCLIツールと言っても画像も動画もブラウザも起動できます。
そんな中で、心気一転使ったことがない大昔から気になっていたmuttというメールソフトを使ってみようかなと思いました。調べてみるとneomuttというmuttをインスパイアしたものがあり、使ってみたいと思いました。結論から言うと、これはとてもいいですね!!大変気に入りました。 neomutt、muttに関してはGmailを使ったIMAP接続は沢山ネットでも事例が見つかりましたがPOP3は少ない。今回は個人で使っているOCNのPOP接続でやってみました。
neomuttのインストール作業
neomuttのインストールは今回ソースからコンパイルしてやってみようと思います。私はサーバ構築は普段RedHat系のOSを使用しますが、普段クライアントOSとしてはUbuntu系のLinuxで作業を行っています。ということで手順はUbuntu/Debianの方はマッチすると思います。gcc,makeなど使うので予めbuild-essentialは導入されていることが前提です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ git clone https://github.com/neomutt/neomutt.git $ sudo apt install xsltproc $ sudo apt install libxml2 $ sudo apt install libxml2-utils $ sudo apt install ncurses* $ sudo apt install libidn2-0 libidn2-0-dev $ sudo apt install docbook-xml $ sudo apt install docbook-xsl $ sudo apt-get install fetchmail msmtp procmail $ sudo apt install sasl2-bin $ sudo apt install cyrus-sasl2 $ sudo apt install libsasl2-2 $ sudo apt install libsasl2-dev $ sudo apt install w3m $ cd neomutt $ ./configure $ make $ sudo make install |
neomuttセットアップ
neomuttがインストールできたら、今度はセットアップ作業を行っていきましょう。実はここからが面倒なのです。
neomuttを使ったメールの送受信は実はneomuttだけで実現できません。neomuttは単なるメール管理の部分だけを受け持ちます。よってメールの受信とメールの送信は他のCLIツールと併用して構築が必要となってきます。私のケースでは外部メールの受信はfetchmailで/var/mail/ユーザ名に一旦取り込んで、procmailを使って自分のログインフォルダー配下の/home/ユーザ名/Mailへ転送するイメージです。メールの送信に関してはmsmtpを使用します。
neomutt ソフトウェア構成
- Read/Compose ーーー neomutt
- Mail Receiving&MailBox retrieving ーーー fetchmail/procmail
- Mail Sending ーーー msmtp
fetchmailの設定
.fetchmailrcファイルをログインディレクトリの直下に作成します。下記はOCNのPOPの例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ cd $ vi .fetchmailrc set postmaster Linuxローカルユーザ名 set nobouncemail set logfile tmp/fetchmail.log defaults bad-header accept protocol auto no mimedecode no fetchall keep # 取り込んだメールをサーバー上に残しておく # 外部メールユーザ名(下記はOCNメールPOP) poll pop.ocn.ne.jp protocol pop3 port 995 username 'xxxxxxx@xxxx.ocn.ne.jp' password 'XXXXXXXXXXXXX' ssl mda "/usr/bin/procmail -d %T" |
10分間隔でfetchmailを起動
crontabで編集して10分間隔で起動しましょう!
1 |
*/10 * * * * /usr/bin/fetchmail > $HOME/tmp/fetchmail.log 2>&1 |
procmailの設定
ホームディレクトリの直下に.procmailrcを作成しfetchmailの起動時に呼び出せるようにします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
$ cd $ vi .procmailrc PATH=/bin:/usr/bin:/usr/sbin:/usr/local/bin SHELL=/bin/bash MAILDIR=$HOME/Mail ADDRESS=xxxxxxxx@xxxxx.ocn.ne.jp DEFAULT=/var/mail/ローカルユーザ名 SPAM=$MAILDIR/spam LOGFILE=$HOME/tmp/procmail.log LOCKFILE=$HOME/.lockmail VERBOSE=on # backup :0 c backup # spam :0 * ^Subject:.*(sex|spam) spam # Inbox :0 Inbox # end of file |
msmtpの設定
ホームディレクトリ直下に.msmtprcを作成し下記の送信情報を設定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$ cd $ vi .msmtprc # Set default values for all following accounts. defaults auth on port 465 tls on tls_trust_file /etc/ssl/certs/ca-certificates.crt tls_certcheck on syslog on account ocn host smtp.ocn.ne.jp from xxxxxxx@xxxx.ocn.ne.jp user xxxxxxx@xxxx.ocn.ne.jp password XXXXXXXXXX account default : ocn |
neomuttの設定
neomuttの設定を行う場合は、下記のように.muttフォルダーを作成しそのなかにmuttrcファイルを作成&編集を行います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
$ mkdir .mutt $ vi .mutt/muttrc set mbox_type = mbox set folder= ~/Mail set record = +Sent set postponed = +Drafts set spoolfile = +Inbox mailboxes +Inbox set smtp_authenticators="login:plain" set smtp_url = "smtp://xxxxxxxxx@xxxxx.ocn.ne.jp@smtp.ocn.ne.jp:587/" set smtp_pass = "XXXXXXXXXXXX" set mail_check = 60 set use_from=yes set realname="My Name" set from="xxxxxxxxxx@xxxxxx.ocn.ne.jp" set envelope_from=yes set charset="UTF-8" set send_charset="iso-2022-jp:UTF-8" set sendmail="/usr/bin/msmtp -a default" set editor = "nano" set assumed_charset="iso-2022-jp:euc-jp:shift_jis:utf-8" set charset="utf-8" set send_charset="us-ascii:iso-2022-jp" #set sanitize_ja_chars=yes set thorough_search=yes set rfc2047_parameters=yes set forward_decode=yes set mime_forward_decode=no set edit_headers=yes set sidebar_visible = yes auto_view text/html |
Viewerの設定
mimeは拡張子似合わせてどのようなタイプのアプリケーションを使うか決めます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ cd $ vi .mime.types application/postscript ps eps application/msword doc docx application/msexcel xls xlsx application/pdf pdf image/gif gif image/jpg jpg jpeg image/png png text/html htm html application/pgp pgp audio/x-aiff aif aifc aiff |
.mailcapは内容に合わせて起動アプリを設定するものです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ cd $ vi .mailcap video/*; vlc %s > /dev/null text/html; w3m -I %{charset} -T text/html; copiousoutput; text/*; more %s; print=enscript -2Gr %s image/*; pinta %s application/pdf; evince %s application/x-pdf; evince %s application/zip; file-roller %s application/gzip; file-roller %s application/x-rar-compressed; file-roller %s application/x-msexcel; xdg-open %s application/ms-exc; xdg-open %s application/excel; xdg-open %s application/msexcel; xdg-open %s application/vnd.ms-exc; xdg-open %s application/vnd.ms-excel; xdg-open %s application/msword; xdg-open %s |
neomuttの起動
1 |
$ neomutt |
w3mを使ってauto_viewを設定すると、HTMLオンリーメールもこの通り自動でよしなに処理して表示できます。すばらしい!