現在ではメール配信サービスなどが充実しており、メールサーバーを立てる機会なんぞは少ないかとしれません。
そもそも一般的なレンタルサーバー会社の場合、レジストラとセットになっていることが多いですよね。その場合、ほぼ自動的にメールアドレスが作れるため、その必要性もありません。
ただ、根本を理解しておくのにやっておいて損はないだろうということで書いておきます。
全編を通じてお世話になった参考リンク
CentOSとPostfixを使って送信専用のメールサーバーを構築する方法
ドメイン取得
当たり前ですが、独自ドメイン自体を取得する必要がありますので、レジストラで独自ドメインの申請&登録を行います。
DNS登録
以前の記事でも話したようにAレコードとMXレコードを登録します。
例えば独自ドメインをexample.com、サーバーのIPを111.121.122.222で登録したとします。
メールアドレスはhoge@example.comなどと送信することを想定します。
その場合、下記のように登録するケースが一般的ではないでしょうか。
1 2 3 |
mail.example.com A 111.121.122.222 example.com MX mail.example.com 50(←優先度です。0〜100で10刻みで、50がディフォのようです。) |
このようにレジストラに登録し、時間がたった後(レジストラによるようです。AWSは一瞬でしたがlolipopはかなり時間がかかりました。)、host -v(ネットワークコマンドで一番詳細な情報が見れるのはこのコマンド+オプションのようです。)で下記のようになっていればOKです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
Trying "example.com" ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19784 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 2363 IN A 111.121.122.222 Received 58 bytes from 192.168.11.1#53 in 27 ms Trying "example.com" ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15510 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;example.com. IN AAAA ;; AUTHORITY SECTION: example.com. 2501 IN SOA example.com. postmaster.example.com. 1588504769 3600 1800 604800 3600 Received 89 bytes from 192.168.11.1#53 in 25 ms Trying "example.com" ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19419 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;example.com. IN MX ;; ANSWER SECTION: example.com. 2501 IN MX 50 mail.example.com. |
postfixインストール
前回まででDNS設定ができたらメール送信のためにソフトウェアをインストールします。
まずはpostfixをインストールしましょう。
1 |
yum -y install postfix |
その後 /etc/postfix/main.cf の下記部分を編集しましょう。
1 2 3 |
myhostname = mail.example.com mydomain = example.com |
最下部に下記を追加
masquerade_domains = example.com
最低限の場合、上記で動くかと思います。
この後、 postfix check コマンドで何も表示されていなければエラーがないということです。
(*一応、 postconf -n で意図通りのドメインやホストが設定されているかを確認した方が良いかもしれません。)
この後、 service postfix restart (CentOS6まで) か systemctl restart postfix (CentOS7) で再起動してあげればOKです。
IP開放
postfixは(実務上は変えた方が本当はいいですが)通常では25番を使用すると思いますので、25番ポートを開放します。
CentOS6
1 2 3 4 |
vim /etc/sysconfig/iptables #下記を追加 -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT service iptables restart |
CentOS7
1 2 3 4 |
firewall-cmd --list-services && \ firewall-cmd --add-service=smtp --permanent && \ firewall-cmd --reload && \ firewall-cmd --list-services |
実際にポートが開いているかどうかは下記リンクでテストをしてみると良いです。
https://www.cman.jp/network/support/port.html
テスト送信
1 |
secho "サンプル本文" | mail -s "サンプルタイトル" -r hoge@example.com 送信先アドレス |
上記のようなワンライナーでもメールを送ることができますが、正しく設定していなくても送れてしまうので、メーラーなどから実際に設定して送るのがいいでしょう。
(参考 はじめてのCentOS6 P299以降)