LoginSignup
33
42

More than 3 years have passed since last update.

PostfixのメールをGMail経由で送る

Last updated at Posted at 2016-08-16

注意

追記2020/9/11: この記事は古いです。

GMailアカウントでLSA(安全性の低いアプリ)の設定を行い、SMTP認証(PLAIN)を行うことを前提としています。

一般のGMailに関してはアナウンスがないようですが、G SuiteのGMail利用に関しては、G Suiteアップデートブログ、安全性の低いアプリによる G Suite アカウントへの接続が無効に にあるように将来的には完全に利用できなくなります。

  • GMailアカウント: LSA設定で可能(今後、G Suite同様に無効化されるのか?その場合いつになるかは不明)
  • G Suiteアカウント: 2020/6/15以前にLSA設定したことがある場合は2021/2/16まで利用可能

目的

CentOSはデフォルトのMTAとしてPostfixを採用している。
minimal構成でインストールしてもPostfixがインストールされ起動しており、これはもったいないのでGMailで他所に中継する。

制限

例えばhoge.localというホストから発信されたメールは、下記の様にすべて同じGMailユーザから発信されたことになる。これによりマルチユーザ環境では基本使えない。あくまでも自分のローカル開発環境等にはいいかもと言う感じ。

From: root <ユーザ名@gmail.com>
X-Google-Original-From: root@hoge.local (root)

環境

CentOS 7.2.1511で確認した。

# rpm -qa|grep postfix
postfix-2.10.1-6.el7.x86_64
# rpm -qa|grep cyrus-sasl
cyrus-sasl-lib-2.1.26-20.el7_2.x86_64
cyrus-sasl-2.1.26-20.el7_2.x86_64
cyrus-sasl-plain-2.1.26-20.el7_2.x86_64
cyrus-sasl-devel-2.1.26-20.el7_2.x86_64

cyrus-sasl-plainがないとGMailとの認証できないので注意(minimalでは入ってなかったはず)

設定

中継設定

main.cfを編集

# vi /etc/postfix/main.cf

末尾に次の設定を追加、GMailを中継先にしTLSを使いSMTP認証(PLAIN)にする。

# GMail
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt
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

認証ユーザの設定

# vi /etc/postfix/sasl_passwd
[smtp.gmail.com]:587    <gmail_address>:<password>
中継先SMTPアドレス:ポート     認証ユーザ名:パスワード

パーミッションの変更とdb化

# chmod 600 /etc/postfix/sasl_passwd
# postmap hash:/etc/postfix/sasl_passwd

設定の有効化(再起動)

# systemctl restart postfix        # CentOS7/Systemd

reloadでもいいけど

確認

mailxパッケージをインストールしてあれば次の様に、自分のアドレス(GMail以外でも可)へメールを送信すると、中継登録したGMailアドレスからメールが届くはず。

$ mail hoge@example.jp
Subject: test
test
EOT

EOTはCtrl-Dで

運用

alias設定

ローカルホストのrootと作業ユーザのメールエイリアスを登録する
一般ユーザは~/.forwardでも良いが…

# vi /etc/aliases

末尾に次の様にaliasを追加

root:           hoge@example.jp
vagrant:        hoge@example.jp

上記例はrootとvagrantユーザへのメールが自分のメールアドレスhoge@example.jpに届く設定(もちろんGMailでも可)

# newaliases

newaliasesは忘れずに

おまけlogwatchインストール

# yum install logwatch

logwatchをインストールしておけば、ログの集計結果が届くはず。ただし深夜も動いてるなら。

33
42
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
42