Postfix(送信専用のメールサーバーを構築) - AlmaLinux

Postfix

インストール

sudo dnf -y install postfix

ファイアウォールの設定を変更します。

sudo firewall-cmd --permanent --add-service=smtp --zone=public

postfix の設定ファイルである「 main.cf 」のファイルをコピーしておきます。

sudo cp -p /etc/postfix/main.cf /etc/postfix/main.cf.org

設定の変更

「 example.com 」の部分を独自ドメインに変更してください。

コピーしたファイルを変更していきます。

sudo vi /etc/postfix/main.cf

「 myhostname 」を次のように変更します。

myhostname = mail.example.com

「 mydomain 」を次のように変更します。

mydomain = example.com
masquerade_domains = example.com

「 myorigin 」を次のように変更します。

myorigin = $mydomain

「 inet_interfaces 」を次のように変更します。

inet_interfaces = all

「 mydestination 」を次のように変更します。

この設定で「 $mydomain 」を設定しておかないと、メールが送信できず、「 mail loops back to myself 」といったエラーメッセージが出る可能性が高いです。

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

DNS レコードの設定

次の画像は、「 Xserver VPS 」の DNS 設定画面です。

IP アドレスが「 xxx.xxx.xxx.xxx 」、ホスト名が「 {hostname} 」、独自ドメインが「 example.com 」の場合、DNS レコードを以下のように設定します。

ホスト名 example.com
種別 TXT
内容 v=spf1 +a:s{hostname}.xserver.jp +a:example.com +mx include:spf.sender.xserver.jp ~all
TTL 3600
優先度 0
ホスト名 mail.example.com
種別 A
内容 xxx.xxx.xxx.xxx
TTL 3600
優先度 0
ホスト名 example.com
種別 MX
内容 mail.example.com
TTL 3600
優先度 0

テストメール

メールアドレスの @ より前の部分はユーザー名を指定します。

ユーザー名が「 user 」の場合のメールアドレスは、「 user@example.com 」です。

sendmail -t <<EOL
From: user@example.com
To: send_user@example.com
Subject: test mail
test mail
Hello, World
EOL

メールのログファイルを確認してみます。ログファイルは「 sudo less /var/log/maillog 」で確認できます。

メールのログを確認して「 status=sent (250 2.0.0 OK ....) 」だとメールが送信されたことになります。

メールの件名を省略すると、メールのログでは送信されているのに、送信先の受信ボックスに入っていない場合があります。

その場合は、迷惑メールフォルダに入っている場合があります。