今務めている会社に新たに採用された新人の為に研修担当として色々とHTMLやCSSなど業務に関わるWeb知識を指導していて、そろそろメールの設定や送受信、Wordpressで固定ページの記事登録などもしていきたいなと思い、仮想環境にLinuxをインストールして簡単なサーバーを構築していました。
ドメイン取得した場合は、自分たちのメアドを独自ドメインにしたものに替えたいというクライアントも少ないくないため、フリーのドメインで送受信していたアカウントから変更する作業もサービスとして組み込まれることもあるため、メールの仕組みとかもちょっと教えておきたいところ。
ただ、自分自身メールサーバーの構築もあまり行わないため試行錯誤しながら作業してますw
今後また同じことする可能性があるため、ここにちょっと記録していきます。
今回サーバーのOSとして選んだのはCentOSの開発が終わってCentOSの代替として名が挙がっているものの一つ、Rocky Linuxを選択しました。
まずはSTMPサーバーの構築。いつものごとく、お世話になっているServer Worldさんのコンテンツを参考に構築。
以下はそれらの作業を一部引用して掲載しています。
サーバーワールド:MailサーバーPostfixインストール
https://www.server-world.info/query?os=Rocky_Linux_8&p=mail&f=1
dnf -y install postfix
以下で#が付いているものは削除してコメント解除
myhostname = mail.rocky.linux
mydomain = rocky.linux
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8, 10.0.0.0/24
home_mailbox = Maildir/
disable_vrfy_command = yes
message_size_limit = 10240000
はじめ、社内サーバーだからということでmyhostnameとmydomainの箇所をサーバーのIDアドレスを入力していました。
myhostname = 10.0.5.〇〇
mydomain = 10.0.5.〇〇
これだと設定時の確認でエラーが表示しました。この部分はIPアドレスではなくドメイン形式でないとダメっぽい。
OSのサーバーを構築する際に設定したホスト名をここに設定すると良さそうだったので、コマンドでhostnameを入力して表示したものを設定しました。
次に受信サーバーを構築します。
サーバーワールド:MailサーバーDovecotインストール
https://www.server-world.info/query?os=Rocky_Linux_8&p=mail&f=2
vi /etc/dovecot/dovecot.conf
listen = *, ::
vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login
vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
vi /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
これで送受信するためのサーバー構築は終了したはずなので、メールソフトを利用してのメール送受信をテストすること。
利用するソフトはThunderbird Mail。
アカウントは以下のような設定を行いました。
メールアドレス:サーバーのユーザー名@rocky.linux
パスワード:サーバーのユーザーに設定したパスワード
受信サーバー(POP3):10.0.5.○○ ポート番号:110 SSL:STARTTSL 認証方式:通常のパスワード認証
送信サーバー(SMTP):10.0.5.○○ ポート番号:25 SSL:STARTTSL 認証方式:通常のパスワード認証
ユーザー名(送信、受信共に):サーバーのユーザー名
メールアドレスのドメインはIPアドレスではなくサーバーのホスト名を設定しましたが、送受信ともサーバーホスト名にはIPアドレスを設定しました。
社内サーバーな為、ホスト名にIPアドレスを入力するのは理解できたのですが、まさかメールアドレスにはIPアドレスではなく、サーバーのホスト名を入力するとは思いませんでした。
因みにメールアドレスをサーバーのメールアドレスに設定すると、接続時にそんなドメインはないよと怒られました。
よくレンタルサーバーやプロバイダからもらったメールアドレスがそのままメールアカウントになっていることがどういうことなのかが何となく分かりました。ドメイン含んだ状態で一つのアカウントとなるんですね。