端くれプログラマの備忘録 ホスティング [ホスティング] CentOS 7で送信専用メールサーバーを構築する (Postfix)

[ホスティング] CentOS 7で送信専用メールサーバーを構築する (Postfix)

ウェブサイトの問い合わせフォーム用に、Postfixを送信専用メールサーバーとして設定する。

Postfixがインストールされているか確認。

# yum list installed | grep postfix
postfix.x86_64

現在の設定を表示。

# sudo postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd  $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = localhost
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550

現在の設定をバックアップ。

# cp -p /etc/postfix/main.cf /etc/postfix/main.cf.back

設定編集。

# vi /etc/postfix/main.cf
myhostname = mail.example.com
mydomain = example.com
inet_interfaces = localhost
inet_protocols = all
masquerade_domains = example.com

確認。

# postconf -n
# postfix check

再起動。

# systemctl restart postfix

確認。

# systemctl status postfix
· postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor  preset: disabled)
   Active: active (running) since Thu 2019-01-14 16:47:28 PST; 41s ago
  Process: 6321 ExecStop=/usr/sbin/postfix stop (code=exited, status=0/SUCCESS)
  Process: 6334 ExecStart=/usr/sbin/postfix start (code=exited,  status=0/SUCCESS)
  Process: 6332 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited,  status=0/SUCCESS)
  Process: 6330 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited,  status=0/SUCCESS)
Main PID: 6406 (master)
   CGroup: /system.slice/postfix.service
           ├─6406 /usr/libexec/postfix/master -w
           ├─6407 pickup -l -t unix -u
           └─6408 qmgr -l -t unix -u
Jan 14 16:47:28 example.com systemd[1]: Starting Postfix Mail Transport Agent...
Jan 14 16:47:28 example.com postfix/master[6406]: daemon started -- version  2.10.1, configuration /etc/postfix
Jan 14 16:47:28 example.com systemd[1]: Started Postfix Mail Transport Agent.

自動起動の確認。

# systemctl is-enabled postfix
enabled
もし自動起動されてなければ設定する
# systemctl enable postfix

telnetを使ってメール配信テスト。

$ yum -y install telnet
$ telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 mail.example.com ESMTP Postfix
helo localhost
250 mail.example.com
mail from:user@example.com
250 2.1.0 Ok
rcpt to:example@example.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
testmail
.
250 2.0.0 Ok: queued as E993340403C
quit
221 2.0.0 Bye
Connection closed by foreign host.

ログを見る。

# vi /var/log/maillog

メールが受け取れていればOK。

参考サイト

CentOSとpostfixで送信専用のメールサーバーを構築する。(メールサーバー構築 1)
https://www.rem-system.com/mail-postfix01/