DTI ServersMan@VPS(CentOS7)のメールサーバの設定方法(SMTP:Postfix)です。
Postfixとは、メールサーバ(MTA、メール転送エージェント)です。CentOSでは
sendmailが標準ですが、postfixの方を使用する事が多々有ります。
root宛のメールの転送方法や、main.cfの設定、ログの見方については
以下のページに記載しました。
本ページの目次
yum install postfix
vi /etc/postfix/main.cf
編集箇所は以下です。mynetworksにて、このサーバ自体からしか
外部へメール送信出来ないようにしています。
postconf -n
home_mailbox = Maildir/
inet_interfaces = all
mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost
mydomain = example.com
myhostname = mail.example.com
mynetworks = 127.0.0.0/8
myorigin = $mydomain
root宛にメールを送信しtail -f /var/log/maillog
でログを見ていると「mail for ドメイン名 loops back to myself」
となってしまいました。そのため、「mydestination」項目に
「$mydomain」を入れると正常に送信できました。
systemctl stop sendmail
systemctl disable sendmail
alternatives --config mta
There are 2 programs which provide 'mta'.
Selection Command
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail
2 /usr/sbin/sendmail.postfix
Enter to keep the current selection[+], or type selection number: 2
systemctl start postfix
systemctl enable postfix
systemctl is-enabled postfix
ファイアウォールでtcp/25を開けます。
・firewalldの場合
※またはゾーンにポートを追加する
・iptablesの場合
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
または
第三者中継チェック RBL.JPにてチェックします。
全てのテストにおいて「relay NOT accepted!!」と表示されました。
echo 本文 | mail -s 件名 送信先メールアドレス(このメールサーバ宛のメールアドレス)
この場合は送信時には、このメールサーバを使わない形(メール受信のみの確認)になりますかね。
この場合は、このメールサーバを送信サーバとして利用し、外部のメールサーバのメールアドレスへ
送信、も出来ますね。
[root@dti-vps-srv94 ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.example.com ESMTP Postfix
helo 任意の文字列(自分のドメイン名など)
250 mail.example.com
mail from: 送信元メールアドレス
250 2.1.0 Ok
rcpt to: 送信先メールアドレス
250 2.1.5 Ok
data
354 End data with
from: 任意の文字列(送信元メールアドレス)
subject: 件名
本文
.
250 2.0.0 Ok: queued as ***
quit
正しく送信できました。
その後、POP/IMAPメールサーバをインストールして、インターネット側のメールアドレス
(Yahoo!のフリーメールアドレスなど)とのメール送受信が出来ることを確認しましょう。
メール受信(SMTPでのセッション接続)が
行われるかどうかはパケットで見る
journalctl -u postfix
journalctl -r