qmail を捨てて msmtp を使う

はじめに

私自身はDebianで長らくqmailをインストールしたままで使っていました。とは言っても、MTAとして使うのはcron用途だけでしたので smtp server を立てるのも大げさです。そこでserverを立てるのを止めて、clientで外部のsmtpを経由してcronのメールを受け取ることにします。smtp client としては msmtpに乗り換えます。

msmtp, msmtp-mtaのインストール

cron はlocalのMTAを想定しいますので、sendmail を msmtpのシンボリックリンクにする必要があります。

しかし、Debian の msmtp パッケージをインストールしただけでは sendmail コマンドへのシンボリックリンクが設定されません。Debianでは、msmtpとは別にある msmtp-mta パッケージをインストールすることで、このシンボリックリンクを作成してくれます。ですので、これらを両方インストールします。

msmtpの設定

~/.msmtprc

# Set default values for all following accounts.
defaults
# tls on
# tls_trust_file /etc/ssl/certs/ca-certificates.crt
aliases ~/.aliases
logfile ~/.msmtp.log

# The SMTP server of the provider.
account provider
host mail.provider.ne.jp
from your_name@mail.provider.ne.jp
auth on
port 587
user your_account
passwordeval gpg -d ~/.msmtp.password.gpg

# Set a default account
account default : provider

~/.aliases

myname: myname@mail.provider.ne.jp

system wideな設定も同様にします:

/etc/msmtprc

上記の .msmtprc の aliasesの箇所を/etc/aliasesに変えました。

/etc/aliases

以下のようにしました:

myname: myname@mail.provider.ne.jp
root: myname@mail.provider.ne.jp
defaults: myname@mail.provider.ne.jp

qmail の serviceを削除

Debianの場合、insservを使ってserviceの追加・削除を行います。まず現在のqmail関係のserviceを確認します。

> sudo ls -l /etc/rc*.d/*qmail*
lrwxrwxrwx 1 root root 15 Jun  7 21:09 /etc/rc0.d/K01qmail -> ../init.d/qmail*
lrwxrwxrwx 1 root root 15 Jun  7 21:09 /etc/rc1.d/K01qmail -> ../init.d/qmail*
lrwxrwxrwx 1 root root 15 Oct 14  2013 /etc/rc2.d/S20qmail -> ../init.d/qmail*
lrwxrwxrwx 1 root root 15 Oct 14  2013 /etc/rc3.d/S20qmail -> ../init.d/qmail*
lrwxrwxrwx 1 root root 15 Oct 14  2013 /etc/rc4.d/S20qmail -> ../init.d/qmail*
lrwxrwxrwx 1 root root 15 Oct 14  2013 /etc/rc5.d/S20qmail -> ../init.d/qmail*
lrwxrwxrwx 1 root root 15 Jun  7 21:09 /etc/rc6.d/K01qmail -> ../init.d/qmail*

次に、serviceを削除します:

> sudo insserv -r qmail

qmail関係のserviceが削除されたかを確認します。

> sudo ls -l /etc/rc*.d/*qmail*
ls: cannot access /etc/rc*.d/*qmail*: No such file or directory