<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sable Quinn</title>
    <description>The latest articles on DEV Community by Sable Quinn (@sablequinn).</description>
    <link>https://dev.to/sablequinn</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3982344%2Fe4b32ccd-37d2-4e79-a1e4-785256f0e7c5.png</url>
      <title>DEV Community: Sable Quinn</title>
      <link>https://dev.to/sablequinn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sablequinn"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Sable Quinn</dc:creator>
      <pubDate>Sat, 13 Jun 2026 09:42:37 +0000</pubDate>
      <link>https://dev.to/sablequinn/-3515</link>
      <guid>https://dev.to/sablequinn/-3515</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/sablequinn/why-your-emails-go-to-spam-and-how-to-fix-it-with-postfix-a8n" class="crayons-story__hidden-navigation-link"&gt;Why Your Emails Go to Spam (And How to Fix It with Postfix)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/sablequinn" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3982344%2Fe4b32ccd-37d2-4e79-a1e4-785256f0e7c5.png" alt="sablequinn profile" class="crayons-avatar__image" width="800" height="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/sablequinn" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Sable Quinn
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Sable Quinn
                
              
              &lt;div id="story-author-preview-content-3889943" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/sablequinn" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3982344%2Fe4b32ccd-37d2-4e79-a1e4-785256f0e7c5.png" class="crayons-avatar__image" alt="" width="800" height="800"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Sable Quinn&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/sablequinn/why-your-emails-go-to-spam-and-how-to-fix-it-with-postfix-a8n" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 13&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/sablequinn/why-your-emails-go-to-spam-and-how-to-fix-it-with-postfix-a8n" id="article-link-3889943"&gt;
          Why Your Emails Go to Spam (And How to Fix It with Postfix)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/linux"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;linux&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devops"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devops&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/email"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;email&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/security"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;security&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/sablequinn/why-your-emails-go-to-spam-and-how-to-fix-it-with-postfix-a8n#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Why Your Emails Go to Spam (And How to Fix It with Postfix)</title>
      <dc:creator>Sable Quinn</dc:creator>
      <pubDate>Sat, 13 Jun 2026 07:44:22 +0000</pubDate>
      <link>https://dev.to/sablequinn/why-your-emails-go-to-spam-and-how-to-fix-it-with-postfix-a8n</link>
      <guid>https://dev.to/sablequinn/why-your-emails-go-to-spam-and-how-to-fix-it-with-postfix-a8n</guid>
      <description>&lt;p&gt;You spent hours setting up your Linux mail server. You send a test email. It vanishes into spam. Here's what's actually happening — and how to fix it permanently.&lt;/p&gt;

&lt;p&gt;The real reason emails end up in spam&lt;/p&gt;

&lt;p&gt;It's almost never your content. Modern spam filters care far more about authentication than keywords.&lt;/p&gt;

&lt;p&gt;When Gmail receives an email from your server, it asks three questions before it even reads the subject line:&lt;/p&gt;

&lt;p&gt;Is this server authorised to send mail for this domain? (SPF)&lt;br&gt;
Has this message been cryptographically signed by the domain owner? (DKIM)&lt;br&gt;
What should I do if either of those checks fails? (DMARC)&lt;/p&gt;

&lt;p&gt;If your server can't answer any of these questions correctly, your email gets treated as suspicious — regardless of what it says.&lt;/p&gt;

&lt;p&gt;The four things your mail server must have&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;SPF — Sender Policy Framework&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;SPF is a DNS TXT record that lists which IP addresses are allowed to send email for your domain.&lt;/p&gt;

&lt;p&gt;Add this to your DNS (replace with your actual server IP):&lt;/p&gt;

&lt;p&gt;v=spf1 ip4:YOUR_SERVER_IP ~all&lt;/p&gt;

&lt;p&gt;The ~all at the end means: "mail from any other IP is suspicious but still accept it." Once you're confident your setup is correct, switch to -all for a hard reject.&lt;/p&gt;

&lt;p&gt;Verify it works:&lt;/p&gt;

&lt;p&gt;bashdig TXT yourdomain.com +short&lt;/p&gt;

&lt;p&gt;You should see your SPF record in the output.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;DKIM — DomainKeys Identified Mail&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;DKIM cryptographically signs every outgoing email. The recipient can verify the signature using a public key you publish in DNS. If the email was modified in transit, the signature breaks.&lt;/p&gt;

&lt;p&gt;Install OpenDKIM on Ubuntu/Debian:&lt;/p&gt;

&lt;p&gt;bashsudo apt install opendkim opendkim-tools -y&lt;/p&gt;

&lt;p&gt;Generate a 2048-bit key pair:&lt;/p&gt;

