The @deleteduser.com example is the easiest to explain
A user, Bob, has an account and has attached his email address. Later, Bob says he wants to delete the account. For legitimate reasons, the company doesn’t want to delete all associated records (think, user generated content or user to user interactions that shouldn’t simply disappear. Or maybe audited transactions.)
The company also doesn’t want to have those associated records pointing to nothing … maybe the schema doesn’t support that (eg required foreign key constraints) so it has to point to something
So the company changes Bob’s account details. They delete his profile picture, his phone number, etc. but Name and Email are required by the database. Their deletion process changes Bob’s name to deleted_user and they change his email to deleted@deleteduser.com thinking that’s a dead domain that’ll never be valid to receive emails.
Later, another process triggers an email. Someone sends Bob’s account a message, replies to a thread, etc. this process doesn’t know / care that Bob’s account was deleted so it fires the email to deleted@deleteduser.com
There are a lot of problems with the decision making here, and there are better ways to handle all of this. But these are all rational decisions in the moment that can cause an email to be sent to an “invalid” email address
As in my other comment, I don’t understand why they don’t use deleted_user@our-company.com? It doesn’t take an IT-specialist to see the dangers in using a domain they don’t control.
But I guess that’s the point of this article: the jaw-dropping stupidity.
Most people who aren’t interested in tech have to be taught this as they have no idea what e-mail actually is.
I would have accepted this 20 years ago, but not anymore. People need to have a basic understanding of how the tools they use daily work. I know, they don’t. And it’s one of my pet conspiracy theories that Big Tech abstracts their users away from how things actually work on purpose. The results are devastating, esp. when it comes to where IT tech crosses politics.
Also general education is commonly lagging at least a decade after current tech. I know email has been around for longer than that, but IT education is in a sad state.
As you say, “at the time, a reasonable decision”.
What I don’t understand tho, is, why nobody, for five seconds, maybe thought, how it could be a good idea to just filter this standard address at the SMTP server to be redirected to something sensible inside the org.
My best guess is, different departments / sub orgs.
Distributed decision making, and these are all systems that are transactional or regulatory and not necessarily driving revenue / customer value.
The IT / Systems team was told “stand up an SMTP server so we can send emails” and there’s no more discussion of capturing / trapping / dead boxes. And as an engineer if you start to add that scope, “why are you taking so long? I just need to send emails.”
And then the delete account project is “GDRP says we need to delete accounts. So delete them in the least expensive way possible.” Which means, as an engineer, don’t spend a ton of time on this. In my previous company, we were still manually deleting accounts. As in SRE connected to the DB and ran a SQL command, by hand, with a piped in user ID.
The notifications team is responsible for sending messages. Why do they care, or should be responsible for, identifying if a user is deleted? They’re responsible for maintaining the SPAM/unsubscribe list but not the user accounts.
it’s distributed decision making, no one cross-cutting or thinking about these edge cases that impact multiple systems
But why? Why are they sending corporate data to a website they don’t own?
What’s the point?
The
@deleteduser.comexample is the easiest to explainA user, Bob, has an account and has attached his email address. Later, Bob says he wants to delete the account. For legitimate reasons, the company doesn’t want to delete all associated records (think, user generated content or user to user interactions that shouldn’t simply disappear. Or maybe audited transactions.)
The company also doesn’t want to have those associated records pointing to nothing … maybe the schema doesn’t support that (eg required foreign key constraints) so it has to point to something
So the company changes Bob’s account details. They delete his profile picture, his phone number, etc. but Name and Email are required by the database. Their deletion process changes Bob’s name to
deleted_userand they change his email todeleted@deleteduser.comthinking that’s a dead domain that’ll never be valid to receive emails.Later, another process triggers an email. Someone sends Bob’s account a message, replies to a thread, etc. this process doesn’t know / care that Bob’s account was deleted so it fires the email to
deleted@deleteduser.comThere are a lot of problems with the decision making here, and there are better ways to handle all of this. But these are all rational decisions in the moment that can cause an email to be sent to an “invalid” email address
As in my other comment, I don’t understand why they don’t use deleted_user@our-company.com? It doesn’t take an IT-specialist to see the dangers in using a domain they don’t control.
But I guess that’s the point of this article: the jaw-dropping stupidity.
Most people who aren’t interested in tech have to be taught this as they have no idea what e-mail actually is.
I worked in a company where we had to write addresses like that 10-30 times a day.
Someone once used fucking gmail and all hell broke loose.
I would have accepted this 20 years ago, but not anymore. People need to have a basic understanding of how the tools they use daily work. I know, they don’t. And it’s one of my pet conspiracy theories that Big Tech abstracts their users away from how things actually work on purpose. The results are devastating, esp. when it comes to where IT tech crosses politics.
Also general education is commonly lagging at least a decade after current tech. I know email has been around for longer than that, but IT education is in a sad state.
That certainly is part of the problem.
It’s still a stupid solution with all sorts of ‘code smells’ and bad design, but the least they could do in a case like that is use
@example.com.Is example.com the only reserved dead domain by icann? Just curious
Edit: seems like so. Though there are some reserved TLDs as well
https://www.iana.org/domains/reserved
Oooh, looking at RFC2606 (mentioned by your link), the
.invalidTLD seems like an appropriate choice here.(Changing “deleted” users’ emails to an invalid TLD still isn’t the right solution, though.)
Until 20 years down the line .invalid becomes a valid TLD and all hell breaks loose lmao
Better than an un-reserved domain name or tld
Thanks. That kind of makes sense.
As you say, “at the time, a reasonable decision”. What I don’t understand tho, is, why nobody, for five seconds, maybe thought, how it could be a good idea to just filter this standard address at the SMTP server to be redirected to something sensible inside the org. My best guess is, different departments / sub orgs.
Distributed decision making, and these are all systems that are transactional or regulatory and not necessarily driving revenue / customer value.
The IT / Systems team was told “stand up an SMTP server so we can send emails” and there’s no more discussion of capturing / trapping / dead boxes. And as an engineer if you start to add that scope, “why are you taking so long? I just need to send emails.”
And then the delete account project is “GDRP says we need to delete accounts. So delete them in the least expensive way possible.” Which means, as an engineer, don’t spend a ton of time on this. In my previous company, we were still manually deleting accounts. As in SRE connected to the DB and ran a SQL command, by hand, with a piped in user ID.
The notifications team is responsible for sending messages. Why do they care, or should be responsible for, identifying if a user is deleted? They’re responsible for maintaining the SPAM/unsubscribe list but not the user accounts.
it’s distributed decision making, no one cross-cutting or thinking about these edge cases that impact multiple systems