メールサーバ
gmail対応 転送設定
安全に、確実にgmailに届ける

作成：Ituki Kirihara/NI

2023/12/20

やりたいこと受け取ったメールを、gmailにも転送したい 普段使うアドレスで受け取ったメールを以下に転送したい gmail (スマフォなどで即時確認するため)
 PC⽤POP/IMAPサーバ (PCでも受信したい) 条件 gmailのアドレスは公開したくない gmailには、なるべく早く届けたい

Copyright (c) 2018-2023, Ituki Kirihara/NI All rights reserved.

1

2023/12/20

サンプル例⽰⽤アドレス
例で使うアドレス⼀覧

#

ドメイン

用途

1

example.com

外部向け（メアド用）ドメイン

2

example.net

内部向け（POP用）

#

メアド

用途

1

ituki@example.com

外から見た自分のアドレス

2

ituki-ex@gmail.com

転送したいgmail宛先

3

ituki@pc.example.net

PC用のメールボックス(POP/IMAP用)4

ituki@gm.example.net

gmail用のメールボックス(POP用)

Copyright (c) 2018-2023, Ituki Kirihara/NI All rights reserved.

2

2023/12/20

gmail固有の問題
メールをgmailに送ると内容によっては拒否される
SPF,DKIM,DMARC必須化される
 主にはウイルスなど、好ましくないとgmailが判断したメールはSMTPレベルで拒否される
 DKIM/DMARC違反がどうなるかは不明(同じと期待) 拒否されたメールはデフォルトでは送り主へ返送
 これがヤバイ

Copyright (c) 2018-2023, Ituki Kirihara/NI All rights reserved.

3

2023/12/20

何も考えない転送の場合
例：外部公開アドレス ituki@example.com
転送先：ituki@pc.example.net、ituki-ex@gmail.com
送り元MTA①SMTP
RCPT TO:
ituki@example.com
okexample.com
MTA②メール転送ituki@pc.example.net
ituki-ex@gmail.com⑤以下のアドレスへの送信エラー発生
ituki-ex@gmail.com⑥エラーメール返却
送り主に、次の内容を含むメールを返送
・宛先：ituki@example.com
・転送先：ituki-ex@gmail.com
がエラーになりました

Copyright (c) 2018-2023, Ituki Kirihara/NI All rights reserved.

③SMTP
RCPT TO:
ituki@pc.example.net
ok④SMTP
RCPT TO:
ituki-ex@gmail.com
ERROR

pc.example.net
MTA
gmail.com MTA↑メールの内容次第で成功したりエラーになったりする

4

2023/12/20

やらかしポイント
実⽤上もセキュリティ上もとても嫌 ituki@pc.example.net宛てには送信済みなのに、送り元に「送れませんでした」とメールが届く ituki-ex@gmail.comは隠しておきたいのに、送り元に「転送先はituki-ex@gmail.com」という情報が届く gmailの転送先を知りたい攻撃者はgmailが受け取ってくれないメールを送ることで100%の確率で宛先を⼊⼿できる
 とても嫌Copyright (c) 2018-2023, Ituki Kirihara/NI All rights reserved.

52023/12/20

何も考えない解決法
Gmailにはメールを直接送らず、POPサーバを経由送り元MTA①SMTP
RCPT TO:
ituki@example.com
okexample.com
MTA②メール転送ituki@pc.example.net
ituki@gm.example.net③SMTP
RCPT TO:
ituki@pc.example.net
ok

pc.example.net
MTA

④SMTP
RCPT TO:
ituki@gm.example.net
okgm.example.net
MTA⑤gmailで定期的にPOPでメール取得

Copyright (c) 2018-2023, Ituki Kirihara/NI All rights reserved.

6

2023/12/20

何も考えない解決法の問題
タイムラグが酷い タイムラグが酷い gmailがPOPサーバにアクセスしに来るのは結構遅い
 体感的には数分〜数⼗分感覚

 ２ファクター認証とか、○分有効なURLを……みたいな認証系は⼤体受信する頃にはタイムアウトしてる ⼿動でPOP読み込み開始指⽰も可能だが、めんどくさい

