Postfixの設定
まずはPostfixのインストールを行います。
dnf install -y/etc/postfix/main.cfを編集し、以下の項目を設定します。
# 自身のホスト名を記載する。
myhostname = mail.domain.internal
# 自身のドメイン名を記載する。
mydomain = domain.internal
# 待ち受けるネットワークインターフェースを指定する。all、IPアドレス等。
inet_interfaces = all
# 使用するプロトコルを指定する。all/ipv4/ipv6
inet_protocols = ipv4
# 他のマシンに転送せずにローカルに配送するドメインを指定する。
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 利用するPCのネットワークを指定する。指定したネットワークからのメールを転送する。
mynetworks = 127.0.0.0/8 172.16.0.0/24
# 今回はPOPを使用するためMaildirを指定。IMAPの場合はMailBoxを指定する。
home_mailbox = Maildir/
# LMTPプロトコルによりUNIXドメインソケットを使用してファイルベースの通信路を使用する。
virtual_transport = lmtp:unix:/var/spool/postfix/private/dovecot-lmtp設定が完了したら、以下のコマンドで構文チェックを行います。
postfix check特にエラーが出なければ、サービスを起動します。
systemctl start postfix
systemctl enable postfixこれで、postfixの設定は完了です。
Dovecotの設定
ここからはDovecotの設定を行います。
まずは/etc/dovecot/conf.d/10-mail.confを編集し、メールボックスの設定を行います。
# 30行目あたり、メールボックスの場所を~/Maildirに設定する。
mail_location = maildir:~/Maildir次に、/etc/dovecot/conf.d/10-master.confを編集し、service lmtpの項目を以下のように変更します。unix_listenerのファイルパスはPostfixのvirtual_transportで指定したパスと合わせてください。
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0666
user = postfix
group = postfix
}
# Create inet listener only if you can't use the above UNIX socket
#inet_listener lmtp {
# Avoid making LMTP visible for the entire internet
#address =
#port =
#}
}
次に、/etc/dovecot/conf.d/10-auth.confを編集し、100行目当たりにあるauth_mechanismsの項目を平文ログインを許可するように設定します。また、OSユーザー認証を使用するには122行目当たりにある!include auth-system.conf.extを有効にしておきます。
# 100行目あたり
auth_mechanisms = plain login
# 122行目、
!include auth-system.conf.extOSでIPv6を使用しない設定にしているとサービスが起動できないので、/etc/dovecot/dovecot.confを編集し、IPv6を使用しないように設定しておきます。
listen = *設定が完了したら、サービスを起動する。
systemctl start dovecot
systemctl enable dovecotファイアウォールの設定
firewalldを起動している場合は必要なポートを開放します。
今回はPostfixで25番ポート、Dovecotで110番ポートを使用します。
以下のコマンドを実行し、ポートを開放しましょう。設定したらfirewall-cmd --reloadで反映します。
firewall-cmd --add-port=25/tcp --permanent
firewall-cmd --add-port=110/tcp --permanent
firewall-cmd --reloadユーザー作成
メールアカウントとして使用するためのユーザーとディレクトリを作成していきます。ここでは、user1を作成することにします。
useradd user1
mkdir -p /home/user1/Maildir/{cur,new,tmp}
chown -R user1:user1 /home/user1/Maildir/
chmod -R 700 /home/user1/Maildir/
passwd user1メールクライアントの設定
ユーザー作成が完了したので、メールクライアントの設定を行っていきます。。今回はThunderbirdを使用してアカウントの追加を行います。

POP3を選択していきます。

ユーザー作成時に設定したパスワードを記載します。

メール送信テスト
メールを送信する場合は、mailxあるいはmailコマンドを使用します。Alma Linux 9.6の環境では、s-nailパッケージをインストールすることで使用可能でした。この辺は適宜自身の環境に合わせてください。
dnf install -y s-nailインストールが完了したら、以下のコマンドを実行して作成したメールアカウントに対してメールを送信します。
echo "hello world." | mail -s "test send" user1@domain.internal以下のように、メールが受信できていることが確認できました。

以上でメールサーバーの設定は完了です。
その他、SSLに対応した場合の手順などは別途ご紹介します。