現状までで、いくつかのサービスが起動していますが、そのサーバー側からエラーなどメッセージが送信される事があります。
また、運営している「じじぃの引出し」には、「お問い合わせフォーム」を設置していますから少なくても、メール送信機能は必要です。
設定によっては、一般的な送受信可能なメールサーバーを構築する事も可能ですが、とりあえずは、送信のみ可能な、メールサーバーを構築します。
送信専用、メールサーバー構築
Postfixのインストール
メールを配送するプログラムとしては、「Postfix」利用します。
まず、インストール状況を確認し、インストールされていない場合には、インストールします。
$ dnf list installed | grep postfix
・ <----- 何も表示されない場合には、インストールされていない
$ dnf list postfix <----- パッケージ確認
postfix.x86_64
$ sudo dnf install postfix <----- インストール実行
・
・
インストール:
postfix x86_64 2:3.5.9-24.el9 appstream 1.4 M
・
インストール済み:
postfix-2:3.5.9-24.el9.x86_64
完了しました!
$ dnf list installed | grep postfix <----- 再確認
postfix.x86_64 2:3.5.9-24.el9 @appstream
設定ファイルを環境にあわせ編集
postfix は /etc/postfix/main.cf のファイルで設定しますので、まずは既存のファイルはバックアップし、メールサーバのドメイン名を自分の環境に合わせます
確認後、再起動と自動起動設定
$ sudo cp -p /etc/postfix/main.cf /etc/postfix/main.cf.org
$ sudo vi /etc/postfix/main.cf
・
・
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
## ----- 2024.01.03 kazuban
myhostname = mail.kazuban.com <----- メールサーバのホスト名
・
・
#mydomain = domain.tld
## ----- 2024.01.03 kazuban
mydomain = kazuban.com <----- メールのドメイン
・
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost <----- 自分からのみ受け取る
・
# Enable IPv4, and IPv6 if supported
inet_protocols = all <----- プロトコル(IPv4、IPv6両方)
・
・
## ----- 2024.01.03
masquerade_domains = kazuban.com <----- サブドメインを付けない
・
・ <-----main.cf 保存
$ sudo postconf -n <------ 変更の確認
・
inet_protocols = all
masquerade_domains = kazuban.com
mydomain = kazuban.com
myhostname = mail.kazuban.com
・
$ sudo postfix check <----- 設定ファイルのチェック、エラーがなければOK
$ sudo systemctl restart postfix <----- 再起動
$ sudo systemctl status postfix <----- 起動状態確認
・
$ sudo systemctl is-enabled postfix <----- 自動起動確認
disabled <----- disabled であれば、自動起動になっていない
$ sudo systemctl enable postfix <----- 自動起動設定
$ sudo systemctl is-enabled postfix <----- 自動起動再確認
enabled <----- enabled で、自動起動になっている
メール送信の確認
配送確認を「mail」コマンドでやってみましたが、コマンドが見つからないと叱られてしまいました。
$ mail
bash: mail: command not found...
Install package 's-nail' to provide command 'mail'? [N/y]
「s-nail」をインストールして、再度、「mail」コマンドで送信テストしてみます。
$ sudo dnf install s-nail
・
$ mail hogehoge@hogehoge.com
Subject: Mail test
To: hogehoge@hogehoge.com
test-mail from rockylinux
<------ 「Ctrl」+「d」キー入力
Send this message [yes/no, empty: recompose]? yes
以前は、本文入力終了は、「.」文字で終了し送信でしたが、
「s-nail」は、「Ctrl」+「d」のようです。
Windowsマシンで、Eメール確認すると、無事に届いていました。
メール転送
サーバーからなにかのタイミングで、root宛にメールを送ってくる場合があります。
そのメールは、rootでログインする事で読む事はできますが、定期的な確認は無理があります。
やはり、サーバ管理上、リアルタイムに確認するために、root宛メールは管理者アドレスへ転送させる必要があります。
メール転送状況は、「/etc/aliases」に書かれています
$ cat /etc/aliases
#
# Aliases in this file will NOT be expanded in the header from
# Mail, but WILL be visible over networks or from /bin/mail.
#
# >>>>>>>>>> The program "newaliases" must be run after
# >> NOTE >> this file is updated for any changes to
# >>>>>>>>>> show through to sendmail.
#
# Basic system aliases -- these MUST be present.
mailer-daemon: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
adm: root
lp: root
・
・
# Person who should get root's mail
#root: marc
ほとんどのデーモンが、root宛に転送しているのが分かります。
このファイルの最後の行に、root宛のメールを転送させたい転送先メールアドレスを記入すると、root宛メールをそのアドレスへ転送する事ができます。
ただし、このファイル「/etc/aliases」の「>> NOTE >>」にコメントがあるように
「newaliases」コマンドを実行する必要があります。
$ sudo vi /etc/aliases
・
#
# Aliases in this file will NOT be expanded in the header from
# Mail, but WILL be visible over networks or from /bin/mail.
#
・
・
# Person who should get root's mail
#root: marc
root: hogehoge <------ root宛を転送するユーザーを追加
hogehoge: hoge@hogehoge.com <----- ユーザー宛を転送するアドレスを追加
・
$ sudo newaliases <----- 必ず、実行
これで、root宛メールは、「hogehogeユーザー」と「hoge@hogehoge.com」に転送されます。
たとえは、前回作成した、WordPressのバックアップの自動実行コマンド「crontab」の
設定ファイルに「MAILTO=root」を追加すると
$ crontab -e
MAILTO=root
00 3 * * * /home/kazu/bin/MariaDB_Backup.sh
30 3 * * * /home/kazu/bin/Wp-Content_Backup.sh
自動起動時に、rootへメールされ、今回の設定で「hoge@hogehoge.com」へ転送されます。
このメールで、バックアップの実行を確認できます。
コメント