<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged emailsecurity</title>
<link>https://coderlegion.com/tag/emailsecurity</link>
<description>Powered by Question2Answer</description>
<item>
<title>@fuck.it - email with attitude</title>
<link>https://coderlegion.com/30987/fuck-it-email-with-attitude</link>
<description>&lt;p&gt;fuck.it is invite-only email for people who want a memorable address without becoming the product.&lt;br&gt;
We built fuck.it around a simple idea: email should be something you pay for directly, not something subsidized by advertising, tracking or selling access to your data.&lt;br&gt;
Every account gets an fuck.it email address with webmail plus IMAP and SMTP access so it works with standard email clients.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What you get&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No advertising&lt;/li&gt;
&lt;li&gt;No tracking pixels&lt;/li&gt;
&lt;li&gt;No selling user data&lt;/li&gt;
&lt;li&gt;Invite-only registration&lt;/li&gt;
&lt;li&gt;IMAP and SMTP support&lt;/li&gt;
&lt;li&gt;Webmail&lt;/li&gt;
&lt;li&gt;Calendar, contacts and tasks&lt;/li&gt;
&lt;li&gt;Encrypted connections&lt;/li&gt;
&lt;li&gt;German-hosted infrastructure&lt;/li&gt;
&lt;li&gt;Multiple storage plans up to 1 TB&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Why invite-only?&lt;/strong&gt;&lt;br&gt;
Open signup attracts bots, spammers and scammers. That eventually hurts everyone on the platform through abuse, reputation damage and worse deliverability.&lt;br&gt;
fuck.it deliberately avoids the free-for-all model. New users need an invitation before they can create an account.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Who is it for?&lt;/strong&gt;&lt;br&gt;
People who care about privacy, independence and having an email address nobody forgets.&lt;br&gt;
It is not trying to replace every productivity platform on earth. It is email with attitude, built around a straightforward paid relationship between the service and the user.&lt;br&gt;
Website: &lt;a rel=&quot;nofollow&quot; href=&quot;https://fuck.it&quot;&gt;https://fuck.it&lt;/a&gt;&lt;/p&gt;
</description>
<category>Launches</category>
<guid isPermaLink="true">https://coderlegion.com/30987/fuck-it-email-with-attitude</guid>
<pubDate>Tue, 13 Oct 2026 20:35:25 +0000</pubDate>
</item>
<item>
<title>Is Paying for Email Worth It? What Your Money Actually Buys</title>
<link>https://coderlegion.com/30986/is-paying-for-email-worth-it-what-your-money-actually-buys</link>
<description>&lt;p&gt;&quot;If you're not paying for the product, you are the product.&quot;&lt;/p&gt;
&lt;p&gt;It's a great line. It's also doing a lot of work for people selling things, including us. So let's take it apart properly: what free email actually costs you, what paying actually buys and where even we think paying is the wrong answer.&lt;/p&gt;
&lt;p&gt;We sell paid email. Read accordingly. We've still tried to write the version we'd want to read before spending money.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.fuck.it/assets/email-cash-offers.webp&quot; alt=&quot;Three hands offering cash toward an envelope on a checkout belt&quot;&gt;&lt;br&gt;
&lt;em&gt;Somebody pays for every inbox. The only question is who and how.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&quot;tl-dr&quot;&gt;TL;DR&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Somebody pays for every inbox. The only question is who, and what they want in return.&lt;/li&gt;
&lt;li&gt;Mainstream free mail runs partly on advertising and the data profile that makes it work. Gmail, Outlook, Yahoo, GMX, mail.com: somebody other than you is helping pay the bill.&lt;/li&gt;
&lt;li&gt;The ad-free free tiers are paid for too, by the subscribers of the same company. Which rather makes the point.&lt;/li&gt;
&lt;li&gt;Inbox data has been sold. Yahoo and AOL scanned more than 200 million inboxes for commercial advertising data, and free email apps have built six-figure datasets from what their users received and bought.&lt;/li&gt;
&lt;li&gt;Your inbox is extraordinarily valuable data and AI makes it more useful than ever. What governs its use is a policy, not an architecture, and the settings are confusing enough that even security researchers got them wrong in public.&lt;/li&gt;
&lt;li&gt;Email services simply end. Providers have been shutting down and offloading mailbox products for years, and a mailbox nobody pays for directly is the easiest kind to cut.&lt;/li&gt;
&lt;li&gt;Paying puts you and the provider on the same side. Your subscription is the revenue, so the product only has to do one job.&lt;/li&gt;
&lt;li&gt;What money doesn't buy: immunity from the law, guaranteed delivery, encryption once your message reaches Gmail, or protection from your own mistakes.&lt;/li&gt;
&lt;li&gt;The one thing paying doesn't fix: the address still sits on somebody else's domain. Only your own domain changes that.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;somebody-pays-for-every-inbox&quot;&gt;Somebody Pays for Every Inbox&lt;/h3&gt;
&lt;p&gt;Running mail is not free. Servers, storage, spam filtering, abuse handling, deliverability work, engineers: all of it costs money every month, for every mailbox, forever. Nobody absorbs that out of generosity.&lt;/p&gt;
&lt;p&gt;So when an inbox costs you nothing, the money is coming from somewhere else, and that somewhere decides what the product becomes.&lt;/p&gt;
&lt;p&gt;For mainstream free mail, advertising is part of the economics. Gmail, Outlook.com, Yahoo, GMX and mail.com all show advertising in or around their free email products. Microsoft states plainly that free Outlook is supported by ads. GMX says advertising revenue finances its free service. The targeting models differ, and Google says Gmail ads are based on your wider activity rather than your messages. But in every case somebody other than the person reading the mail is helping pay the bill.&lt;/p&gt;
&lt;p&gt;For the ad-free free tiers, the answer is other customers. Proton and Tuta give away a limited free account with no ads and real encryption, and they can do it because their paying subscribers cover the cost. Those free tiers are an argument for paid email, not against it. They exist because somebody pays.&lt;/p&gt;
&lt;p&gt;Which leaves one model where the person paying and the person using the inbox are the same: you pay, and the only thing the provider has to get right is your mail.&lt;/p&gt;
&lt;p&gt;That's it. That's the entire case for paid email, and everything below is detail.&lt;/p&gt;
&lt;h3 id=&quot;what-actually-happens-to-free-email&quot;&gt;What Actually Happens to Free Email&lt;/h3&gt;
&lt;p&gt;Let's be precise, because the vague version is easy to dismiss.&lt;/p&gt;
&lt;p&gt;Gmail is the interesting case, because the easy accusation is out of date and the real problem is worse.&lt;/p&gt;
&lt;p&gt;Google stopped using message content for ad personalization in 2017. It says it does not use Gmail content to train its Gemini models, and it has repeated that denial every time the claim resurfaces.&lt;/p&gt;
&lt;p&gt;Now look at what happened in November 2025. A post claiming Gmail had quietly opted everyone into AI training reached millions of people. A respected security firm wrote it up, then published a correction the next day admitting it had confused Gmail's long-standing smart features with generative model training. Google said it had changed nobody's settings. A proposed class action was filed in California alleging Gemini got access to Gmail, Chat and Meet without proper consent, which remains an allegation rather than a finding.&lt;/p&gt;
&lt;p&gt;Here's the part that should bother you regardless of who was right. The controls live in several places and Google documents three separate categories of them. Switching them off also removes things like inbox categorization, Smart Compose and summary cards, so the convenient features and the data access share the same switches. And when professional security researchers looked at the interface and couldn't agree on what it did, several hundred million ordinary users had no chance at all.&lt;/p&gt;
&lt;p&gt;That's the actual condition of free email in 2026. Not a confirmed conspiracy. Something more corrosive: a system so complicated that &quot;we don't do that with your mail&quot; has become unverifiable by the person whose mail it is.&lt;/p&gt;
&lt;p&gt;Your inbox is extraordinarily valuable data. Contracts, purchases, appointments, arguments, relationships and years of natural-language correspondence, all in one searchable place. AI makes that data more useful than it has ever been.&lt;/p&gt;
&lt;p&gt;Google says it does not use personal Gmail messages to train its foundational Gemini models. The concern is broader than training. Depending on your settings, your mail can already be processed to categorize messages, generate replies, summarize threads and power personalized features across Google's products.&lt;/p&gt;
&lt;p&gt;&quot;We don't use your mail to train our models&quot; is an important promise. It's also a policy commitment layered over a system that can technically process the mail. The architecture hasn't made the question irrelevant, it has just moved it into a settings menu.&lt;/p&gt;
&lt;p&gt;A subscription-funded inbox doesn't need to monetize that processing to pay for the mailbox. That's the difference.&lt;/p&gt;
&lt;h3 id=&quot;everyone-else-is-in-the-same-business&quot;&gt;Everyone Else Is in the Same Business&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Microsoft.&lt;/strong&gt; In January 2026 a bug let Microsoft 365 Copilot Chat read and summarize emails that users had explicitly labelled confidential, bypassing the data-loss-prevention rules designed to stop it. Microsoft confirmed it and fixed it. In the same period the European Parliament's IT department switched off built-in AI features on lawmakers' devices, citing the risk of confidential correspondence being uploaded to the cloud. Those were paying enterprise customers with compliance controls turned on. If the guardrails leak there, think about what the free consumer tier looks like.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yahoo and AOL.&lt;/strong&gt; The clearest documented case. In 2018 the Wall Street Journal reported more than 200 million inboxes being scanned for commercial data sold to advertisers, sorting people into categories like &quot;frequent traveler&quot; from their receipts and booking confirmations. Only mail from companies, Yahoo said, and you could opt out. It was on by default.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Free email apps.&lt;/strong&gt; In 2020, Edison Mail, Cleanfox and Slice were all shown to build commercial products out of their users' inboxes: purchase data extracted, aggregated and sold to corporate clients, with one dataset reportedly priced above $100,000. Edison's homepage said &quot;No Ads, Just Mail.&quot; Perfectly true. The money came from somewhere else.&lt;/p&gt;
&lt;p&gt;And the one nobody warns you about: &lt;strong&gt;email services simply end.&lt;/strong&gt; Telecoms and internet providers have been shutting down or offloading mailbox products for years. Turkcell, for example, says its Mailim service closes completely on 31 October 2026 and that stored data becomes inaccessible after 1 December.&lt;/p&gt;
&lt;p&gt;The problem is sharpest when email is bundled into something else. If nobody is paying specifically for the mailbox, it's easy to treat as a cost centre when priorities change. It's always somebody's line item, and line items get cut.&lt;/p&gt;
&lt;h3 id=&quot;what-free-actually-costs&quot;&gt;What Free Actually Costs&lt;/h3&gt;
&lt;p&gt;Forget the monthly price. These are the costs that show up later.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ads in the place you read your mail.&lt;/strong&gt; Promotions tabs, sponsored messages, inline units dressed up as email. You've stopped noticing them, which is exactly what makes them valuable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A profile that outlives the inbox.&lt;/strong&gt; Even where message content isn't used for targeting, your activity feeds the same advertising machine that funds everything else. The inbox is one input among many.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Deletion for inactivity.&lt;/strong&gt; Google may delete personal accounts after two years of inactivity. Microsoft closes accounts not signed into for two years. A free account expects you to keep proving you exist, and quietly takes your address back if you don't.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Suspension with no appeal.&lt;/strong&gt; Automated systems close accounts, sometimes wrongly. When mail, photos and documents all sit behind one free account, a bad automated decision takes all three at once, and your route back is a web form.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Storage you share with everything else.&lt;/strong&gt; On Gmail, 15 GB covers mail, Drive and Photos together. Fill it with holiday videos and your mail stops arriving.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Changes you don't get a vote on.&lt;/strong&gt; Gmail is ending Send As for outside addresses in January 2027. Yahoo cut free storage. AI features arrive switched on and the opt-out takes your inbox categorization with it. The product serves a strategy and you're not part of it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An inbox that keeps becoming something else.&lt;/strong&gt; Mail was a product. Then a tab in an ecosystem. Now an AI surface. Nobody asked the people reading their mail whether they wanted any of it.&lt;/p&gt;
&lt;h3 id=&quot;what-paying-actually-buys&quot;&gt;What Paying Actually Buys&lt;/h3&gt;
&lt;p&gt;Here's the part where paid providers usually get vague. Specifics:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;An actual support relationship.&lt;/strong&gt; Not automatically a good one. Plenty of paid providers have terrible support and some free services do better than they need to. But paying puts you on the other side of a relationship where losing you costs something, and that changes what happens when your account locks on a Friday afternoon.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A business model that points the same way you do.&lt;/strong&gt; If the money comes from subscriptions, the incentive is to keep you subscribed. If it comes from advertising or ecosystem lock-in, the incentive is to keep you engaged and inside. Neither is sinister. They just produce different products over ten years.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No ads in your inbox.&lt;/strong&gt; Worth stating plainly, with the caveat below that a couple of free providers manage this too.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage built around your account, not an advertising ecosystem.&lt;/strong&gt; Your mailbox capacity isn't competing with Google Photos or a consumer cloud bundle.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;An account that doesn't expire just because you're quiet.&lt;/strong&gt; A paid mailbox generally isn't going to disappear because you haven't logged in for two years.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The practical features.&lt;/strong&gt; Proper IMAP, POP3 and SMTP access, so any mail client works. Aliases. Decent attachment limits. Export that isn't a maze. These vary by provider, so check rather than assume.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A provider small enough to care about your complaint.&lt;/strong&gt; Not always true, but more likely when your subscription is a visible fraction of revenue rather than a rounding error.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;what-paying-does-not-buy&quot;&gt;What Paying Does Not Buy&lt;/h3&gt;
&lt;p&gt;Any provider telling you otherwise is selling harder than we are.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It doesn't buy immunity from the law.&lt;/strong&gt; A provider in any jurisdiction responds to valid legal orders. Paid doesn't mean untouchable, and anyone implying it does is lying to you.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It doesn't buy privacy from the person you're writing to.&lt;/strong&gt; Send mail to a Gmail address and it lands on Google's servers under Google's rules. Encryption in transit protects the journey, not the destination.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It doesn't buy guaranteed delivery.&lt;/strong&gt; No provider controls what the receiving server does. Anyone promising inbox placement is promising something they don't own.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It doesn't buy protection from phishing.&lt;/strong&gt; Good filtering helps. A convincing message from a real address, properly authenticated, still gets through to everybody.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It doesn't automatically buy better security than free.&lt;/strong&gt; Several free providers have excellent security. Price is not a proxy for engineering.&lt;/p&gt;
&lt;h3 id=&quot;the-thing-nobody-selling-you-email-wants-to-mention&quot;&gt;The Thing Nobody Selling You Email Wants to Mention&lt;/h3&gt;
&lt;p&gt;Here's the strongest argument against paying us, and against paying any provider for an address on their domain.&lt;/p&gt;
&lt;p&gt;If your address is &lt;code&gt;*Emails are not allowed*&lt;/code&gt;, you don't control the domain behind it. Google does.&lt;/p&gt;
&lt;p&gt;But if your address is &lt;code&gt;*Emails are not allowed*&lt;/code&gt;, you don't control that domain either. We do. If we go out of business, get bought by somebody terrible or simply decide to stop, you're moving addresses and telling four hundred accounts about it, exactly as you would be if Google shut Gmail down.&lt;/p&gt;
&lt;p&gt;Paying changes the incentives. It doesn't change who holds the domain.&lt;/p&gt;
&lt;p&gt;The only setup that genuinely puts your email address under your control is your own domain plus a provider you can replace. Then switching providers is a DNS change and nobody has to update anything. That's the real answer to &quot;my email is infrastructure,&quot; and for a basic domain it can cost little more than ten or twenty euros a year, plus the discipline to never let the registration lapse.&lt;/p&gt;
&lt;p&gt;It also isn't something we sell. We don't do custom domains, because the whole point of a fuck.it address is that it says fuck.it. If maximum portability is what you're after, we're the wrong shop and you should go buy a domain.&lt;/p&gt;
&lt;h3 id=&quot;credit-where-it-s-due&quot;&gt;Credit Where It's Due&lt;/h3&gt;
&lt;p&gt;Two free tiers are worth naming, because pretending otherwise would be dishonest and you'd catch us at it.&lt;/p&gt;
&lt;p&gt;Proton Mail and Tuta both offer free accounts with no ads and genuine encryption. Small storage, limited features, and both funded by the people paying for the full version. If budget is the binding constraint, they're a far better answer than an ad-supported inbox.&lt;/p&gt;
&lt;p&gt;And Gmail, as a piece of software, is excellent. Best-in-class search, enormous app support, rock solid. We're not going to insult your intelligence by pretending it's badly built. The question was never whether it works. It's what it's for, and who it's for.&lt;/p&gt;
&lt;h3 id=&quot;when-free-is-good-enough&quot;&gt;When Free Is Good Enough&lt;/h3&gt;
&lt;p&gt;Stay where you are if:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Email is a utility you think about twice a year.&lt;/li&gt;
&lt;li&gt;Nothing load-bearing is attached to the address: no bank, no business, no clients.&lt;/li&gt;
&lt;li&gt;The budget genuinely matters. A paid inbox is a luxury next to rent, and anyone implying otherwise is out of touch.&lt;/li&gt;
&lt;li&gt;You're on one of the ad-free free tiers above and the storage limit doesn't bite.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;when-paying-makes-sense&quot;&gt;When Paying Makes Sense&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Your address is infrastructure.&lt;/strong&gt; It's the recovery key for your bank, your password manager and a few hundred accounts. That deserves better than a free tier and an automated support queue.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You want out of an ecosystem.&lt;/strong&gt; Separating your email from one company's account system is the first real step, and it's hard to do on a free tier run by that same company.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You need someone to answer.&lt;/strong&gt; If a week without working email would cost you real money, buy a support channel.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You want the terms to stay still.&lt;/strong&gt; Paid services change too, but they change with their customers in mind, because customers cancel.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You'd rather pay with money than attention.&lt;/strong&gt; Perfectly respectable reason, and the honest version of the slogan at the top.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;how-to-judge-a-paid-provider&quot;&gt;How to Judge a Paid Provider&lt;/h3&gt;
&lt;p&gt;If you decide to pay, the price is the least interesting question. Ask these instead:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Can you leave?&lt;/strong&gt; IMAP access and a real export. If getting your mail out is hard, the lock-in is just a different flavor.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Who actually runs it?&lt;/strong&gt; A named company in a jurisdiction you can find, not a landing page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What happens if you stop paying?&lt;/strong&gt; Grace period, read-only access, immediate deletion? Find out before, not after.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Is the storage honest?&lt;/strong&gt; Shared across services or just mail?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What's the support promise?&lt;/strong&gt; Email only, response times, and whether a human exists.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What do they claim they can't see?&lt;/strong&gt; Then check whether the architecture supports the claim, or whether it's a promise in a privacy policy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How long have they been around, and does the pricing look like a business or a land grab?&lt;/strong&gt; Services with no revenue model die, and you have to move again.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;where-fuck-it-lands&quot;&gt;Where [@fuck.it] Lands&lt;/h3&gt;
&lt;p&gt;No ads. No tracking. No bullshit. That isn't a slogan we picked because it sounded good, it's a description of our revenue: subscriptions, all of it. There's no second business, no ad network, no profile worth building and nothing to sell to anyone else, because selling you email is the entire company.&lt;/p&gt;
&lt;p&gt;What that buys you: a mailbox whose storage isn't shared with a photo library, full IMAP, POP3 and SMTP access, a person on the other end of support, and an account that doesn't expire because you went quiet for a year.&lt;/p&gt;
&lt;p&gt;What we won't pretend: we can't give you a custom domain, so your address lives on our domain and depends on us continuing to exist. We can't promise anything about legal process that any other provider can't. If portability above all else is what you're after, go buy a domain.&lt;/p&gt;
&lt;p&gt;But let's be honest about what you'd be giving up. Nobody has ever raised an eyebrow at a gmail.com address. Nobody ever will. Ours is the best domain on the internet and the only one that tells people something about you before they've read a word. There's a reason you remember it.&lt;/p&gt;
&lt;p&gt;An address on your own domain says you own a domain. An @fuck.it address says something else entirely.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://fuck.it/&quot;&gt;See plans →&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Sources &amp;amp; further reading:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://support.google.com/mail/answer/6603&quot;&gt;Google: Ads in Gmail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://support.microsoft.com/en-us/outlook/about-ads-in-outlook&quot;&gt;Microsoft: About ads in Outlook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://blog.google/products-and-platforms/products/gmail/privacy-in-gmail-with-gemini/&quot;&gt;Google: Privacy in Gmail with Gemini&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://support.google.com/mail/answer/15604322&quot;&gt;Google: Smart features and personalization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.malwarebytes.com/blog/news/2025/11/gmail-is-reading-your-emails-and-attachments-to-train-its-ai-unless-you-turn-it-off&quot;&gt;Malwarebytes: correction on Gmail smart features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.snopes.com/news/2026/08/23/google-ai-gmail-chats/&quot;&gt;Snopes: Google AI and your Gmail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://techcrunch.com/2026/02/18/microsoft-says-office-bug-exposed-customers-confidential-emails-to-copilot-ai/&quot;&gt;TechCrunch: Office bug exposed confidential emails to Copilot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://techcrunch.com/2018/08/28/yahoo-still-scans-your-emails-for-ads-even-if-its-rivals-wont/&quot;&gt;TechCrunch: Yahoo still scans your emails for ads&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://www.vice.com/en/article/free-email-apps-spying-on-you-edison-slice-cleanfox/&quot;&gt;Motherboard: How big companies spy on your emails&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://proton.me/mail/pricing&quot;&gt;Proton: Mail pricing and funding&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://support.google.com/accounts/answer/12418290?hl=en&quot;&gt;Google: Inactive Google Account Policy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://support.microsoft.com/en-us/accounts-billing/manage/microsoft-account-activity-policy&quot;&gt;Microsoft: Account activity policy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Related reads:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://fuck.it/blog/how-to-change-email-providers&quot;&gt;How to Change Email Providers Without Losing Your Digital Life&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://fuck.it/blog/gmail-send-as-third-party-accounts-ending&quot;&gt;Gmail Is Killing &quot;Send As&quot; for Other Email Accounts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This article was originally published on the [@fuck.it] blog at &lt;a rel=&quot;nofollow&quot; href=&quot;https://fuck.it/blog/is-paid-email-worth-it&quot;&gt;https://fuck.it/blog/is-paid-email-worth-it&lt;/a&gt; and is republished here by the author. [@fuck.it] is a privacy-focused, subscription-funded email service by Paradise Circus, Inc. — no ads, no tracking. Facts and product details are accurate as of October 13, 2026; check the original for the latest version.&lt;/em&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/30986/is-paying-for-email-worth-it-what-your-money-actually-buys</guid>
<pubDate>Tue, 13 Oct 2026 20:29:52 +0000</pubDate>
</item>
<item>
<title>I Built a Bulletproof Personal Email and Identity System for the Price of a Coffee a Year.</title>
<link>https://coderlegion.com/27073/i-built-a-bulletproof-personal-email-and-identity-system-for-the-price-of-a-coffee-a-year</link>
<description>&lt;p&gt;I quit Gmail. Not dramatically — no manifesto, no LinkedIn post about &quot;digital sovereignty.&quot; I just got tired of being the product in a relationship I never signed up for, tired of knowing that somewhere in a Mountain View data center there's a shockingly accurate profile of me built from thirteen years of subject lines, and tired of the fact that my entire digital identity — every password reset, every &quot;verify it's you&quot; — routed through a single company that owes me nothing and could nuke my account for a TOS violation I'll never fully understand.&lt;/p&gt;
&lt;p&gt;So I rebuilt it. Properly, as an engineer, not as someone who read one privacy blog and panic-deleted their contacts. What follows is the actual architecture: the domain, the mail routing, the encrypted mailbox, the hardware keys, and the self-hosted photo/file layer that finally let me tell Google Photos to get lost too. I'm also going to correct a popular myth along the way, because half the &quot;de-googling&quot; guides floating around right now are recommending a setup that's been dead since 2023 and don't seem to have noticed.&lt;/p&gt;
&lt;p&gt;Let's build it properly.&lt;/p&gt;
&lt;h3 id=&quot;first-let-me-kill-a-myth-free-custom-domain-corporate-email-mostly-doesn-t-exist-anymore&quot;&gt;First, Let Me Kill a Myth: &quot;Free Custom-Domain Corporate Email&quot; Mostly Doesn't Exist Anymore&lt;/h3&gt;
&lt;p&gt;If you've read any de-googling guide from the last few years, you've seen some version of this recipe: buy a domain, bolt it onto a free-tier business email suite from whatever regional Google Workspace competitor was fashionable that year, get real custom-domain mailboxes at zero cost, done. It used to work, for a bunch of different providers, and half the tutorials still floating around online are reheating a version of that trick from an era that's already over.&lt;/p&gt;
&lt;p&gt;The honest 2026 landscape: Google Workspace killed its free custom-domain tier years ago and never brought it back. Microsoft 365 never had one. Most &quot;free business email&quot; providers that still advertise a genuinely free custom-domain tier cap you hard — a handful of users, a few gigabytes, webmail-only with no real IMAP/POP access, meaning no Outlook, no Apple Mail, no third-party client. Fine for a solo side project, not something you want to build your actual identity on. I'm mentioning this loudly because nothing kills your credibility as &quot;the security guy&quot; faster than shipping someone a setup guide built around a free tier that got quietly gutted three years ago.&lt;/p&gt;
&lt;p&gt;So here's the actual, currently-true architecture, and it's honestly better than any single free-tier suite anyway, because it doesn't depend on one company's continued generosity.&lt;/p&gt;
&lt;h3 id=&quot;the-architecture&quot;&gt;The Architecture&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;your-domain.com (registered, DNS on Cloudflare)
        │
        ▼
