スポンサーリンク

ラズパイ(38) SMTPサーバ postfixをつかってみた

Gatamix です。
Raspberry pi のSMTPサーバの構築をssmtp からpostfixに変更しようと試みました。
Gメールへリレーして送信するようにします。
postfix の設定方法
下記リンクを参照しました。

  インストールしていたmailutilsとssmtpをアンインストール
インストール前にmailutilsとssmtp のアンインストールをした。(インストールしていない場合は不要)
$sudo apt-get –purge remove mailutils
$sudo apt-get –purge remove ssmtp

  インストール
postfixのインストールとmailutilsの再インストール。
$sudo apt-get install postfix
インターネットサイト を選択。(設定なしを設定しているホームページもあるがpostfixが起動できなかった。)
$sudo apt-get install mailutils
パスワードの設定
$sudo vi /etc/postfix/sasl_passwd

gmailのipを直接入力:587 gmailのアカウント名@gmail.com:パスワード

(gmailのipを直接入力でなくてsmtp.gmail.comでできればそのほうがいいが、できなかった…)
アクセス権限の変更
$chmod 600 /etc/postfix/sasl_passwd
DB化
$sudo postmap /etc/postfix/sasl_passwd
main.cfの設定変更のまえにバックアップ
sudo cp -i /etc/postfix/main.cf /etc/postfix/main.cf.$(date +%Y%m%d)
main.cfの設定変更
sudo vi /etc/postfix/main.cf
以下追記

# Minimum Postfix-specific configurations.
#mydomain_fallback = localhost
relayhost=gmailのipを直接入力:587
# Enable SASL authentication in the Postfix SMTP client.
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
# Enable Transport Layer Security (TLS), i.e. SSL.
smtp_use_tls=yes
smtp_tls_security_level=encrypt
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt
tls_random_source=dev:/dev/urandom

再起動
$sudo postfix reload
または、
$sudo systemctl restart postfix
Raspberry piも再起動してみる。
$sudo reboot

メール送信が上手くできない状況で苦戦していたのですが、
リレーするgmailのipがmail.logに接続できたときログにあった発見して設定ファイルの変更を実行。
直接接続するようにしたら、デーモンで起動したあと再起動なしでメールを送信できました。
サーバーのアドレスが上手く認識できていないことが原因?
この方法だとipが変更されたら、使えなくなりそうです。
以下できなかった時の状況。
Raspberry pi を起動したあとにpostfixを再起動しないと使えない。デーモンは起動している。
Gメールへリレーする際にmail.logを確認するとホスト名かドメイン名でエラーになっていて上手く接続できない。
$cat /var/log/mail.log
を実行すると
status=deferred (Host or domain name not found. Name service error for name=smtp.gmail.com type=MX: Host not found, try again)
とエラーの表示があった。

  postfixについてのメモ
postfixの設定ファイルはmain.cf の他にmaster.cfもある。
場所は、/etc/postfix/master.cf
設定の変更されている箇所は$postconf -n で確認できる。
デフォルト値は$postconf -d で表示される。

written by gatamix

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサーリンク