Mutt を送信のためのクライアントとして使いたい人向けです
Mutt は メールを読み書きするためのソフトなんですが、自分は Mutt を送信のためだけに使いたいです。受信や読み書きのCUIクライアントツールとして使いたい場合は、以下の方法だと役に立たないかもしれません。
当方、UNIX/Linuxコマンドとかにそんなに詳しくないです。FreeBSDなのでpkgコマンドが使えれば簡単なんだろうけど、pkgコマンドは使えないので、手動でインストールする。
上記のサイトからダウロード。(wget使える)今回は下記のファイル。
- mutt-2.2.13.tar.gz
そして、展開し、移動。
tar -zxvf ./mutt-2.2.13.tar.gz
cd ./mutt-2.2.13
試行錯誤の末、下記のような引数を与えることでインストールできた。
./configure --prefix=/home/**my_dir**/.local \
--enable-external-dotlock \
--with-homespool=/home/**my_dir**/Mail
make
make install
※初心者のために補足しておくと、上記の \
(バックスラッシュ)は改行を表すもので、1行が長くなり見にくくなるので改行を入れるため入れています。通常、コマンドの途中でエンターキーを押すと、そのコマンドが即時実行されてしまいますが、バックスラッシュを打ってからエンターを押すとコマンドを改行することができます。
configureの説明
--prefix=/home/**my_dir**/.local
自分のローカルディレクトリにインストールしたいため
なんで .local としたのかは自分でもよくわからない
--enable-external-dotlock
これはなくても動くかもしれない。後述のdotlockファイルが
作れない問題があり付け加えた
--with-homespool=/home/**my_dir**/Mail
dotlock問題が解決しないまま、勘でこのパラメータ与えたら
エラーなくインストールできた。
インストールが完了してversionを表示するとこのようになった。
パスが通ってないので、muttのパスを直接叩いてる。
~/.local/bin/mutt -v
Mutt 2.2.13 (2024-03-09)
Copyright (C) 1996-2023 Michael R. Elkins and others.
Mutt comes with ABSOLUTELY NO WARRANTY; for details type `mutt -vv'.
Mutt is free software, and you are welcome to redistribute it
under certain conditions; type `mutt -vv' for details.
System: FreeBSD 11.2-RELEASE-p15 (amd64)
ncurses: ncurses 5.9.20140222 (compiled with 5.9)
libiconv: 1.16
libidn: 1.35 (compiled with 1.35)
追記
上記、3つのパラメーターが必要と書きましたが、 --prefix=/home/**my_dir**/.local
このパラメーターだけでも、送信だけだったら大丈夫みたいです(やや不確実さあり)。このパラメーターだけだと、インストールが失敗したっていうメッセージがでるのですが、試しに mutt コマンドを叩いてみるとメールが送信できてました。そのメールは迷惑フォルダに振り分けられていて、すぐには気づかなくってだいぶ後になってそのメールが送信できていたことに気づきました。
mutt_dotlock 問題
上記のconfigureの際の引数が適切でないと、次のようなエラーでこけた。
...
./install-sh
-c -d '/home/**my_dir**/.local/bin' /usr/bin/install
-c mutt mutt_dotlock mutt_pgpring
pgpewrap '/home/**my_dir**/.local/bin'
./install-sh -c -d '/home/**my_dir**/.local/bin'
/usr/bin/install -c muttbug flea smime_keys '/home/**my_dir**/.local/bin'
make install-exec-hook
if test -f /home/**my_dir**/.local/bin/mutt.dotlock
&& test -f /home/**my_dir**/.local/bin/mutt_dotlock ;
then rm -f /home/**my_dir**/.local/bin/mutt.dotlock
ln -sf /home/**my_dir**/.local/bin/mutt_dotlock /home/**my_dir**/.local/bin/mutt.dotlock ;
fi
if test -f /home/**my_dir**/.local/bin/mutt_dotlock
&& test xmail != x ;
then chgrp mail /home/**my_dir**/.local/bin/mutt_dotlock
&& chmod 2755 /home/**my_dir**/.local/bin/mutt_dotlock
|| { echo "Can't fix mutt_dotlock's permissions!
This is required to lock mailboxes in the mail spool directory." >&2 ;
exit 1 ; }
fi
chgrp: you are not a member of group mail
Can't fix mutt_dotlock's permissions!
This is required to lock mailboxes in the mail spool directory.
*** Error code 1
Stop.
make[4]: stopped in /home/**my_dir**/mutt-2.2.13
*** Error code 1
...
よくわかっているわけではないけれど、メール送信時に衝突を避けるため、dotlockファイルを作成しているけれど、それが作成できないとかそういう問題。
また、mail というグループ名に chgrp できないという問題なのかも。いずれにしてもrootが使いない環境下ではこの問題は正攻法で解決できないので、上述のようなoptionで回避を狙ったわけです。
送信テスト
echo "hogehoge" | ~/.local/bin/mutt -s "this is subject" myaddress@example.co.jp
で送れるはず。だいたい、迷惑メール判定される。
参考
- https://www.linuxfromscratch.org/blfs/view/svn/basicnet/mutt.html
- https://peacepipe.toshiville.com/2007/03/mutt-1514-mutt.html
- https://emaillab.org/mutt/1.4/doc/manual_ja-6.html
- https://github.com/Homebrew/legacy-homebrew/issues/45400
今回はつかわなかったがportsをローカル環境に入れられたらな・・・