大容量のストレージが欲しくてTime4VPSのStorage VPSを使っていますが、OpenVZなのでLinuxしか使えません。この環境下でもFreeBSDで使い慣れたsendmailを使えるようにしましょう。
sendmailとmailクライアントのインストール
CentOSやDebianには標準でsendmailとmailコマンドが用意されていないので、パッケージからインストールします。
CentOSの場合、sendmailサーバーに加えてクライアントプログラムのmailxをインストールします。
1 | yum install sendmail mailx |
Debianの場合はsendmailサーバーに加えてsendmail-cfというツールとクライアントプログラムのmailutilsをインストールします。
1 | apt install sendmail sendmail-cf mailutils sasl2-bin |
今回Debian 9.11でsendmailをインストールしたところ、sasl2-binを要求されたので追加インストールしています。
sasl-binのメッセージに従って/etc/mail/sendmail.mcと/etc/mail/submit.mcの最後にinclude('/etc/mail/sasl/sasl.m4')dnlを追記してsendmailをリロードしました。
1 | /etc/init.d/sendmail reload |
CentOSの場合はインストールできたらサービスの自動起動設定をしてからサービスを起動します。Debianはインストールと同時に起動処理が完了しているので以下は不要です。
1 | systemctl enable sendmail.service |
通常のCentOSにはsendmailの代わりにPostfixが入っているらしくMTAの切り替えが必要になりますが、Time4VPSでインストールされるCentOS 7.6にはPostfixは入っていませんでした。
1 | # alternatives –config mta |
MTAってのはMail Transfer Agentね。
ポート開放とメール設定
CentOSならfirewall-cmdを使ってsmtpポートとpop3ポートを開放します。
1 | firewall-cmd --add-service=smtp --permanent |
確認結果は以下のとおり。
1 | # firewall-cmd --list-all |
Debianの場合はufwでポート開放します。
1 | ufw allow 110 |
確認結果は以下のとおり。
1 | # ufw status |
sendmailの初期設定はFreeBSDのsendmail設定と同じです。/etc/mailディレクトリ内のaccess, local-host-names, virtusertableファイルをそれぞれ設定します。
これに加えて一点だけLinux独自の設定が必要です。Sendmail で外部からのメールを受け入れ可能にする (CentOS 5.5)によるとCentOSのsendmailはデフォルトで外部メールを受信しない設定とのこと。/etc/mail/sendmail.cfの設定を書き換える必要があります。CentOS7もDebian9もSMTP daemon optionsのところにあります。
CentOS 7.6
1 | # diff sendmail.cf.org sendmail.cf |
Debian 9.11
1 | # diff sendmail.cf.org sendmail.cf |
これでmakeすればmailコマンドが使えるようになるよ。