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度なりの取り込みになるので、
メール認証など、すぐに欲しいメールがあるときは、
受信を連打することになります。
メールサーバーの選考
- Google Workspace
DNSでMXを指定するだけなので、簡単。
また、Geminiの思考モードを使うなら、2TBのクラウドスペースもついてくるので、100点だけど、有料。
- AWS SESで受信し、S3で保存。S3をマウントし、Dovacotでメールサーバーを立てる。
設定、ややこしい。数十円/月
- Postfixで受信
落ちたことは、ないし、仮に落ちていても、再配送されるので、特に問題はないが、シングルPCなので、冗長性の点で、マイナス。
今回は、2をするわけですが、
絶対落ちないメールサーバーとしては、SES+S3は最強の1つです。
SESで、ルールを作成し、S3に保存
色々すったもんだしましたが、
これはWEBでゴロゴロ出てくるので検索するか、AIに相談してください。
むしろ、問題は、ここからです。
S3をマウント
最新の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に転送しない・時差は気にしない用途で、お使いください。