&lt;p&gt;bashsudo opendkim-genkey -b 2048 -d yourdomain.com \&lt;br&gt;
    -D /etc/opendkim/keys/yourdomain.com -s mail -v&lt;/p&gt;

&lt;p&gt;This creates two files:&lt;/p&gt;

&lt;p&gt;mail.private — your private signing key (keep this secret)&lt;br&gt;
mail.txt — the public key to publish in DNS&lt;/p&gt;

&lt;p&gt;Publish the public key as a DNS TXT record named mail._domainkey.&lt;/p&gt;

&lt;p&gt;Then connect OpenDKIM to Postfix by adding to /etc/postfix/main.cf:&lt;/p&gt;

&lt;p&gt;smtpd_milters = inet:localhost:12301&lt;br&gt;
non_smtpd_milters = inet:localhost:12301&lt;/p&gt;

&lt;p&gt;Verify it works:&lt;/p&gt;

&lt;p&gt;bashsudo opendkim-testkey -d yourdomain.com -s mail -vvv&lt;/p&gt;

&lt;h1&gt;
  
  
  Should output: key OK
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;DMARC — Domain-based Message Authentication&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;DMARC ties SPF and DKIM together. It tells receiving servers what to do when authentication fails — and sends you daily reports showing who is sending mail as your domain.&lt;/p&gt;

&lt;p&gt;Add this DNS TXT record on _dmarc:&lt;/p&gt;

&lt;p&gt;v=DMARC1; p=none; rua=mailto:&lt;a href="mailto:dmarc@yourdomain.com"&gt;dmarc@yourdomain.com&lt;/a&gt;; fo=1&lt;/p&gt;

&lt;p&gt;Start with p=none (monitor only, no action). After reviewing your reports for a week or two, move to p=quarantine, then eventually p=reject.&lt;/p&gt;

&lt;p&gt;Never jump straight to p=reject. You might accidentally block legitimate mail you forgot about.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;TLS — Encrypt connections in transit&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Without TLS, email travels across the internet in plain text. With it, every server-to-server connection is encrypted.&lt;/p&gt;

&lt;p&gt;Get a free certificate with Let's Encrypt:&lt;/p&gt;

&lt;p&gt;bashsudo certbot certonly --standalone -d mail.yourdomain.com&lt;/p&gt;

&lt;p&gt;Then add to /etc/postfix/main.cf:&lt;/p&gt;

&lt;p&gt;smtpd_tls_cert_file = /etc/letsencrypt/live/mail.yourdomain.com/fullchain.pem&lt;br&gt;
smtpd_tls_key_file  = /etc/letsencrypt/live/mail.yourdomain.com/privkey.pem&lt;br&gt;
smtpd_tls_security_level = may&lt;br&gt;
smtp_tls_security_level  = may&lt;/p&gt;

&lt;p&gt;Verify it works:&lt;/p&gt;

&lt;p&gt;bashopenssl s_client -connect mail.yourdomain.com:25 -starttls smtp&lt;/p&gt;

&lt;p&gt;The one test that tells you everything&lt;/p&gt;

&lt;p&gt;Go to mail-tester.com, send an email to the address they give you, and check your score.&lt;/p&gt;

&lt;p&gt;A properly configured server should score 9/10 or 10/10. Each point deducted tells you exactly what's missing. It's the fastest feedback loop available.&lt;/p&gt;

&lt;p&gt;Quick checklist before you call your server "production-ready"&lt;/p&gt;

&lt;p&gt;PTR record set (reverse DNS from IP → your mail hostname)&lt;br&gt;
 A record: mail.yourdomain.com → your server IP&lt;br&gt;
 MX record: yourdomain.com → mail.yourdomain.com&lt;br&gt;
 SPF TXT record on @&lt;br&gt;
 DKIM TXT record on mail._domainkey&lt;br&gt;
 DMARC TXT record on _dmarc&lt;br&gt;
 Valid TLS certificate, not expired&lt;br&gt;
 IP not on any major blacklists (check: mxtoolbox.com/blacklists.aspx)&lt;br&gt;
 mail-tester.com score 9+/10&lt;/p&gt;

&lt;p&gt;Want the full setup guide?&lt;/p&gt;

&lt;p&gt;I wrote a 65-page book that covers all of this in detail — including troubleshooting tables, a pre-launch checklist, and everything from installation to ongoing maintenance.&lt;/p&gt;

&lt;p&gt;[Postfix Email Security: SPF, DKIM, DMARC &amp;amp; TLS for Linux Beginners]&lt;br&gt;
Available on Gumroad → &lt;a href="https://sablequinn.gumroad.com/l/postfix-email-security" rel="noopener noreferrer"&gt;https://sablequinn.gumroad.com/l/postfix-email-security&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>devops</category>
      <category>email</category>
      <category>security</category>
    </item>
  </channel>
</rss>
