Mutt を レンタルサーバーにインストールする

# Mutt を送信のためのクライアントとして使いたい人向けです

Mutt は メールを読み書きするためのソフトなんですが、自分は Mutt を送信のためだけに使いたいです。受信や読み書きのCUIクライアントツールとして使いたい場合は、以下の方法だと役に立たないかもしれません。

当方、UNIX/Linuxコマンドとかにそんなに詳しくないです。FreeBSDなのでpkgコマンドが使えれば簡単なんだろうけど、pkgコマンドは使えないので、手動でインストールする。

http://www.mutt.org/download.html

上記のサイトからダウロード。（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

※初心者のために補足しておくと、上記の `\` （バックスラッシュ）は改行を表すもので、１行が長くなり見にくくなるので改行を入れるため入れています。通常、コマンドの途中でエンターキーを押すと、そのコマンドが即時実行されてしまいますが、バックスラッシュを打ってからエンターを押すとコマンドを改行することができます。

### 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)

### 追記

上記、３つのパラメーターが必要と書きましたが、  `--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をローカル環境に入れられたらな・・・

 - https://faw.hatenablog.jp/entries/2009/01/09
 - https://qiita.com/bellflower2015/items/4aa2f388a29b1702dc0e