Cloudflare Email Routing  (free, forever, forwards mail — no mailbox of its own)
        │
        ▼
Proton Mail  (the real, encrypted mailbox — zero-access, custom domain optional)
        │
        ▼
YubiKey / FIDO2 hardware key  (guards the front door to everything above)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Three moving parts, one hardware key protecting all of them. Let's go through each layer, because the interesting engineering is in &lt;em&gt;why&lt;/em&gt; each piece sits where it does, not just in the click-here-click-there setup steps you can already find in eleven other tutorials.&lt;/p&gt;
&lt;h4 id=&quot;layer-1-the-domain-and-why-the-registrar-matters-more-than-you-think&quot;&gt;Layer 1: The Domain, and Why the Registrar Matters More Than You Think&lt;/h4&gt;
&lt;p&gt;Buy a domain. Doesn't matter much which TLD, but do yourself a favor and register it directly through &lt;strong&gt;Cloudflare Registrar&lt;/strong&gt;, which sells at wholesale/cost pricing with no markup, no upsell renewal traps, and it lands your DNS on Cloudflare's infrastructure by default — which you need anyway for Email Routing in the next step.&lt;/p&gt;
&lt;p&gt;Two settings people skip that you shouldn't:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;WHOIS privacy&lt;/strong&gt; — on by default with most modern registrars now, but verify it. Your name and home address do not need to be a &lt;code&gt;whois&lt;/code&gt; lookup away from anyone who's curious.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Registry lock / registrar transfer lock&lt;/strong&gt; — this stops someone from social-engineering their way into transferring your domain out from under you. Your entire identity system is built on top of a domain name. Whoever controls the domain controls the DNS. Whoever controls the DNS controls where your mail goes. This is your actual root of trust, and it deserves more paranoia than the mailbox does.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;layer-2-cloudflare-email-routing-the-free-plumbing&quot;&gt;Layer 2: Cloudflare Email Routing — The Free Plumbing&lt;/h4&gt;
&lt;p&gt;This is the part that's genuinely free, forever, no asterisk. It is &lt;strong&gt;not&lt;/strong&gt; a mailbox — I want to be precise here because a lot of tutorials get sloppy about this and it causes confusion. Email Routing receives mail addressed to anything at your domain and forwards it to a real, existing inbox you already control. There's no login, no storage, no IMAP server sitting on Cloudflare's side.&lt;/p&gt;
&lt;p&gt;Setup, for real this time:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1. Add your domain to Cloudflare (nameservers must point to Cloudflare)
2. Dashboard → Email → Email Routing → Enable
3. Cloudflare auto-adds the MX and SPF TXT records for you
4. Add a &quot;Destination address&quot; — this is where mail actually lands
   (verify it: Cloudflare emails you a confirmation link)
