AWS SES+S3で受信・Dovacotでメールサーバー構築し、Gmailで取り込み

2026-04-11 追記

mount-s3は、読み取り専用として、高速化されたもので、
今回、DovecotでのIMAP運用では、不向きでした。

2026-04-13 追記

s3fsで、fstabからマウントしましたが、
受動的にファイル(メール)配信されないため、タイマーでの更新が必要なため、承認メールは、いくらGmailで更新を連打しようと、遅配されるため、結局、Postfixを立てました。

***

Mixhostから、Kagoya VPCに移行して、いろいろと追加作業が発生しておりますが、
Mixhostでは、cPanelでメールを受信していましたが、
使いやすさから、Gmailに転送していました。

しかし、一部のメールが欠落します。

AI解説

DMARCの「拒否(p=reject)」設定:

送信元(ソニー生命など)が、「もし中継地点(CF)で少しでもメールが加工されたり、認証が崩れたりしたら、受信側(Google)は即座に破棄せよ」という命令を出しています。

転送による署名の破壊:

Cloudflareがメールを転送する際、ヘッダーに情報を書き加えたり、エンベロープを書き換えたりします。

Google側のチェックで「これは正規のソニー生命からの直接送信ではない(なりすましだ)」と判定され、迷惑メールフォルダにすら入れずに消去されます。

 

直接メールボックスに届かないと、ダメなメールが存在するわけで、
転送する場合、Gmailが正しく受け取れるように、
Senderを、強制的に書き換えます。

つまり、

転送する限り、DROPは必ず発生するので、
メールサーバーで直接受信する必要があり、

Gmailに転送ではなく、Gmailからインポート(POP3)する必要がありました。

問題は、5分に1度なりの取り込みになるので、
メール認証など、すぐに欲しいメールがあるときは、
受信を連打することになります。

 

メールサーバーの選考

  1. Google Workspace
    DNSでMXを指定するだけなので、簡単。
    また、Geminiの思考モードを使うなら、2TBのクラウドスペースもついてくるので、100点だけど、有料。
  2. AWS SESで受信し、S3で保存。S3をマウントし、Dovacotでメールサーバーを立てる。
    設定、ややこしい。数十円/月
  3. Postfixで受信
    落ちたことは、ないし、仮に落ちていても、再配送されるので、特に問題はないが、シングルPCなので、冗長性の点で、マイナス。

今回は、2をするわけですが、
絶対落ちないメールサーバーとしては、SES+S3は最強の1つです。

 

SESで、ルールを作成し、S3に保存

色々すったもんだしましたが、
これはWEBでゴロゴロ出てくるので検索するか、AIに相談してください。

 

むしろ、問題は、ここからです。

S3をマウント

最新のmount-s3を推奨されたため、大格闘したものの、

AWS外のCentOS9に、mount-s3を使って、マウントする。

mount-s3が、読み取り専用のため、
imap4を使う場合、new > curにmvする事ができないため、
普通に、s3fs-fuseをインストールして、fstabでマウント

sudo dnf install epel-release -y
sudo dnf install s3fs-fuse -y

/etc/fstab

s3_bucket /mnt/s3 fuse.s3fs _netdev,allow_other,uid=1000,gid=1000,passwd_file=/etc/passwd-s3fs,url=https://s3.us-west-2.amazonaws.com,use_cache=/tmp,use_path_request_style,stat_cache_expire=60,enable_content_md5 0 0

メールを送信送信しても、/mnt/s3/以下のファイルは更新されない。
S3のダッシュボードで確認すると、たしかに、ファイルは出来ている。

そこで、仕方なく、

  • -o stat_cache_expire=60: ファイル情報のキャッシュを60秒で捨てる設定(デフォルトは結構長いです)。
  • -o enable_content_md5: 内容の整合性をチェックさせる。

を追加したのですが、メール承認においては、最大60秒待ちになるわけです。
5秒にしたり、1秒にしたりするわけですが、なんか、違う!

 

Gmailのインポートの時差は、仕方ないですが、
即応したいメールは、スマホでIMAP4で見るのが、受動で動かないのは、、、

 

ということで、追記のとおり、PostfixでSMTPを作る結果となりました。

100%受信&保存をしたい場合は、SES+S3が一番手軽なんですが、
Gmailに転送しない・時差は気にしない用途で、お使いください。

 

AWS SES+S3で受信・Dovacotでメールサーバー構築し、Gmailで取り込み