Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
41
Help us understand the problem. What is going on with this article?
@hkato

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

注意

追記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をインストールしておけば、ログの集計結果が届くはず。ただし深夜も動いてるなら。

41
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
41
Help us understand the problem. What is going on with this article?