sendmailサーバーソフトをインストールします。
# dnf  install  sendmail  sendmail-cf

システムのメイルサーバーとしてpostfixが動いていると困るので、一応ストップ操作します。
# systemctl  stop  postfix.sevice
# systemctl  disable  postfix.sevice

メイルサーバーのsmtpプロトコルが使うポートを開きます。
# firewall-cmd  --list-all-zones (開いているポートをチェック)
# firewall-cmd  --add-service=smtp --zone=public  --permanent
# firewall-cmd  --list-all-zones (開いているポートをチェック)
public (active)
target: default
icmp-block-inversion: no
interfaces: ens192
sources: 
services: cockpit dhcpv6-client smtp ssh    ← smtpが追加されていればOK

sendmail関係のファイルは/etc/mail ディレクトリ以下にあります。 
ここではごく基本的な設定方法のみ記載します。詳細はsendmail本を読んでください。
# cd /etc/mail
# ls
Makefile   aliasesdb-stamp  helpfile          mailertable.db  sendmail.mc   submit.mc      virtusertable.db
access     domaintable      local-host-names  make            spamassassin  trusted-users
access.db  domaintable.db   mailertable       sendmail.cf     submit.cf     virtusertable

・中継を許す宛先ドメインを登録します。
(例えばこのサーバーをmailtest.totsu.co.jp 192.168.20.10とします)
# vi access
# By default we allow relaying from localhost...
Connect:localhost.localdomain           RELAY
Connect:localhost                       RELAY
Connect:127.0.0.1                       RELAY
Connect:192.168.20.10                   RELAY
Connect:mailtest.totsu.co.jp            RELAY

・自分のホスト名や別名を登録します。
1行に1個の別名を記述します。
# vi local-host-names
localhost
localhost.localdomain
mailtest
mailtest.totsu.co.jp

・sendmailの設定をします。
# vi sendmail.mc

Dwmailtest     ← Dwのあとにホスト名の記述を追加します
Dmtotsu.co.jp  ← Dmのあとにドメイン名の記述を追加します

define(`confDOMAIN_NAME', `mailtest.totsu.co.jp')dnl ← 念のためにこのマシンのFQDN記述を追加します。

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl ← 自分のアドレスしか見ていないと送受ができないので削除します

DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl

LOCAL_DOMAIN(`localhost.localdomain')dnl スペースで区切って別名を設定できます。

LOCAL_DOMAIN(`localhost.localdomain mailtest.totsu.co.jp')dnl

dnl MASQUERADE_AS(`mydomain.com')dnl From:のドメイン名を書き換えられます。

MASQUERADE_AS(`totsu.co.jp')dnl

dnl FEATURE(masquerade_envelope)dnl エンベロープ送信者のドメイン名も書き換えます。

FEATURE(masquerade_envelope)dnl

dnl MASQUERADE_DOMAIN(localhost)dnl  localhostとなっているドメインは書き換えます。

MASQUERADE_DOMAIN(localhost)dnl

dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl

MASQUERADE_DOMAIN(localhost.localdomain)dnl

古い設定を削除します。
# make clean
# ls
Makefile  domaintable  local-host-names  make         sendmail.mc   submit.cf  trusted-users
access    helpfile     mailertable       sendmail.cf  spamassassin  submit.mc  virtusertable

# make all  ← sendmail.cfファイルその他を生成します。
# ls
Makefile   domaintable     local-host-names  make             sendmail.mc   submit.mc      virtusertable.db
access     domaintable.db  mailertable       sendmail.cf      spamassassin  trusted-users
access.db  helpfile        mailertable.db    sendmail.cf.bak  submit.cf     virtusertable

sendmailの最小mailtest限の動作チェックをしてみます
# sendmail -bt -C/etc/mail/sendmail.cf
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> /tryflags er
> /parse root@mailtest.totsu.co.jp (このサーバーのローカルユーザーのメイルアドレスを入れて、ローカルユーザーだと認識できるか?)
mailer local, user root
> /parse root (このサーバーのローカルユーザーのメイルアドレスの名前だけを入れて、ローカルユーザーだと認識できるか?)
mailer local, user root
> /tryflags er
> /parse test1@totsusangyo.com (よそのドメインのユーザーのメイルアドレスを入れて、外に送らなければいけないことを認識できるか?)
Cracked address = $g
Parsing envelope recipient address
mailer esmtp, host totsusangyo.com., user test1@totsusangyo.com
> /tryflags es
> /try smtp root
Trying envelope sender address sysinstall for mailer smtp
Rcode = 0, addr = root@mailtest.totsu.co.jp
(このテストから抜けるにはCtrl + d を入力します)

# systemctl start sendmail

mailコマンドを使いたいのでmailxを追加インストールします。
# dnf install mailx

なお、RedHat EL9などではmailx(mailコマンド)が無くなって、代わりにs-nailを使うようになりました。
その場合は、下記のように追加インストールしてください。
# dnf install s-nail
使い方は下記のmailコマンドと同じです。
mailはs-nailにエイリアスされているのでmailと入力しても動きます。

# mail testuser@totsusangyo.com (実際に外のメイルアドレスにメイルを送って、送られるかテストします)
subjectやメイル本文を入力してからCtrl + dを入力するとメイルが送付されます。

sendmailが自動起動されるように設定します。
# systemctl enable sendmail

メイル送付先のaliasesを設定したい場合は下記ファイルで行います。
# vi /etc/aliases
このマシンのrootユーザー宛のメイルを特定のアドレスに転送したい場合は最下行を修正します。
# Person who should get root's mail
#root:          marc

root:  test1@totsusangyo.com

修正したら内容を反映させます。
# newaliases

なお、上記の設定はとりあえずメイルが送れるようにするための簡易設定です。
本格的にメイルサーバーを立ち上げたい場合はsendmailの参考書を参照してちゃんとした設定をしてください。


Last modified: Friday, 13 October 2023, 10:51 AM