惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
G
Google Developers Blog
D
Docker
The GitHub Blog
The GitHub Blog
H
Help Net Security
WordPress大学
WordPress大学
博客园_首页
Recent Announcements
Recent Announcements
P
Proofpoint News Feed
罗磊的独立博客
I
InfoQ
U
Unit 42
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
Jina AI
Jina AI
J
Java Code Geeks
博客园 - Franky
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
D
DataBreaches.Net
Google DeepMind News
Google DeepMind News

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Emails Not Delivered to Apple Private Relay Addresses (Am...
lvn1 · 2026-05-29 · via DEV Community

If you're using Amazon SES and emails to @privaterelay.appleid.com are silently failing, the cause is almost certainly SES's account-level suppression list treating Apple relay DSN errors as hard bounces.

Fix: Emails Not Delivered to Apple Private Relay Addresses (Amazon SES)

If your app supports Sign in with Apple, some of your users will have a Hide My Email address — a relay address like abc123@privaterelay.appleid.com that forwards to their real inbox. These addresses are easy to break silently.

Here's the symptom we ran into and exactly how we fixed it.


The Symptom

Transactional emails (alerts, welcome emails) worked fine for regular email addresses but never arrived for users who signed in with Apple. We were also receiving bounce notifications like this:

Subject: Delivery Status Notification (Failure)

An error occurred while trying to deliver the mail to the following recipients:
prw8xms8tv@privaterelay.appleid.com

Enter fullscreen mode Exit fullscreen mode

Confusingly, some of these emails were being delivered — Apple's relay occasionally returns a DSN error even on successful delivery. But over time, delivery stopped entirely for affected addresses.


Root Cause: SES Suppression List

Amazon SES has an account-level suppression list. When a send results in a bounce (even a soft or misleading one), SES adds that address to the suppression list and silently drops all future sends to it — no error, no log entry from your code's perspective.

Apple's private relay sometimes returns a non-standard response that SES interprets as a hard bounce. Once that happens:

Send to Apple relay → Apple returns DSN error → SES logs as hard bounce
→ Address added to suppression list → Every future send silently dropped

Enter fullscreen mode Exit fullscreen mode

We found 9 Apple relay addresses on our suppression list, the oldest suppressed since September 2025 — meaning those users had missed months of emails.


The Fix

Step 1 — Remove suppressed Apple relay addresses

In the AWS Console:

  1. Go to Amazon SES (make sure you're in the correct region)
  2. Left sidebar → Configuration → Suppression list
  3. Search or scroll for any addresses ending in @privaterelay.appleid.com
  4. Select all → Bulk actions → Remove email address

SES suppression list showing Apple private relay addresses

Step 2 — Change account suppression to Complaints only

By default, SES suppresses addresses on both bounces and complaints. Since Apple relay false bounces will keep triggering this, change the setting to suppress on complaints only:

  1. Stay in SES → Configuration → Suppression list
  2. Find Account-level suppression (or go to General settings)
  3. Change from "Bounces and complaints" to "Complaints only"
  4. Save

SES account-level suppression setting

This prevents Apple relay DSN quirks from silently killing future users' email delivery.


Checklist: Everything Else You Need for Apple Private Relay

If you're still having issues after clearing the suppression list, verify the following:

Check What to do
Apple domain registration developer.apple.com → Certificates, Identifiers & Profiles → More → Configure (Sign in with Apple for Email Communication). Register every domain you send from.
SPF Your sending domain needs include:amazonses.com in its SPF record
DKIM Enable Easy DKIM in SES for your domain and add the 3 CNAME records to your DNS
Custom MAIL FROM Configure a custom MAIL FROM subdomain in SES (e.g. mail.yourdomain.com) so the return-path domain matches your registered domain

All of these must be in place. Apple's relay validates the source domain/email against your registered list after running SPF or DKIM — if either check fails, the email is rejected.


Summary

If you're using Amazon SES and emails to Apple private relay addresses are failing:

  1. Check SES → Suppression list for @privaterelay.appleid.com entries and remove them
  2. Change account-level suppression to "Complaints only" so Apple relay false bounces don't re-suppress addresses

That's it. Step 2 is the permanent fix — without it, the suppression list will fill up again and you'll be back to the same problem.