CentOS7からメール送信するまで

自宅のCentOS7サーバからpostfixを使ってメール送信するまでの手順メモ。

1. postfixの導入

CentOS7をインストールしたら標準でインストール&有効化済みでした。
一応以下のコマンドでpostfixが導入されているか確認できます。

$ systemctl status postfix
postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled)
Active: active (running) since 土 2015-05-09 19:26:38 JST; 1h 9min ago
...

$ alternatives --config mta
1 プログラムがあり 'mta' を提供します。
 選択 コマンド
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.postfix

2. 設定変更

自分の場合はISPがOP25B対策していたため、通常の設定では送信できませんでした。

何も設定変えずに手順4のsendmailすると、いくつかのSMTPサーバに接続しようとしていましたが、「Connection refused」とログに出てNGでした。

また、プロバイダのSMTPサーバの設定だけ入れてSASL認証いれないと「Relaying denied. Proper authentication required. (in reply to RCPT TO command))」とログに出てNGでした。

ので、ISPとの契約時に払いだされたドメイン、アカウント、パスワードを設定してSMTPでSASL認証する必要がありました。

$ vi /etc/postfix/main.cf
# 以下を追加
relayhost = [ISPのSMTPサーバのホスト名]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/isp_auth
smtp_sasl_security_options = noanonymous

$ vi /etc/postfix/isp_auth
[ISPのSMTPサーバのホスト名]:587 account:password

$ postmap /etc/postfix/isp_auth

$ systemctl restart postfix

3. SASL用のライブラリのインストール

設定を入れていざメール送信してみると、今度はログに「warning: SASL authentication failure: No worthy mechs found」と表示されてNGでした。

調べてみるとSASL用のライブラリをインストールする必要があるそうです。

$ yum -y install cyrus-sasl-plain cyrus-sasl-md5

4. メール送信確認

以上の設定で自分の契約しているプロバイダではメール送信ができるようになりました。
以下のコマンドでメールの送信確認ができます。

$ sendmail toAddr@example.com
From:fromAddr@example.com
To:toAddr@example.com
Subject:This is test mail
 
This is test mail.
 
.