5. Create routing rules:
     *Emails are not allowed*     → forward to → your Proton Mail address
     *@your-domain.com       → catch-all  → same destination (optional)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The free tier gives you &lt;strong&gt;200 routing rules per domain and 200 destination addresses per account&lt;/strong&gt;, with a 25 MiB inbound message cap — genuinely generous limits that most humans will never bump into. The one thing to understand clearly: this is &lt;strong&gt;receive-only&lt;/strong&gt;. Hit reply and your message goes out from whatever mailbox you're actually forwarding into, not from a magic Cloudflare SMTP server. That's fine, because the next layer is where sending actually happens.&lt;/p&gt;
&lt;h4 id=&quot;layer-3-proton-mail-your-actual-mailbox-not-just-a-backup-channel-&quot;&gt;Layer 3: Proton Mail — Your Actual Mailbox, Not Just a &quot;Backup Channel&quot;&lt;/h4&gt;
&lt;p&gt;Here's where I'm going to gently push back on the brief I was given, because architecturally it doesn't quite hold up: Proton Mail isn't really a &quot;backup secure channel&quot; sitting behind something else — it's the actual encrypted mailbox doing the real work. Cloudflare Email Routing has nowhere to forward mail &lt;em&gt;to&lt;/em&gt; unless something on the other end is actually storing and encrypting it. Proton is that something.&lt;/p&gt;
&lt;p&gt;Two ways to wire it up, depending on how much you want to spend:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;$0 path:&lt;/strong&gt; free Proton Mail account as the destination for Cloudflare's forwarding rules. You receive at &lt;code&gt;*Emails are not allowed*&lt;/code&gt;, it lands zero-access-encrypted in Proton, and you reply from your &lt;code&gt;@proton.me&lt;/code&gt; address (or configure Gmail/whatever client-side &quot;send as&quot; trickery you like — it's the same limitation Cloudflare has, just one layer removed).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;~$4–5/month path:&lt;/strong&gt; Proton Mail Plus (or Unlimited) supports &lt;strong&gt;native custom domains&lt;/strong&gt; — full two-way send-and-receive as &lt;code&gt;*Emails are not allowed*&lt;/code&gt;, no forwarding hop needed at all, Proton handles your domain's MX directly. This is the cleaner setup if you want your custom address to be indistinguishable from a &quot;real&quot; hosted mailbox, and it skips Cloudflare Email Routing for mail entirely (you'd still likely keep Cloudflare as your DNS host for everything else).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Zero-access encryption means Proton's own infrastructure can't read your mail content even if compelled to — this is architecturally different from Gmail, where Google absolutely can and does read metadata and content for ad targeting, ML training, and &quot;safety&quot; scanning, whatever their current PR phrasing for that is this quarter.&lt;/p&gt;
&lt;h3 id=&quot;layer-4-the-yubikey-and-what-fido2-webauthn-actually-is-under-the-hood&quot;&gt;Layer 4: The YubiKey, and What FIDO2/WebAuthn Actually Is Under the Hood&lt;/h3&gt;
&lt;p&gt;This is the part every de-googling guide name-drops and almost none actually explain, so let's fix that.&lt;/p&gt;
&lt;p&gt;A YubiKey isn't &quot;a password, but physical.&quot; It's a hardware implementation of &lt;strong&gt;public-key cryptography for authentication&lt;/strong&gt;. When you register the key with a service, the key generates a unique public/private keypair &lt;em&gt;for that specific domain&lt;/em&gt; — the private key never leaves the hardware, ever, under any circumstances, not even during authentication. The service stores the public key. To log in, the service sends a challenge, your key signs it with the private key, and the service verifies the signature. Nothing secret ever crosses the network. There is no password to phish, because there's no password in the exchange at all — just a domain-bound cryptographic signature that a phishing site literally cannot forge, because it can't reproduce your domain's cryptographic challenge context.&lt;/p&gt;
&lt;p&gt;That domain-binding is the entire point, and it's why WebAuthn/FIDO2 is considered close to phishing-proof in a way SMS codes and even TOTP apps aren't — a fake login page at &lt;code&gt;proton-login-secure.com&lt;/code&gt; can absolutely trick you into typing a TOTP code, and that stolen code works. It cannot trick your YubiKey, because the key checks the actual origin before it signs anything, and it will simply refuse to respond to a domain it wasn't registered against.&lt;/p&gt;
&lt;p&gt;Practical setup:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Buy two.&lt;/strong&gt; One you carry, one that lives somewhere safe (a drawer, a safe deposit box, not &quot;in a drawer next to the first one&quot;). Register both as separate security keys everywhere. Losing your only key locks you out of your own life; losing one of two is a Tuesday.&lt;/li&gt;
&lt;li&gt;Register it on &lt;strong&gt;Proton&lt;/strong&gt; (Account Settings → Security → Two-factor authentication → Security keys), on &lt;strong&gt;Cloudflare&lt;/strong&gt; (this protects your DNS — arguably your most important account of all, per the root-of-trust point above), on &lt;strong&gt;GitHub&lt;/strong&gt;, and on your password manager.&lt;/li&gt;
&lt;li&gt;One honest nuance worth knowing, because it'll make you sound sharp in a security discussion rather than someone who just read the marketing page: Proton's &quot;FIDO2&quot; support is, more precisely, &lt;strong&gt;U2F running under the FIDO2 umbrella&lt;/strong&gt; — you still authenticate with username and password &lt;em&gt;plus&lt;/em&gt; the key, not a full passwordless discoverable-credential flow the way Google or Microsoft now support natively. It's still genuinely phishing-resistant and worth using; it's just not the fully passwordless flavor some competitors ship. Small distinction, but the kind of thing that separates &quot;I read a blog post&quot; from &quot;I actually understand what I deployed.&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;the-password-manager-you-still-need&quot;&gt;The Password Manager You Still Need&lt;/h4&gt;
&lt;p&gt;A hardware key protects logins that support it. Everything else — every random SaaS tool, every forum, every one-off account — still needs a strong, unique password, and you still need somewhere to keep them. &lt;strong&gt;Bitwarden&lt;/strong&gt; (or its self-hostable fork, &lt;strong&gt;Vaultwarden&lt;/strong&gt;, which runs happily on a Raspberry Pi) supports FIDO2/WebAuthn as an unlock method itself, so your entire password vault ends up gated behind the same hardware key guarding your mail. One key, one consistent security model, instead of a different app-based 2FA scheme for every service you own.&lt;/p&gt;
&lt;h3 id=&quot;de-googling-the-rest-files-and-photos&quot;&gt;De-Googling the Rest: Files and Photos&lt;/h3&gt;
&lt;p&gt;Email was never the whole problem. Google Photos and Google Drive are the other two legs of the stool, and 2026 finally has a clean, boring, mature answer for both — you just need two different tools, because they solve two different problems and pretending one tool does both is how people end up disappointed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Immich&lt;/strong&gt; replaces Google Photos specifically. It's the closest like-for-like clone that exists: native iOS and Android apps with automatic background backup, CLIP-based natural-language search (&quot;photos of a dog on a beach&quot; actually works), on-device-adjacent face recognition, timeline and map views. AGPL-3.0, open source, sitting north of &lt;strong&gt;100,000 GitHub stars&lt;/strong&gt; as of mid-2026. Budget real resources for it — figure roughly 1.5–2GB of idle RAM and more under load for the ML workers doing face/search indexing; this is not a Raspberry Pi project unless you're patient.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nextcloud&lt;/strong&gt; replaces Google Drive, Calendar, and Contacts — a general-purpose self-hosted platform rather than a photo-specific app. Its own Photos app exists but is, by every current comparison, the weakest part of the suite; if photos are your main goal, don't lead with Nextcloud for that job.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The honest, slightly annoying truth: run both, side by side, on the same box if it has the RAM. They don't conflict, they solve different problems, and &quot;one self-hosted app to rule them all&quot; is a myth in this ecosystem the same way &quot;one language to rule them all&quot; is in ours. Nextcloud handles your documents and calendar; Immich handles your camera roll. You now maintain two databases and two upgrade paths instead of one, and that is the actual, non-negotiable cost of self-hosting — nobody hands you Google's engineering team for free, you're trading their maintenance burden for your own.&lt;/p&gt;
&lt;h3 id=&quot;the-part-nobody-mentions-don-t-self-host-the-mail-server-itself&quot;&gt;The Part Nobody Mentions: Don't Self-Host the Mail &lt;em&gt;Server&lt;/em&gt; Itself&lt;/h3&gt;
&lt;p&gt;I want to head off the inevitable next question, because I can feel some of you already reaching for &lt;code&gt;postfix&lt;/code&gt; and a fresh VPS: &lt;strong&gt;do not run your own SMTP server for this.&lt;/strong&gt; I've written about self-hosting plenty of things on this blog, and mail is the one category where I will talk you out of it every single time. Port 25 is blocked outbound by default on most major cloud providers specifically because of spam abuse. A brand-new IP has zero sending reputation and lands in spam folders by default. Getting off the major blocklists once you're on them is a slow, humiliating, manual process involving web forms and goodwill. Proton and Cloudflare have already spent years building and defending the sending reputation you're borrowing — let them keep doing that job. Self-host your files, your photos, your git repos, your home automation. Don't self-host your mail's deliverability reputation; you will lose that fight against Gmail's spam filter and you won't even get a good war story out of it.&lt;/p&gt;
&lt;p&gt;What you &lt;em&gt;should&lt;/em&gt; configure yourself, regardless of which mail path you pick: &lt;strong&gt;SPF, DKIM, and DMARC&lt;/strong&gt; records on your domain. These are the DNS records that tell the rest of the internet &quot;only these servers are allowed to send mail as me,&quot; and without them your domain is a much easier target for someone to spoof &lt;code&gt;*Emails are not allowed*&lt;/code&gt; in a phishing email sent to your own contacts. Both Cloudflare Email Routing and Proton's custom domain setup walk you through adding these automatically — just don't skip the step because the wizard finished without complaining.&lt;/p&gt;
&lt;h3 id=&quot;what-this-actually-costs&quot;&gt;What This Actually Costs&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Domain: roughly $10–15/year, depending on TLD&lt;/li&gt;
&lt;li&gt;Cloudflare Email Routing: $0, forever&lt;/li&gt;
&lt;li&gt;Proton Mail: $0 (free tier, forwarding path) or ~$50–60/year (custom domain, native send-and-receive)&lt;/li&gt;
&lt;li&gt;Vaultwarden self-hosted, or Bitwarden free tier: $0&lt;/li&gt;
&lt;li&gt;Two YubiKeys: roughly $50–60 total, one-time, and they'll outlive several phones&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Total: somewhere between the price of a domain name alone and the price of a decent dinner out, once a year, for a mail and identity system where no single ad-funded company holds the keys to your entire digital life. Not bad for an afternoon of DNS records and one very satisfying moment of finally deleting the Gmail app off your phone.&lt;/p&gt;
</description>
<category>Discussions</category>
<guid isPermaLink="true">https://coderlegion.com/27073/i-built-a-bulletproof-personal-email-and-identity-system-for-the-price-of-a-coffee-a-year</guid>
<pubDate>Sun, 13 Sep 2026 18:14:52 +0000</pubDate>
</item>
<item>
<title>Second Project Back: A Phishing Email Analyzer (Still a Beginner, Still Learning)</title>
<link>https://coderlegion.com/23674/second-project-back-a-phishing-email-analyzer-still-a-beginner-still-learning</link>
<description>&lt;h2 id=&quot;second-project-back-a-phishing-email-analyzer-still-a-beginner-still-learning-&quot;&gt;Second Project Back: A Phishing Email Analyzer (Still a Beginner, Still Learning)&lt;/h2&gt;
&lt;p&gt;A little while ago I wrote about coming back to documenting my work after a long quiet stretch, starting with a small IOC enrichment tool. This is the next entry in that same habit — a phishing email analyzer, built for the same reason: phishing makes up the overwhelming majority of L1 SOC tickets, and I wanted to actually understand the mechanics behind the checks analysts run every day, instead of just knowing the term &quot;SPF/DKIM/DMARC&quot; without having implemented any of it myself.&lt;/p&gt;
&lt;p&gt;Same disclaimer as last time: &lt;strong&gt;this isn't a novel tool.&lt;/strong&gt; Proper email security gateways and existing phishing analysis tools do this far better, with years of edge cases baked in that I haven't encountered yet. This is a beginner project built to learn by doing, not a claim that I've built something the industry needs.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-it-does&quot;&gt;What It Does&lt;/h3&gt;
&lt;p&gt;Upload a raw &lt;code&gt;.eml&lt;/code&gt; file (or paste the raw source), and it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extracts headers and flags mismatches between From, Reply-To, and Return-Path&lt;/li&gt;
&lt;li&gt;Actually verifies SPF against DNS records and the real originating IP&lt;/li&gt;
&lt;li&gt;Cryptographically verifies the DKIM signature against the sender's public key&lt;/li&gt;
&lt;li&gt;Checks DMARC policy&lt;/li&gt;
&lt;li&gt;Flags lookalike/typosquatted domains&lt;/li&gt;
&lt;li&gt;Hashes attachments and checks them against VirusTotal and MalwareBazaar&lt;/li&gt;
&lt;li&gt;Spits out a incident report I can paste straight into a case writeup&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-part-that-actually-taught-me-something&quot;&gt;The Part That Actually Taught Me Something&lt;/h3&gt;
&lt;p&gt;Building the SPF/DKIM checks is where I learned the most, mostly by getting things wrong first.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Received headers are in reverse order.&lt;/strong&gt; I assumed — like reading anything else — that the first &lt;code&gt;Received:&lt;/code&gt; header at the top of an email would be the first hop, chronologically. It's the opposite. Mail servers &lt;em&gt;prepend&lt;/em&gt; new Received headers as the message moves along, so the top one is the most recent hop and the bottom one is closest to the original sender. My first version of the origin-IP extraction logic was quietly reading the wrong end of the chain and flagging the recipient's own mail server as &quot;suspicious.&quot; Small thing, but a wrong assumption like that would have made every result in this tool backwards if I hadn't caught it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SPF checks the Return-Path domain, not the From domain.&lt;/strong&gt; This one surprised me. The visible &quot;From&quot; address is what a human reads, but SPF authentication is actually evaluated against the envelope sender — the Return-Path — which the recipient never even sees by default. That's exactly &lt;em&gt;why&lt;/em&gt; Reply-To/Return-Path spoofing works as an attack in the first place: the part a human trusts (From) isn't the part the mail server verifies (Return-Path). Getting this distinction right in code meant actually understanding why the attack works, not just detecting that it happened.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Trusting a pre-computed result is a trap&lt;/strong&gt; — same lesson as my last project's MalwareBazaar issue, different context this time. It would've been much faster to just read the &lt;code&gt;Authentication-Results&lt;/code&gt; header the receiving mail server already left behind, stating whether SPF/DKIM/DMARC passed. But that header is written by &lt;em&gt;some&lt;/em&gt; mail server in the delivery chain — and if the whole point of the tool is catching sophisticated spoofing, trusting a self-reported result defeats the purpose. So this version does the DNS lookups and DKIM signature verification itself, independently.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-s-still-rough-on-purpose-documented-not-hidden-&quot;&gt;What's Still Rough (On Purpose, Documented, Not Hidden)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;SPF &lt;code&gt;include:&lt;/code&gt; mechanisms (third-party senders like &lt;code&gt;include:_spf.google.com&lt;/code&gt;) aren't recursively resolved — the tool flags them for manual review instead of chasing the chain down. Proper recursive SPF resolution is a project on its own.&lt;/li&gt;
&lt;li&gt;DMARC organizational domain lookup is simplified — a fully correct version needs the Public Suffix List to know where the real organizational boundary sits (think &lt;code&gt;.co.uk&lt;/code&gt; vs &lt;code&gt;.com&lt;/code&gt;), which I haven't implemented yet.&lt;/li&gt;
&lt;li&gt;Homograph detection is edit-distance based against a fixed brand list, not a comprehensive Unicode confusable-character database.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;None of these are hidden in the code — they're commented directly where the simplification happens, partly so I remember what to improve, partly because I'd rather be upfront about where the tool's edges are than let it look more complete than it is.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-keep-writing-these&quot;&gt;Why Keep Writing These&lt;/h3&gt;
&lt;p&gt;Same reason as before — the value isn't in looking finished, it's in having an honest record of what I understood well enough to build versus what I'm still learning. If the SPF/Return-Path distinction was new to me, it's probably new to other people making the same jump from development into security, and that's worth writing down plainly rather than only presenting the polished result.&lt;/p&gt;
&lt;p&gt;Next up is likely a home SIEM lab, and probably a case where I actually run one of my own tools against a real (safely sourced) phishing sample instead of the fabricated test email I used to build this one.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Muhammad Abdullah — learning SOC analysis, building things along the way.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;GitHub: &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/m-abdullah-06&quot;&gt;m-abdullah-06&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/23674/second-project-back-a-phishing-email-analyzer-still-a-beginner-still-learning</guid>
<pubDate>Tue, 28 Jul 2026 13:26:36 +0000</pubDate>
</item>
<item>
<title>Set Up a Free Professional Email Address With Gmail and Cloudflare. Even If You Don't Own a Domain</title>
<link>https://coderlegion.com/17088/set-free-professional-email-address-with-gmail-and-cloudflare-even-if-you-dont-own-domain</link>
<description>&lt;p&gt;Tired of using a plain &lt;code&gt;@gmail.com&lt;/code&gt; for business, newsletters, portfolios, or professional emails? You can set up unlimited custom email addresses eg:yourname[at]yourdomain.com &lt;strong&gt;completely free, with no monthly fees&lt;/strong&gt; for Google Workspace or similar services.&lt;/p&gt;
&lt;p&gt;This guide became super popular after a viral X (Twitter) thread, but many people get stuck because they don't have a domain yet, or they try the wrong SMTP settings for sending emails.&lt;/p&gt;
&lt;p&gt;This complete beginner-friendly tutorial covers &lt;strong&gt;everything&lt;/strong&gt; from getting your first domain (free or very cheap) → setting up incoming mail with Cloudflare → sending from Gmail. No tech experience needed, follow along step by step.&lt;/p&gt;
&lt;h3 id=&quot;why-this-setup-is-awesome-and-what-to-know-&quot;&gt;Why This Setup Is Awesome (and What to Know)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Totally free after you get the domain (domain can cost $0 to $12/year)&lt;/li&gt;
&lt;li&gt;Unlimited email addresses/aliases (e.g., info@, support@, yourname@)&lt;/li&gt;
&lt;li&gt;Emails arrive in your regular Gmail inbox&lt;/li&gt;
&lt;li&gt;Send emails from your custom address directly in Gmail (web, mobile app, etc.)&lt;/li&gt;
&lt;li&gt;Perfect for creators, freelancers, students, indie hackers, or side projects&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Limitations&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cloudflare handles &lt;strong&gt;receiving&lt;/strong&gt; only, and we use Gmail to &lt;strong&gt;send&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Outgoing emails use Gmail's servers → good deliverability, but not perfect for massive cold emailing (may hit spam folders sometimes)&lt;/li&gt;
&lt;li&gt;Gmail free account limit: \~500 emails/day&lt;/li&gt;
&lt;li&gt;For super high volume or perfect branding, you could add a cheap SMTP service later&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you're just starting, this is one of the best zero-cost setups in 2026.&lt;/p&gt;
&lt;h3 id=&quot;step-0-get-your-domain-name-free-or-super-cheap-options-&quot;&gt;Step 0: Get Your Domain Name (Free or Super Cheap Options)&lt;/h3&gt;
&lt;p&gt;You need a domain name first (like &lt;code&gt;yourname.com&lt;/code&gt;). Here's how to get one easily:&lt;/p&gt;
&lt;h4 id=&quot;option-1-free-for-students-best-if-eligible-&quot;&gt;Option 1: Free for Students (Best if Eligible)&lt;/h4&gt;
&lt;p&gt;If you're a student (university, college, bootcamp, etc.):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;a rel=&quot;nofollow&quot; href=&quot;https://education.github.com/pack&quot;&gt;education.github.com/pack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sign up or log in with your GitHub account → verify student status (usually with school email or ID)&lt;/li&gt;
&lt;li&gt;Once approved (usually instant or 1 to 2 days), scroll to the &quot;Domains&quot; section&lt;/li&gt;
&lt;li&gt;Choose an offer:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Namecheap: Free 1-year &lt;code&gt;.me&lt;/code&gt; domain (great for personal sites/emails)&lt;/li&gt;
&lt;li&gt;Name.com: Free 1-year on extensions like &lt;code&gt;.dev&lt;/code&gt;, &lt;code&gt;.app&lt;/code&gt;, &lt;code&gt;.live&lt;/code&gt;, &lt;code&gt;.studio&lt;/code&gt;, &lt;code&gt;.rocks&lt;/code&gt;, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Redeem the offer → follow their instructions to register the domain&lt;/li&gt;
&lt;li&gt;Done! You get a real domain for free for 1 year (renewal is usually cheap afterward).&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&quot;option-2-very-cheap-for-anyone-1-to-10-first-year-&quot;&gt;Option 2: Very Cheap for Anyone (\~$1 to $10 First Year)&lt;/h4&gt;
&lt;p&gt;Popular beginner-friendly registrars with promos (as of February 2026):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Namecheap&lt;/strong&gt; (recommended for simplicity): Often $0.99 to $6.49 for first-year &lt;code&gt;.com&lt;/code&gt;, &lt;code&gt;.site&lt;/code&gt;, &lt;code&gt;.online&lt;/code&gt;, etc. Use promo codes like &lt;code&gt;99SPECIAL&lt;/code&gt; for 99¢ domains or check current deals at namecheap.com/promos. Free WHOIS privacy included.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Porkbun&lt;/strong&gt;: At-cost pricing, beginner dashboard, often $5 to $10 for &lt;code&gt;.com&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloudflare Registrar&lt;/strong&gt; (if you plan to use Cloudflare anyway): At-cost renewals, no markup (\~$10 to $11/year for &lt;code&gt;.com&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hostinger&lt;/strong&gt; or &lt;strong&gt;Wix&lt;/strong&gt;: Sometimes bundle a free domain for 1 year with cheap hosting (but you don't need hosting here, just the domain).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Steps to register (example with Namecheap):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.namecheap.com&quot;&gt;namecheap.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Search for your desired name (e.g., &lt;code&gt;rdjarbeng.com&lt;/code&gt; or &lt;code&gt;mybrand.online&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Add to cart → apply any promo code at checkout&lt;/li&gt;
&lt;li&gt;Create account → pay (credit card, PayPal, etc.)&lt;/li&gt;
&lt;li&gt;After purchase, you'll get login access to manage the domain&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Choose &lt;code&gt;.com&lt;/code&gt;, &lt;code&gt;.me&lt;/code&gt;, &lt;code&gt;.dev&lt;/code&gt;, or &lt;code&gt;.app&lt;/code&gt; — they look professional and are widely accepted.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;step-1-add-your-domain-to-cloudflare-amp-enable-email-routing-incoming-mail-&quot;&gt;Step 1: Add Your Domain to Cloudflare &amp;amp; Enable Email Routing (Incoming Mail)&lt;/h3&gt;
&lt;p&gt;Cloudflare is free and secure. It will handle receiving emails and forward them to your Gmail.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;a rel=&quot;nofollow&quot; href=&quot;https://dash.cloudflare.com&quot;&gt;dash.cloudflare.com&lt;/a&gt; and sign up for a free account (email + password).&lt;/li&gt;
&lt;li&gt;After logging in, click &lt;strong&gt;Add a site&lt;/strong&gt; (or &lt;strong&gt;Onboard a domain&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;Enter your domain (e.g., &lt;code&gt;yourdomain.com&lt;/code&gt;) → Continue.&lt;/li&gt;
&lt;li&gt;Cloudflare scans your existing DNS (if any) → select the &lt;strong&gt;Free plan&lt;/strong&gt; → Continue.&lt;/li&gt;
&lt;li&gt;Cloudflare gives you two &lt;strong&gt;nameservers&lt;/strong&gt; (something like &lt;code&gt;ns1.cloudflare.com&lt;/code&gt; and &lt;code&gt;ns2.cloudflare.com&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Go back to your domain registrar (Namecheap, Porkbun, etc.):&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Find &quot;Nameservers&quot; or &quot;DNS&quot; settings&lt;/li&gt;
&lt;li&gt;Change from default to &lt;strong&gt;Custom&lt;/strong&gt; → paste the two Cloudflare nameservers&lt;/li&gt;
&lt;li&gt;Save&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Wait 5 to 60 minutes (sometimes up to 24 hours) for changes to propagate → refresh Cloudflare dashboard until it says &quot;Active&quot;.&lt;/li&gt;
&lt;li&gt;In Cloudflare dashboard → select your domain → go to &lt;strong&gt;Email&lt;/strong&gt; → &lt;strong&gt;Email Routing&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Get started&lt;/strong&gt; or &lt;strong&gt;Enable&lt;/strong&gt; → Cloudflare adds the needed MX records automatically.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to &lt;strong&gt;Email&lt;/strong&gt; → &lt;strong&gt;Routes&lt;/strong&gt; or &lt;strong&gt;Custom addresses&lt;/strong&gt; → &lt;strong&gt;Create address&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enter email: e.g., &lt;code&gt;*yourname[at]yourdomain.com*&lt;/code&gt; (or &lt;code&gt;info@&lt;/code&gt;, &lt;code&gt;hello@&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;Destination: your real Gmail address (e.g., &lt;code&gt;*yourname[at]gmail.com*&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Save&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test: Send an email to your new custom address → it should appear in Gmail within seconds!&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; You can create unlimited addresses, all forwarding to the same Gmail (or different ones).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;step-2-prepare-gmail-to-send-must-do-app-password-&quot;&gt;Step 2: Prepare Gmail to Send (Must-Do: App Password)&lt;/h3&gt;
&lt;p&gt;Gmail needs extra security for sending from custom addresses.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;a rel=&quot;nofollow&quot; href=&quot;https://myaccount.google.com/security&quot;&gt;myaccount.google.com/security&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Turn on &lt;strong&gt;2-Step Verification&lt;/strong&gt; if not already enabled (use your phone).&lt;/li&gt;
&lt;li&gt;Search for &lt;strong&gt;App passwords&lt;/strong&gt; → click it.&lt;/li&gt;
&lt;li&gt;Select app: &lt;strong&gt;Mail&lt;/strong&gt;&lt;br&gt;
Select device: &lt;strong&gt;Other&lt;/strong&gt; (name it e.g., &quot;Custom Email&quot;)&lt;/li&gt;
&lt;li&gt;Generate → copy the 16-character password (save it somewhere safe, no spaces).&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;step-3-add-your-custom-email-to-gmail-send-from-it-&quot;&gt;Step 3: Add Your Custom Email to Gmail (Send From It!)&lt;/h3&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Do &lt;strong&gt;not&lt;/strong&gt; use Cloudflare's server for sending. Use Gmail's.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Open Gmail → click the gear icon → &lt;strong&gt;See all settings&lt;/strong&gt; → &lt;strong&gt;Accounts and Import&lt;/strong&gt; tab.&lt;/li&gt;
&lt;li&gt;Under &lt;strong&gt;Send mail as&lt;/strong&gt; → click &lt;strong&gt;Add another email address&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Fill in:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Name: Your name or brand&lt;/li&gt;
&lt;li&gt;Email: &lt;code&gt;*yourname[at]yourdomain.com*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uncheck&lt;/strong&gt; &quot;Treat as an alias&quot; → Next&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;SMTP settings:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;SMTP Server: &lt;code&gt;smtp.gmail.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Port: &lt;code&gt;587&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Username: Your full Gmail (e.g., &lt;code&gt;*yourname[at]gmail.com*&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Password: The &lt;strong&gt;App Password&lt;/strong&gt; from Step 2&lt;/li&gt;
&lt;li&gt;Use TLS: Yes (usually default)&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Add Account&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Gmail sends a verification code to your custom email → it forwards to Gmail inbox.&lt;/li&gt;
&lt;li&gt;Find the code → enter it → verified!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now compose emails in Gmail → click the &quot;From&quot; dropdown → choose your custom address.&lt;/p&gt;
&lt;h3 id=&quot;step-4-boost-deliverability-optional-but-helpful-dns-&quot;&gt;Step 4: Boost Deliverability (Optional but Helpful DNS)&lt;/h3&gt;
&lt;p&gt;In Cloudflare DNS → add/update these TXT records:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SPF&lt;/strong&gt; (prevents spam flags):&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-plain&quot;&gt;v=spf1 include:_spf.mx.cloudflare.net include:_spf.google.com ~all
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;  (Name/Host: &lt;code&gt;@&lt;/code&gt;)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DMARC&lt;/strong&gt; (monitor reports):&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-plain&quot;&gt;v=DMARC1; p=none; rua=mailto:*yourname[at]gmail.com*
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;  (Name/Host: &lt;code&gt;_dmarc&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;No DKIM from this free setup, which is normal.&lt;/p&gt;
&lt;h3 id=&quot;testing-amp-tips&quot;&gt;Testing &amp;amp; Tips&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Send test emails to friends → check inbox/spam.&lt;/li&gt;
&lt;li&gt;Set your custom address as default in Gmail if you want.&lt;/li&gt;
&lt;li&gt;Mobile: Works perfectly in Gmail app.&lt;/li&gt;
&lt;li&gt;Stuck on verification: Regenerate App Password (common issue).&lt;/li&gt;
&lt;li&gt;Propagation slow: Wait and refresh, normal for new domains.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;alternatives-if-you-need-more&quot;&gt;Alternatives If You Need More&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Zoho Mail&lt;/strong&gt; free tier: Full features + DKIM (limited storage)&lt;/li&gt;
&lt;li&gt;Paid SMTP (e.g., SMTP2GO free tier) for better sending reputation&lt;/li&gt;
&lt;li&gt;Self-hosted if advanced&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This Cloudflare + Gmail trick is still one of the top free email hacks in 2026. Share your custom email or any questions in the comments below.&lt;/p&gt;
&lt;p&gt;Happy emailing!&lt;/p&gt;
&lt;h4 id=&quot;media-mentions-&quot;&gt;Media mentions:&lt;/h4&gt;
&lt;p&gt;Also posted on &lt;a rel=&quot;nofollow&quot; href=&quot;https://dev.to/rdjarbeng/how-to-get-a-free-professional-custom-domain-email-steps-for-beginners-on-gmail-9pj&quot;&gt;dev.to for Richard Djarbeng&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;PS: Got this email, 5th March, 2026 from someone who was able to follow this tutorial and set up their professional email:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://rdjarbeng.com/assets/images/20260305-123205.png&quot; alt=&quot;Screenshot of an email titled: Note of Appreciation on Insightful Email Setup Tutorial Made Available on rdjarbeng.com&quot; title=&quot;Screenshot of email received by Richard Djarbeng titled: Note of Appreciation on Insightful Email Setup Tutorial Made Available on rdjarbeng.com&quot;&gt;&lt;/p&gt;
&lt;p&gt;Glad to know this post helped someone &lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/17088/set-free-professional-email-address-with-gmail-and-cloudflare-even-if-you-dont-own-domain</guid>
<pubDate>Fri, 08 May 2026 18:17:20 +0000</pubDate>
</item>
<item>
<title>Why 74% of repeat ransomware victims say they have too many security tools, and what to do about it.</title>
<link>https://coderlegion.com/4553/why-74-repeat-ransomware-victims-say-they-have-too-many-security-tools-and-what-to-do-about</link>
<description>&lt;h2 id=&quot;security-tool-sprawl-how-more-protection-actually-creates-more-ransomware-risk&quot;&gt;Security Tool Sprawl: How 'More Protection' Actually Creates More Ransomware Risk&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Barracuda's 2025 research reveals a troubling paradox: organizations with the most security tools are getting hit hardest by ransomware&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In cybersecurity, more isn't always better. While organizations continue adding security tools to their arsenals, hoping to build impenetrable defenses, new research from &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.barracuda.com/&quot;&gt;Barracuda Networks&lt;/a&gt; reveals a troubling paradox: the companies with the most security tools are often the most vulnerable to ransomware attacks.&lt;/p&gt;
&lt;p&gt;According to Barracuda's 2025 Ransomware Insights Report, based on a survey of 2,000 IT and security decision-makers worldwide, 74% of organizations hit by multiple ransomware attacks say they're &quot;juggling too many security tools,&quot; while 61% report their tools don't integrate properly. This fragmentation isn't just an operational headache, it's creating blind spots where attackers can hide and thrive.&lt;/p&gt;
&lt;h3 id=&quot;the-repeat-victim-problem&quot;&gt;The Repeat Victim Problem&lt;/h3&gt;
&lt;p&gt;The statistics paint a stark picture of persistent vulnerability. Among the 57% of organizations that experienced successful ransomware attacks in the past year, 38% were hit multiple times. This isn't random bad luck, it's a pattern that reveals fundamental security gaps that persist even after an initial compromise.&lt;/p&gt;
&lt;p&gt;&quot;The findings make it clear that ransomware is an escalating threat, and fragmented security defenses leave organizations immensely vulnerable,&quot; said Neal Bradbury, Barracuda's chief product officer. &quot;In many cases attackers can move through victims' networks, gaining access to devices, data and more without being detected and blocked.&quot;&lt;/p&gt;
&lt;p&gt;The correlation between security sprawl and repeat attacks suggests that organizations aren't learning from their first encounters with ransomware. Instead of addressing underlying architectural issues, many victims add yet another security tool to their stack, further complicating an already fragmented environment.&lt;/p&gt;
&lt;h3 id=&quot;the-email-security-blind-spot&quot;&gt;The Email Security Blind Spot&lt;/h3&gt;
&lt;p&gt;One of the most revealing findings concerns email security, a fundamental layer of protection that remains surprisingly weak across many organizations. Only 47% of ransomware victims had implemented email security solutions, compared to 59% of organizations that avoided attacks entirely.&lt;/p&gt;
&lt;p&gt;This gap is particularly concerning given that 71% of organizations that suffered email breaches were also hit with ransomware, clearly demonstrating the connection between these attack vectors. Yet many organizations still don't make this connection, treating email security as a nice-to-have rather than a critical foundation for ransomware prevention.&lt;/p&gt;
&lt;p&gt;The same pattern emerges across other security fundamentals: 48% of ransomware victims had network monitoring in place compared to 59% of non-victims, and only 45% had security awareness training versus 51% of unaffected organizations. These aren't exotic security measures—they're basic protections that many organizations have somehow overlooked while chasing more sophisticated solutions.&lt;/p&gt;
&lt;h3 id=&quot;beyond-encryption-the-new-ransomware-playbook&quot;&gt;Beyond Encryption: The New Ransomware Playbook&lt;/h3&gt;
&lt;p&gt;Modern ransomware attacks have evolved far beyond simple data encryption. Barracuda's research reveals that today's attacks are multidimensional campaigns designed for maximum impact and leverage. Only 24% of successful attacks involved data encryption, while 27% included data theft, 27% involved publishing stolen data, and 29% saw attackers install additional malicious payloads.&lt;/p&gt;
&lt;p&gt;This evolution reflects a more sophisticated approach to extortion. Rather than simply locking files and demanding payment, attackers now steal sensitive data before encryption, giving them multiple pressure points. They threaten to expose confidential information, contact customers and partners directly, and even threaten individual employees, tactics experienced by 22%, 21%, and 16% of victims respectively.&lt;/p&gt;
&lt;p&gt;The psychological pressure campaign extends well beyond the initial attack. Attackers routinely threaten to alert authorities or the press (21% of cases) and deliberately target backup systems to eliminate recovery options, a tactic used against 19% of victims.&lt;/p&gt;
&lt;h3 id=&quot;the-false-promise-of-ransom-payments&quot;&gt;The False Promise of Ransom Payments&lt;/h3&gt;
&lt;p&gt;Despite the expanded attack surface, many organizations still view ransom payments as a viable option. The research shows that 32% of victims paid attackers to recover their data, with the rate rising to 37% among organizations hit multiple times.&lt;/p&gt;
&lt;p&gt;However, paying doesn't guarantee recovery. A sobering 41% of organizations that paid ransoms failed to recover all their data. Sometimes decryption tools don't work, attackers provide only partial keys, or files become corrupted during the encryption and decryption process. In some cases, attackers simply take the money and disappear.&lt;/p&gt;
&lt;p&gt;This reality underscores why 65% of ransomware victims who successfully recovered their data did so using backups rather than paying attackers, a reminder that fundamental security practices often outperform expensive reactive measures.&lt;/p&gt;
&lt;h3 id=&quot;the-business-impact-beyond-recovery&quot;&gt;The Business Impact Beyond Recovery&lt;/h3&gt;
&lt;p&gt;The consequences of ransomware extend far beyond immediate recovery costs. Barracuda's research found that 41% of victims experienced brand and reputation damage, while 25% lost existing customers and another 25% lost new business opportunities.&lt;/p&gt;
&lt;p&gt;These long-term impacts explain why ransomware remains so lucrative for attackers and why the threat continues to grow. Organizations in healthcare (67% attack rate), local government (65%), and retail (61%) face particularly high risks, though no industry or company size appears immune.&lt;/p&gt;
&lt;h3 id=&quot;a-path-forward-integration-over-addition&quot;&gt;A Path Forward: Integration Over Addition&lt;/h3&gt;
&lt;p&gt;The solution isn't necessarily buying more security tools, it's making existing tools work together effectively. As &lt;a rel=&quot;nofollow&quot; href=&quot;https://www.linkedin.com/in/adamkhan-cyber/&quot;&gt;Adam Khan&lt;/a&gt;, Barracuda's VP of Global Security Operations, noted during our interview, organizations need to focus on fundamentals rather than chasing the latest security technology.&lt;/p&gt;
&lt;p&gt;AI-powered Security Operations Centers are emerging as one promising approach, using automated research and investigation to reduce manual workloads while providing better visibility across fragmented security stacks. However, the technology is only as effective as the underlying security architecture it's built upon.&lt;/p&gt;
&lt;p&gt;For development and engineering teams, the key lesson is clear: security effectiveness comes from understanding how attackers actually operate, not from accumulating the maximum number of defensive tools. Organizations need to think like attackers, identifying the paths of least resistance through their environments and closing those gaps systematically.&lt;/p&gt;
&lt;p&gt;The most effective defense remains a combination of solid fundamentals—email security, network monitoring, endpoint protection, and regular backups—implemented as an integrated system rather than a collection of point solutions. In the war against ransomware, coordination beats accumulation every time.&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/4553/why-74-repeat-ransomware-victims-say-they-have-too-many-security-tools-and-what-to-do-about</guid>
<pubDate>Sun, 10 Aug 2025 04:45:43 +0000</pubDate>
</item>
<item>
<title>Concise list of Angular essentials</title>
<link>https://coderlegion.com/3251/concise-list-of-angular-essentials</link>
<description>&lt;p&gt;The foundational concepts, tools, and best practices you need to know to be productive with Angular, whether you're a beginner or brushing up.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;angular-essentials&quot;&gt;Angular Essentials&lt;/h3&gt;
&lt;h4 id=&quot;1-typescript&quot;&gt;1. &lt;strong&gt;TypeScript&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Angular is built on TypeScript. Understanding TS features like interfaces, classes, types, and decorators is fundamental.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;2-modules-ngmodule-&quot;&gt;2. &lt;strong&gt;Modules (&lt;code&gt;NgModule&lt;/code&gt;)&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Organize app features.&lt;/li&gt;
&lt;li&gt;Root module = &lt;code&gt;AppModule&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Feature modules for separation of concerns.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-ts&quot;&gt;@NgModule({
  declarations: [...],
  imports: [...],
  providers: [],
  bootstrap: [AppComponent],
})
export class AppModule {}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h4 id=&quot;3-components&quot;&gt;3. &lt;strong&gt;Components&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Core building blocks of UI.&lt;/li&gt;
&lt;li&gt;Use the &lt;code&gt;@Component&lt;/code&gt; decorator.&lt;/li&gt;
&lt;li&gt;Must declare them in a module.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-ts&quot;&gt;@Component({
  selector: 'app-hello',
  templateUrl: './hello.component.html',
})
export class HelloComponent {}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h4 id=&quot;4-templates-amp-data-binding&quot;&gt;4. &lt;strong&gt;Templates &amp;amp; Data Binding&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;{{}}&lt;/code&gt; interpolation&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[property]&lt;/code&gt; binding&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(event)&lt;/code&gt; binding&lt;/li&gt;
&lt;li&gt;&lt;code&gt;[(ngModel)]&lt;/code&gt; two-way binding&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&quot;5-directives-and-blocks&quot;&gt;5. &lt;strong&gt;Directives&lt;/strong&gt; and &lt;strong&gt;blocks&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Structural: &lt;code&gt;*ngIf&lt;/code&gt;, &lt;code&gt;*ngFor&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Attribute: &lt;code&gt;[ngClass]&lt;/code&gt;, &lt;code&gt;[ngStyle]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Custom directives with &lt;code&gt;@Directive&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;@if, @for, @switch&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&quot;6-services-amp-dependency-injection&quot;&gt;6. &lt;strong&gt;Services &amp;amp; Dependency Injection&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Business logic &amp;amp; API calls go here.&lt;/li&gt;
&lt;li&gt;Reusable and testable logic.&lt;/li&gt;
&lt;li&gt;Inject with constructor-based DI.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-ts&quot;&gt;@Injectable({ providedIn: 'root' })
export class ApiService {
  constructor(private http: HttpClient) {}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h4 id=&quot;7-routing-amp-navigation&quot;&gt;7. &lt;strong&gt;Routing &amp;amp; Navigation&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Define routes in &lt;code&gt;RouterModule&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Handle dynamic params, guards, lazy loading.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-ts&quot;&gt;const routes: Routes = [
  { path: 'home', component: HomeComponent },
];
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h4 id=&quot;8-http-client&quot;&gt;8. &lt;strong&gt;HTTP Client&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;HttpClientModule&lt;/code&gt; for API calls.&lt;/li&gt;
&lt;li&gt;Supports observables.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-ts&quot;&gt;this.http.get('/api/data').subscribe(data =&amp;gt; ...);
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h4 id=&quot;9-forms-template-driven-amp-reactive-&quot;&gt;9. &lt;strong&gt;Forms (Template-Driven &amp;amp; Reactive)&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Template-driven: &lt;code&gt;ngModel&lt;/code&gt;, simple forms&lt;/li&gt;
&lt;li&gt;Reactive: FormBuilder, Validators, reactive patterns&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&quot;10-lifecycle-hooks&quot;&gt;10. &lt;strong&gt;Lifecycle Hooks&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ngOnInit&lt;/code&gt;, &lt;code&gt;ngOnDestroy&lt;/code&gt;, &lt;code&gt;ngOnChanges&lt;/code&gt;, etc.&lt;/li&gt;
&lt;li&gt;Useful for subscriptions, timers, cleanup.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&quot;11-pipes&quot;&gt;11. &lt;strong&gt;Pipes&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Format data in templates (&lt;code&gt;| date&lt;/code&gt;, &lt;code&gt;| uppercase&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Create custom pipes for custom formatting&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id=&quot;12-testing-jest-or-karma-jasmine-&quot;&gt;12. &lt;strong&gt;Testing (Jest or Karma + Jasmine)&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;TestBed&lt;/code&gt; for unit/component tests&lt;/li&gt;
&lt;li&gt;Mock services and inputs&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&quot;recommended-tools&quot;&gt;Recommended Tools&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Angular CLI (&lt;code&gt;ng new&lt;/code&gt;, &lt;code&gt;ng serve&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;Angular DevTools (Chrome Extension)&lt;/li&gt;
&lt;li&gt;ESLint + Prettier&lt;/li&gt;
&lt;li&gt;VSCode Angular Snippets&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id=&quot;best-practices&quot;&gt;Best Practices&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Use lazy loading for feature modules&lt;/li&gt;
&lt;li&gt;Structure folders by feature, not type&lt;/li&gt;
&lt;li&gt;Avoid logic in templates&lt;/li&gt;
&lt;li&gt;Strongly type everything&lt;/li&gt;
&lt;li&gt;Use RxJS for reactive patterns&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
</description>
<category>Web Dev</category>
<guid isPermaLink="true">https://coderlegion.com/3251/concise-list-of-angular-essentials</guid>
<pubDate>Fri, 06 Jun 2025 22:32:55 +0000</pubDate>
</item>
<item>
<title>The Sender Policy Framework: Bare Bone Essentials</title>
<link>https://coderlegion.com/3101/the-sender-policy-framework-bare-bone-essentials</link>
<description>&lt;h3 id=&quot;background&quot;&gt;Background&lt;/h3&gt;
&lt;p&gt;Email is part of our daily lives; everyone who works in an organization or uses the internet frequently has opened an email account at least once in their lifetime. But this technology, invented in the 90s, wasn’t created for widespread use and was not designed with security in mind. This makes impersonation easy, and that was why a protocol such as SPF was developed.&lt;/p&gt;
&lt;p&gt;SPF is an email authentication protocol designed to combat email address forgery, also called spoofing. Attackers use spoofing to disguise their emails so that recipients think the email is coming from a legitimate source. SPF allows administrators to publish hosts in their DNS TXT records, specifying which hosts can send email from that domain. SPF is just one of several email authentication mechanisms. Other mechanisms, such as DMARC and DKIM, are also used for authenticating email.&lt;/p&gt;
&lt;p&gt;According to RFC 7208, SPF once had a dedicated record type, but the developers of the protocol found it easier to use TXT to implement SPF records, and the old record type was deprecated.&lt;/p&gt;
&lt;h3 id=&quot;example-of-an-spf-record&quot;&gt;Example of an SPF Record&lt;/h3&gt;
&lt;p&gt;SPF record types are in-depth, and we wouldn’t be able to cover all of them here. We’ll look at a single record and break down what it means. Take a look at the record below:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;v=spf1 ip4:192.0.2.0/24 include:_spf.google.com -all
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;v=spf1&lt;/code&gt;: Declares SPF version 1 (required).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ip4:192.0.2.0/24&lt;/code&gt;: Authorizes all IPs in the &lt;code&gt;192.0.2.0&lt;/code&gt; subnet to send mail.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;include:_spf.google.com&lt;/code&gt;: Authorizes Google’s mail servers. For instance, if sending through Google Workspace.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-all&lt;/code&gt;: Fails any sender not explicitly listed (hard fail).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a straightforward example to explain how SPF works. There are certainly more complex records depending on how many sending servers are listed.&lt;/p&gt;
&lt;h3 id=&quot;how-a-receiving-mail-server-verifies-spf&quot;&gt;How a Receiving Mail Server Verifies SPF&lt;/h3&gt;
&lt;p&gt;This is a multistep process with lower-level granular details, but here it is at a high level:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The server accepts the incoming connection and reads the &lt;code&gt;MAIL FROM&lt;/code&gt; (envelope sender) command.&lt;/li&gt;
&lt;li&gt;It isolates the domain portion of the envelope sender address to know which domain’s SPF policy to check.&lt;/li&gt;
&lt;li&gt;The SPF engine performs a DNS TXT lookup for that domain, searching for a record beginning with &lt;code&gt;v=spf1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The server parses the SPF string into its mechanisms (e.g.,&lt;code&gt;ip4&lt;/code&gt;,&lt;code&gt;include&lt;/code&gt;,&lt;code&gt;mx&lt;/code&gt;,&lt;code&gt;a&lt;/code&gt;) and qualifiers (&lt;code&gt;+&lt;/code&gt;,&lt;code&gt;-&lt;/code&gt;,&lt;code&gt;~&lt;/code&gt;,&lt;br&gt;
&lt;code&gt;?&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Each mechanism is evaluated in order against the sender IP address.&lt;/li&gt;
&lt;li&gt;These steps produce an evaluation result, and based on that result, the server can either accept or reject the mail.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here is the flow chart of the process;&lt;br&gt;
&lt;img src=&quot;https://coderlegion.com/?qa=blob&amp;amp;qa_blobid=11006947038138814771&quot; alt=&quot;tobiloba aramide ogundiyan&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;That's SPF at its core.There is still more to cover and learn if we want to go down the rabbit hole.SPF is a simple, DNS-based way to make impersonation harder.It’s free to implement.&lt;br&gt;
By publishing an accurate ' v=spf1 ' record, you take the first step toward protecting your domain from spoofed mail.Remember, SPF alone won’t stop every phishing or spoofing attempt, so it works best in concert with DKIM and DMARC.Once your SPF record is live, monitor it regularly (using tools or scripts) and update it whenever you add or remove sending services.A well-maintained SPF policy lays the groundwork for a stronger, more reliable email ecosystem.&lt;/p&gt;
</description>
<category>Cybersecurity</category>
<guid isPermaLink="true">https://coderlegion.com/3101/the-sender-policy-framework-bare-bone-essentials</guid>
<pubDate>Tue, 20 May 2025 03:05:57 +0000</pubDate>
</item>
</channel>
</rss>