Copyright (c) 2018-2023, Ituki Kirihara/NI All rights reserved.

7

2023/12/20

解決⽅法の概念図
Gmail宛て(ituki-ex@gmail.com)にSMTPメールを送るのに失敗したときだけ、別のアドレスに再転送
送り元MTA①SMTP
RCPT TO:
ituki@example.com
okexample.com
MTA②メール転送ituki@pc.example.net
ituki-ex@gmail.com⑤ituki-ex@gmail.com
への送信エラー⑥
ituki@gm.example.netに再度転送
Copyright (c) 2018-2023, Ituki Kirihara/NI All rights reserved.

③SMTP
RCPT TO:
ituki@pc.example.net
okpc.example.net
MTA

④SMTP
RCPT TO:
ituki-ex@gmail.com
ERROR

gmail.com
MTA

⑦SMTP
RCPT TO:
ituki@gm.example.net
okgm.example.net
MTA⑧gmailで定期的にPOPでメール取得 8

2023/12/20

解決⽅法について 利点
届けられるものは早く届く。無理なものはPOP経由で。
 ⼀度gmailにメール送信を試すので、そこで成功すればほぼ即時メールが届く gmailが⼀度拒否したメールはPOP経由で届く
 gmailが拒否しても、送信者にエラーが返らない メールの受信漏れが起きにくい

Copyright (c) 2018-2023, Ituki Kirihara/NI All rights reserved.

92023/12/20

解決⽅法について ⽋点
実際の構成はより複雑
 実際の構成は若⼲⾯倒
 送信に失敗したメールを全部別のアドレスに⾶ばす設定はあるが、今回は使えない ①「特定のアドレス宛て」の場合に、②「通常のSMTP送信でエラー」になった場合のみ、③「宛先を別の（好きな）アドレス」に書き換える（※宛先＝RCPT TO)のは⾒当たらない ①②③は別の機能として存在するので、それを利⽤する

Copyright (c) 2018-2023, Ituki Kirihara/NI All rights reserved.

102023/12/20

解決⽅法の実構成
MTA1で特定のgmailアドレス宛のsmtpのfallbackだけをMTA2に宛て、MTA2でforwardして、MTA1に戻す
example.com MTA (MTA1)
OKの場合何もしないで終了

特定アドレス宛のSMTPが失敗したら(fallback)、自組織の別MTA(MTA2)に渡すように設定④MTA1にメール送信を依頼

SMTP
RCPT TO: ituki@gm.example.net

SMTP
RCPT TO:
ituki-ex@gmail.com
OKgmail.com MTA

SMTP
RCPT TO:
ituki-ex@gmail.com①ERROR②Fallback（エラー）時にはMTA2に(そのままのアドレスで)転送
SMTP
RCPT TO: ituki-ex@gmail.com③gmailの宛先を書き換え

example.com MTA-BACK (MTA2) /gmail.comを自アドレスと認識させる
ituki-ex@gmail.comをituki@gm.example.netに転送
Copyright (c) 2018-2023, Ituki Kirihara/NI All rights reserved.

⑤MTA1がメールを送信⑥gmailで定期的にPOPでメール取得

RCPT TO:
ituki@gm.example.net

gm.example.net
112023/12/20

実構成例
Postfixの場合MTA1
master.cf
fbsmtp unix - - n - - smtp -o smtp_fallback_relay=127.0.0.1:8025 -o soft_bounce=yes

transport_maps
ituki-ex@gmail.com fbsmtp:

main.cf
DKIMの署名を行うように設定

MTA2
・127.0.0.1のport 8025でSMTPサーバを起動
・gmail.comを受信するように設定
・ituki-ex@gmail.comをituki@gm.example.netに転送する設定にする
・全てのメールを127.0.0.1のport 25(MTA1)に転送するよう設定
Copyright (c) 2018-2023, Ituki Kirihara/NI All rights reserved.

12

2023/12/20

まとめ
特定のGmailアドレスへの送信に失敗したときだけ別の（gmailでない）任意のアドレスに転送した

もっと簡単な方法募集中！

Copyright (c) 2018-2023, Ituki Kirihara/NI All rights reserved.

13END