Understand and improve your email template’s spam score

To help you improve the deliverability of your email campaigns, Probance One integrates an automatic analysis of template quality. This analysis identifies content or formatting elements that could increase the risk of a message being classified as spam by email providers.

To perform this evaluation, Probance One relies on SpamAssassin to calculate a Spam Score and return codes corresponding to the different risk signals detected (content, structure, HTML, images, links, encoding, etc.).

This article presents the main codes you may encounter in Probance One, their meaning, and concrete recommendations to adjust your templates and reduce the risk of being marked as spam.

1. Message content and form

→ ACT_NOW_CAPS

The message contains a call to action written entirely in uppercase letters.

Example: “BUY NOW”

How to fix:

  • Use natural capitalization
  • Focus on wording rather than typography

→ ADVANCE_FEE_5_NEW_MONEY

The message contains phrasing associated with financial scams (promise of money with upfront fees).

Example: “Pay initial fees to unlock your reward”

How to fix:

  • Remove any mention of advance payment
  • Clarify the actual nature of the offer
  • Avoid ambiguous financial promises

→ BAD_CREDIT

The message refers to negative credit or debt elimination.

Example: “Erase your bad credit today”

How to fix: Avoid promises related to debt elimination and remove sensationalist wording.

→ BANG_GUAR

The message contains an unrealistic or exaggerated guarantee promise.

Example: “Guaranteed result!!!”

How to fix:

  • Soften commercial promises
  • Remove absolute guarantees
  • Specify the actual conditions if necessary

→ BITCOIN_SPAM_03

The message contains a promotional or ambiguous reference to the cryptocurrency Bitcoin.

Example: “Invest in Bitcoin now”

How to fix:

  • Add clear and legitimate context
  • Avoid aggressive financial incentives
  • Prefer an informative tone

→ DEAR_NOBODY

The message starts with a greeting without an identified recipient.

Example: “Hello,”

How to fix:

  • Personalize the greeting if possible
  • Use a more natural formula
  • Avoid overly vague greetings

→ DEAR_SOMETHING

The message uses a generic, non-personalized greeting.

Example: “Dear customer”

How to fix:

  • Add personalization
  • Adapt the greeting to the context
  • Limit generic formulas

→ DRUG_ED_CAPS

The message mentions medications using excessive capitalization.

Example: “VIAGRA AVAILABLE HERE”

How to fix:

  • Remove capitalization
  • Avoid a promotional tone
  • Use neutral vocabulary

→ DRUGS_ERECTILE

The message promotes medications for erectile disorders.

Example: “Effective treatment for erectile disorders”

How to fix:

  • Remove this type of promotion
  • Avoid any direct references
  • Follow compliance rules

→ DRUGS_ERECTILE_OBFU

The message deliberately hides references to erectile medications.

Example: “V1@gr@ at a discounted price”

How to fix:

  • Do not mask sensitive words
  • Remove these references
  • Use clear language

→ DRUGS_MUSCLE

The message promotes products related to muscle building.

Example: “Gain muscle quickly”

How to fix:

  • Avoid unrealistic promises
  • Remove typical spam phrasing
  • Prefer factual communication

→ FILL_THIS_FORM_SHORT

The message very briefly invites the user to fill out a form.

Example: “Fill out this form”

How to fix:

  • Add context
  • Explain the benefit to the user
  • Avoid overly brief commands

→ FRT_APPROV

The message mentions a generic financial approval.

Example: “Your application has been approved”

How to fix:

  • Clarify the actual context
  • Avoid vague phrasing
  • Add specific information

→ FS_NUDE

The message contains adult or explicit content.

Example: Explicit sexual text or reference

How to fix:

  • Remove all adult content
  • Adapt the message for a general audience
  • Follow email communication rules

→ FUZZY_* (AMBIEN, CREDIT, MILLION, PRICES, PROMOTION, VPILL, XPILL, WALLET, MONERO)

The message attempts to hide sensitive words using deliberately altered spellings.

Example: “pr1x”, “m1ll1on”, “cr3dit”

How to fix:

  • Do not hide words
  • Use clear vocabulary
  • Simplify the message

→ GUARANTEED_100_PERCENT

The message contains an unrealistic total guarantee promise.

Example: “100% satisfaction guaranteed”

How to fix:

  • Qualify guarantees
  • Add clear conditions
  • Avoid absolute promises

→ HK_LOTTO

The message refers to a lottery or unexpected prize.

Example: “You have won the lottery”

How to fix:

  • Remove any reference to fictitious prizes
  • Avoid misleading wording
  • Clarify the origin of the message

→ JOIN_MILLIONS

The message uses a marketing argument based on a very large number of users.

Example: “Join millions of users”

How to fix:

  • Use realistic numbers
  • Prefer concrete benefits
  • Avoid exaggerated mass effects

→ LONGWORDS / TVD_LONG_WORD5

The message contains abnormally long words.

Example: superhyperpromotionexceptionnelle

How to fix:

  • Break up long words
  • Simplify vocabulary
  • Improve readability

→ LOW_PRICE / PRICES_ARE_AFFORDABLE

The message mentions abnormally low prices or presents them as exceptionally advantageous.

Example: “Only €1 for a premium offer”

How to fix:

  • Provide context for prices
  • Avoid overly aggressive hooks
  • Clearly justify the offer

→ MONEY_BACK

The message contains a money-back promise.

Example: “Refunded if not satisfied”

How to fix:

  • Specify the conditions
  • Avoid vague wording
  • Stay factual

→ NEW_PRODUCTS

The message announces new products in a generic way.

Example: “Discover our new products”

How to fix:

  • Add concrete information
  • Avoid overly vague announcements
  • Highlight user value

→ ONE_TIME

The message presents an offer as unique or extremely time-limited.

Example: “Offer valid today only”

How to fix:

  • Limit artificial urgency
  • Clarify the actual duration
  • Adopt a transparent tone

→ ONLINE_PHARMACY / TVD_VISIT_PHARMA

The message promotes an online pharmacy or invites the user to visit a pharmaceutical website.

Example: “Order your medications online”

How to fix:

  • Remove this type of promotion
  • Avoid any direct medical incentives
  • Follow compliance rules

→ PUMPDUMP

The message contains incentives related to speculative financial manipulation.

Example: “Invest before the price explodes”

How to fix:

  • Remove promises of quick profits
  • Avoid any speculative incentives
  • Prioritize an informative approach

→ SHARE_50_50

The message proposes a suspicious financial sharing scheme.

Example: “Let’s share profits 50/50”

How to fix:

  • Remove this type of proposal
  • Clarify the business model
  • Avoid any ambiguity

→ THIS_AD

The message explicitly states that it is an advertisement.

Example: “This is an ad”

How to fix:

  • Integrate the message more naturally
  • Avoid overly blunt mentions
  • Maintain an editorial tone

→ UPPERCASE_50_75 / UPPERCASE_75_100

The message contains an excessive proportion of uppercase text.

Example: “EXCEPTIONAL OFFER AVAILABLE NOW”

How to fix:

  • Improve readability
  • Significantly reduce uppercase usage
  • Use bold or visual hierarchy*

2. HTML Structure

→ AC_DIV_BONANZA

The message uses an excessive number of nested HTML blocks.

Example: An email built with numerous <div> tags nested without real layout purpose.

How to fix:

  • Simplify the HTML structure
  • Reduce nesting levels
  • Use a flatter and more readable layout

→ AC_HTML_NONSENSE_TAGS

The post contains unnecessary or inconsistent HTML tags.

Example: empty, repeated, or visually ineffective tags.

How to fix:

  • Remove unnecessary tags
  • Clean the HTML generated by the editor
  • Use only standard tags

→ CONTENT_AFTER_HTML

The post contains content placed after the HTML closing tag.

Example: text or code present after </html>.

How to fix:

  • Ensure all content is included within the HTML structure
  • Remove any leftover content at the end of the post

→ HTML_COMMENT_SAVED_URL

The post contains a URL hidden inside an HTML comment.

Example: <!-- https://example.com/promo -->

How to fix:

  • Remove unnecessary URLs from comments
  • Avoid any attempt to hide links
  • Keep HTML transparent

→ HTML_FONT_FACE_BAD

The post uses non-standard HTML fonts.

Example: <font face="ExoticFont123">

How to fix:

  • Use standard web fonts
  • Avoid exotic or outdated fonts
  • Rely on simple styles

→ HTML_OBFUSCATE_10_20

The post contains partially hidden HTML content.

Example: fragmented text or hidden via complex styles.

How to fix:

  • Remove any obfuscation logic
  • Make content readable and direct
  • Simplify CSS styles

→ HTML_OBFUSCATE_20_30

The post contains heavily hidden HTML content.

Example: text split into many invisible or hidden elements.

How to fix:

  • Remove masking techniques
  • Rewrite content clearly
  • Use a simple HTML structure

→ HTML_SHORT_LINK_IMG_1/2/3

The HTML post is very short and mainly relies on a clickable image.

Example: an email with a single image as the main link and very little text.

How to fix:

  • Add explanatory text around the image
  • Balance text and visual content
  • Avoid “image-only” emails

→ HTML_TAG_BALANCE_BODY

The post contains poorly nested HTML tags.

Example: unclosed or misordered tags.

How to fix:

  • Validate the HTML before sending
  • Correct the nesting of tags
  • Use a reliable editor or template

→ HTML_TEXT_INVISIBLE_FONT

The post contains text made invisible via HTML styling.

Example: white text on a white background or font size set to zero.

How to fix:

  • Remove any invisible text
  • Check text-to-background contrast
  • Keep only content that is actually visible

→ HTML_TITLE_SUBJ_DIFF

The HTML title of the post is different from the email subject line.

Example:
Subject: Special Offer
HTML Title: Exceptional Promotion Today

How to fix:

  • Align the HTML title with the subject line
  • Avoid unnecessary discrepancies
  • Ensure overall message consistency

→ TVD_SINGLE_SPAN_DIV

The post is structured around a single main HTML container.

Example: all content is placed inside a single <div> or <span>.

How to fix:

  • Structure content into logical sections
  • Use multiple coherent blocks
  • Improve HTML readability

→ TVD_SPACE_RATIO_MINFP

The post exhibits an unusual space ratio.

Example: excessive spacing or artificial formatting to separate text.

How to fix:

  • Reduce unnecessary spacing
  • Use natural layout
  • Avoid excessive visual adjustments

→ URI_ONLY_LOW_CONTRAST

The post contains a link with low visual contrast.

Example: a link with a color very close to the background.

How to fix:

  • Improve link contrast
  • Make links clearly identifiable
  • Follow accessibility best practices

→ WORD_INVIS

The post contains invisible text embedded in the content.

Example: words added but hidden via CSS.

How to fix:

  • Remove all invisible text
  • Keep only useful content
  • Check the actual email rendering

3. Images

→ DYNAMIC_IMGUR

The post contains an image hosted on a dynamic external service.

Example: image hosted on a public temporary hosting platform.

How to fix:

  • Host images on your own domain
  • Avoid public or dynamic hosting services
  • Use stable image URLs

→ HOSTED_IMG_MULTI_PUB_01

The post contains multiple images hosted on public services.

Example: multiple images coming from different public domains.

How to fix:

  • Centralize images on a single domain
  • Prefer controlled hosting
  • Reduce the number of external images

→ HTML_IMAGE_ONLY_04/08/12/16/20/24/28

The HTML post is composed almost entirely of images, with very little text.

Example: email containing a large main image and no readable text.

How to fix:

  • Add visible, descriptive text
  • Balance images with textual content
  • Do not use “image-only” emails

→ HTML_IMAGE_RATIO_02/04

The post has an extremely low text-to-image ratio.

Example: many images with only a few words of text.

How to fix:

  • Increase the amount of text
  • Reduce the number or size of images
  • Provide written context for the message

→ HTML_IMAGE_ONLY

The post is heavily dominated by images, even if text is present.

Example: text only present as images.

How to fix:

  • Do not embed important text in images
  • Make the message understandable without images
  • Add relevant text alternatives

4. Links and web addresses

→ FSL_HAS_TINYURL

The post contains a shortened link.

Example: https://tinyurl.com/abcd123

How to fix:

  • Use full, readable URLs
  • Avoid link shortening services
  • Clearly display the destination domain

→ SHORT_URL

The post contains a generic shortened link.

Example: bit.ly/promo

How to fix:

  • Replace with a full URL
  • Use a recognized domain
  • Make the destination explicit

→ HTTP_ESCAPED_HOST

The post contains a link whose domain is encoded to hide it.

Example: http://%65xample.com

How to fix:

  • Use unencoded URLs
  • Avoid any form of obfuscation
  • Keep link structure simple

→ HTTP_EXCESSIVE_ESCAPES

The post contains an excessively encoded link.

Example: URL containing many %xx characters

How to fix:

  • Simplify the link structure
  • Remove unnecessary encoding
  • Use a readable URL

→ HTTPS_HTTP_MISMATCH

The post displays a secure link that redirects to an unsecured page.

Example:
Displayed: https://example.com
Actual link: http://example.com

How to fix:

  • Align the displayed link with the actual link
  • Use HTTPS end-to-end
  • Avoid misleading redirections

→ LH_URI_DOM_IN_PATH

The post contains a link whose domain appears in the URL path.

Example: https://site.com/example.com/login

How to fix:

  • Simplify the URL structure
  • Avoid misleading paths
  • Use a clear and direct domain

→ URI_HEX

The post contains a URL encoded in hexadecimal.

Example: http://0x6578616d706c652e636f6d

How to fix:

  • Use standard URLs
  • Remove hexadecimal encoding
  • Make the link readable

→ URI_NO_WWW_BIZ_CGI

The post contains a link to a .biz domain with an unusual structure.

Example: http://promo.biz/cgi-bin/offer

How to fix:

  • Avoid low-reputation domains
  • Use recognized domains
  • Simplify the link structure

→ URI_NO_WWW_INFO_CGI

The post contains a link to a .info domain with an unusual structure.

Example: http://deal.info/cgi/login

How to fix:

  • Prefer reliable domain extensions
  • Avoid complex URL structures
  • Use a domain consistent with the brand

→ URI_NOVOWEL

The post contains a link whose domain has no vowels.

Example: http://prmtnlffr.com

How to fix:

  • Use readable domain names
  • Avoid artificial domains
  • Prefer understandable URLs

→ URI_OBFU_WWW

The post hides the standard www structure in the URL.

Example: http://ww.example.com

How to fix:

  • Use a standard URL structure
  • Avoid any obfuscation attempts
  • Keep a clear presentation

→ URI_PHP_REDIR

The post contains a link that redirects via a PHP script.

Example: redirect.php?url=example.com

How to fix:

  • Link directly to the final page
  • Limit redirects
  • Make the destination explicit

→ URI_TRY_3LD

The post attempts to use a misleading subdomain.

Example: login.example.secure-site.com

How to fix:

  • Use a simple and clear domain
  • Avoid misleading subdomains
  • Align the link with the brand domain

→ URIBL_ABUSE_SURBL / URIBL_BLACK / URIBL_DBL_SPAM / URIBL_GREY / URIBL_JP_SURBL / URIBL_SBL / URIBL_SBL_A / URIBL_CSS_A

The message contains a link associated with poor reputation or flagged as spam.

Example: Link to a recently reported domain

How to fix:

  • Check the reputation of the domains used
  • Replace problematic links
  • Use clean and stable domains

→ URIBL_RHS_DOB

The message contains a link to a recently created domain.

Example: Domain registered just a few days ago

How to fix:

  • Use older, established domains
  • Avoid freshly created domains
  • Centralize links on a primary domain

→ PDS_OTHER_BAD_TLD / PDS_PRO_TLD

The message contains links using poor-reputation domain extensions.

Example: .top, .click, .loan

How to fix:

  • Avoid risky extensions
  • Use recognized TLDs (.com, .org, .net)
  • Align the domain with the brand

5. Email Subject

→ FR_TITLE_NUMS

The email subject contains an excessive number of digits.

Example: “100% FREE – €50 OFFER – 24/7”

How to fix:

  • Reduce the number of digits
  • Prefer words over numeric values
  • Make the subject feel more natural

→ GAPPY_SUBJECT

The subject contains unusual spacing between words or characters.

Example: “S p e c i a l O f f e r”

How to fix:

  • Remove artificial spaces
  • Use standard typography
  • Improve readability

→ PLING_QUERY

The subject contains both an exclamation mark and a question mark.

Example: “An incredible offer?!”

How to fix:

  • Limit expressive punctuation
  • Use a more neutral tone
  • Keep only one mark if necessary

→ SUBJ_ALL_CAPS

The email subject is written entirely in uppercase letters.

Example: “EXCEPTIONAL OFFER”

How to fix:

  • Use standard capitalization
  • Reserve uppercase for keywords only
  • Improve reading comfort

→ SUBJ_LACKS_WORDS

The subject is too short or not informative enough.

Example:
Offer
Info

How to fix:

  • Add concrete information
  • Provide context about the email content
  • Make the subject explicit

→ SUBJ_OBFU_PUNCT_FEW

The subject is obfuscated using unusual punctuation.

Example: !!!O.f.f.e.r!!!

How to fix:

  • Remove excessive punctuation
  • Use readable words
  • Simplify the subject

→ HTML_TITLE_SUBJ_DIFF

The HTML title of the message differs from the email subject.

Example:

Subject: Special Offer
HTML Title: Exclusive Promotion Today

How to fix:

  • Align the HTML title with the subject
  • Avoid unnecessary discrepancies
  • Maintain overall consistency

6. Content Structure

→ BODY_EMPTY

The message contains no visible content.

How to fix

  • Add real text content
  • Check message rendering before sending
  • Avoid empty or incomplete emails

→ EMPTY_MESSAGE

The message is empty or nearly empty.

Example: An email with only one line or character.

How to fix:

  • Add a clear and structured message
  • Provide a minimum amount of useful information
  • Check the template generation

→ BODY_SINGLE_WORD / SCC_BODY_SINGLE_WORD

The message is composed of a single word.

How to fix:

  • Add context and content
  • Expand the message
  • Explain the purpose of the email

→ BODY_SINGLE_URI

The message contains only one link.

How to fix:

  • Add explanatory text around the link
  • Describe the link destination
  • Provide a clear reason to click

→ BODY_URI_ONLY / SCC_BODY_URI_ONLY

The message is composed entirely of links.

Example: Several URLs without descriptive text.

How to fix:

  • Add structured text content
  • Limit the number of links
  • Provide context for each link

→ LIST_PARTIAL_SHORT_MSG

The short message resembles an incomplete list.

Example:

• Offer
• Benefit

How to fix:

  • Complete the list items
  • Add an explanatory introduction
  • Avoid overly fragmented messages

→ MIME_HTML_MOSTLY

The message is mostly HTML, with little or no plain text.

Example: Almost empty text version, very present HTML.

How to fix:

  • Add a relevant text version
  • Balance HTML and text
  • Check the alternative version of the message

→ MPART_ALT_DIFF

The text and HTML versions of the message differ.

Example: Marketing content in HTML, neutral text message.

How to fix:

  • Align the text and HTML content
  • Deliver the same message in both versions
  • Avoid inconsistencies

→ MPART_ALT_DIFF_COUNT

The text and HTML versions of the message have significant differences.

Example: Very short text, very detailed HTML.

How to fix:

  • Rebalance both versions
  • Add content to the text version
  • Maintain overall consistency

7. Sender Authentication

→ FROM_FMBLA_NEWDOM

The message is sent from a recently created domain.

Example: Sending domain registered recently.

How to fix:

  • Use a domain established for longer
  • Avoid domains created specifically for sending
  • Centralize sending on a main domain

→ FROM_FMBLA_NEWDOM14

The message is sent from a domain created less than 14 days ago.

Example: New domain used immediately for sending.

How to fix:

  • Wait until the domain is older
  • Gradually warm up the domain
  • Use an already recognized domain

→ FROM_FMBLA_NEWDOM28

The message is sent from a domain created less than 28 days ago.

Example: Recent domain used for campaigns.

How to fix:

  • Allow time before sending bulk emails
  • Build the domain’s reputation
  • Avoid frequent domain changes

→ FROM_OFFERS

The sender name contains a generic promotional term.

Example:
Special offers
Best offers

How to fix:

  • Use an identifiable sender name
  • Prioritize the brand name
  • Avoid overly commercial terms

→ FROM_SUSPICIOUS_NTLD

The sending domain uses a top-level domain considered suspicious.

Example: Domain with .top, .click, .loan

How to fix:

  • Use a recognized domain extension
  • Align the domain with the brand
  • Avoid TLDs with a bad reputation

→ FROM_SUSPICIOUS_NTLD_FP

The sending domain uses a suspicious extension that may generate false positives.

Example: Uncommon but legitimate extension.

How to fix:

  • Check the domain’s reputation
  • Use a more common extension if possible
  • Strengthen authentication (SPF, DKIM)

→ NO_DNS_FOR_FROM

The sending domain does not have a valid DNS record.

Example: Domain missing or misconfigured in DNS.

How to fix:

  • Properly configure the domain’s DNS
  • Verify existing records
  • Fix configuration errors

→ SPF_FAIL

The sender’s SPF check fails.

Example: Sending server not authorized by the domain.

How to fix:

  • Add the sending server to the SPF record
  • Check SPF record syntax
  • Test configuration before sending

→ SPF_SOFTFAIL

The SPF check returns a partial failure.

Example: SPF configured but incomplete.

How to fix:

  • Complete the SPF record
  • Explicitly allow sending servers
  • Avoid overly permissive rules

→ DKIM_SIGNED

The message is signed with DKIM.

Example: DKIM signature present in headers.

How to fix:

  • No correction needed
  • Ensure the signature remains valid
  • Maintain DKIM configuration

→ DKIM_INVALID

The message contains an invalid DKIM signature.

Example: Broken signature or incorrect key.

How to fix:

  • Check the DKIM key published in DNS
  • Ensure the message is not modified after signing
  • Regenerate the signature if necessary

→ DKIM_VALID

The message’s DKIM signature is valid.

Example: Signature successfully verified.

How to fix:

  • No correction needed
  • Maintain this configuration
  • Regularly verify validity

→ DKIM_VALID_AU

The DKIM signature is valid for the author’s domain.

Example: Sending domain matches the author.

How to fix:

  • No correction needed
  • Maintain domain alignment
  • Avoid unnecessary changes

→ DKIM_VALID_EF

The DKIM signature is valid for the sending address.

Example: Sending address properly authenticated.

How to fix:

  • No correction needed
  • Keep the current configuration
  • Monitor infrastructure changes

→ DKIM_ADSP_NXDOMAIN

The DKIM signing domain does not exist in DNS.

Example: DKIM domain misconfigured or deleted.

How to fix:

  • Correct or publish the DKIM domain
  • Verify DNS records
  • Test configuration before sending

8. Server and sending infrastructure reputation

→ RCVD_IN_BL_SPAMCOP_NET

The message was sent from a server listed as a spam source.

Example: IP address on a public blocklist.

How to fix:

  • Identify the reason for the listing
  • Correct sending practices
  • Request removal from the list after fixing

→ RCVD_IN_MSPIKE_H2

The message comes from a server considered potentially spammy.

Example: IP associated with suspicious volume or behavior.

How to fix:

  • Reduce sending volumes
  • Check recipient lists
  • Improve overall IP reputation

→ RCVD_IN_MSPIKE_H5

The message comes from a highly suspicious server.

Example: IP with a negative sending history.

How to fix:

  • Suspend sending from this IP
  • Fix causes of bad reputation
  • Use a clean sending infrastructure

→ RCVD_IN_PBL

The message is sent from an IP address not authorized to send emails.

Example: Residential or dynamic IP used for sending.

How to fix:

  • Use an IP dedicated to email sending
  • Avoid connections from dynamic networks
  • Use an authorized SMTP server

→ RCVD_IN_VALIDITY_RPBL

The message comes from a server listed on a reputation blocklist.

Example: IP or domain reported by reputation services.

How to fix:

  • Analyze the causes of the block
  • Correct sending practices
  • Request removal after cleanup

→ URIBL_RHS_DOB

The message contains a link to a recently created domain.

Example: Domain registered a few days ago.

How to fix:

  • Use older domains
  • Avoid disposable domains
  • Centralize links on a main domain

→ RCVD_IN_DNSWL_HI

The message comes from a server listed as highly trusted.

Example: IP certified by a recognized whitelist.

How to fix:

  • No correction needed
  • Maintain good sending practices
  • Monitor reputation over time

→ RCVD_IN_RP_CERTIFIED

The message is sent from a certified server.

Example: Infrastructure recognized by a certification authority.

How to fix:

  • No correction needed
  • Maintain this configuration
  • Comply with certification criteria

→ RCVD_IN_RP_SAFE

The message comes from a server with a good reputation.

Example: IP with historically good reputation.

How to fix:

  • No correction needed
  • Continue following good sending practices
  • Monitor sending volumes and quality

→ RCVD_IN_VALIDITY_CERTIFIED

The message is sent from a server certified by Validity.

Example: IP recognized by a certification service.

How to fix:

  • No correction needed
  • Maintain certification
  • Avoid any deviation from good practices

→ RCVD_IN_VALIDITY_CERTIFIED_BLOCKED

The message comes from a certified server but is currently blocked.

Example: Active certification but temporary block.

How to fix:

  • Identify the cause of the block
  • Quickly fix any anomalies
  • Contact the certification service

→ RCVD_IN_VALIDITY_SAFE

The message is sent from a server considered safe.

Example: IP listed on a whitelist.

How to fix:

  • No correction needed
  • Continue following sending rules
  • Monitor overall reputation

→ ALL_TRUSTED

The message passes only through relays considered trusted.

Example: SMTP chain composed of recognized servers.

How to fix:

  • No correction needed
  • Maintain a reliable infrastructure
  • Avoid adding uncontrolled relays

→ MAILING_LIST_MULTI

The message passed through one or more mailing lists.

Example: Message relayed via a discussion list.

How to fix:

  • Verify the sending context
  • Ensure recipients’ consent
  • Adapt content for list format

→ RP_MATCHES_RCVD

The sending domain matches the relay server used.

Example: Alignment between domain and infrastructure.

How to fix:

  • No correction needed
  • Maintain this alignment
  • Avoid sending inconsistencies

9. Routing

→ KHOP_HELO_FCRDNS

The sending server announces itself with a name inconsistent with its network address.

Example: The HELO name does not match the reverse DNS (rDNS) name.

How to fix:

  • Configure a consistent HELO name
  • Align the HELO with the domain name
  • Check the server’s SMTP configuration

→ RDNS_DYNAMIC

The sending server uses a network name indicating a dynamic IP address.

Example: Network name containing dynamic, dsl, or pool.

How to fix:

  • Use a dedicated, static IP
  • Configure a clean network name
  • Avoid connections from dynamic networks

→ RDNS_NONE

The sending server does not have a valid reverse DNS (rDNS) entry.

Example: No rDNS for the sending IP address.

How to fix:

  • Configure a valid rDNS record
  • Associate the rDNS with the sending domain
  • Verify the configuration with the hosting provider

→ PDS_RDNS_DYNAMIC_FP

The sending server is detected as dynamic, with a risk of false positives.

Example: Legitimate IP but ambiguous network name.

How to fix:

  • Check and correct the network name
  • Use an explicit rDNS
  • Strengthen authentication (SPF, DKIM)

→ TVD_FROM_1

The message has a technical fingerprint related to the sender.

Example: Atypical signature or header structure.

How to fix:

  • Check the sending tool configuration
  • Use standard headers
  • Avoid excessive technical customizations

10. Date, language, and encoding

→ DATE_IN_PAST_03_06

The message date is 3 to 6 hours earlier than its receipt.

Example: Email received at 10:00, but the sending date shows 04:00.

How to fix:

  • Check the sending server’s clock
  • Synchronize time using an NTP service
  • Correct the time zone settings

→ DATE_IN_PAST_06_12

The message date is 6 to 12 hours earlier than its receipt.

Example: Significant discrepancy between sending time and receipt time.

How to fix:

  • Correct the server’s time configuration
  • Check the time zone settings
  • Test sending after the correction

→ MISSING_DATE

The message does not contain a Date header.

Example: Date header is missing from the message.

How to fix:

  • Automatically add the Date header
  • Check SMTP configuration
  • Use a compliant sending tool

→ MIXED_ES

The message contains a mix of multiple languages.

Example: Text mixing French and English without a clear pattern.

How to fix:

  • Use a single language per message
  • Adapt the language to the recipient
  • Avoid unnecessary mixing

→ SUSP_UTF8_WORD_COMBO

The message contains a suspicious combination of special or encoded characters.

Example: Words with accents or symbols displayed incorrectly.

How to fix:

  • Use a standard UTF-8 encoding
  • Check the content generation process
  • Test display on multiple email clients

11. Tracking, tracking IDs, and technical parameters

→ TRACKER_ID

The message contains a tracking ID visible in the content or links.

Example: https://example.com/?tracking_id=123456

How to fix:

  • Limit visible parameters in URLs
  • Use discreet identifiers
  • Avoid long or explicit identifiers

→ TVD_APPROVED

The message contains a generic approval mention.

Example:
“Approved”
“Validation confirmed”

How to fix:

  • Clarify the real context of the approval
  • Avoid generic wording
  • Add precise information

→ MONEY_NOHTML

The message mentions money without HTML formatting.

Example: “You have won 5000 euros”

How to fix:

  • Structure the content with clear formatting
  • Add explanatory context
  • Avoid raw monetary mentions

→ THIS_AD

The message contains an explicit mention indicating it is an advertisement.

Example:
“This ad”
“Advertisement”

How to fix:

  • Integrate the message editorially
  • Avoid overly direct mentions
  • Ensure overall good copywriting

→ TVD_VISIT_PHARMA

The message contains an incentive to visit a pharmaceutical website.

Example: “Visit our online pharmacy”

How to fix:

  • Remove this type of redirection
  • Avoid medical incentives
  • Follow compliance rules

→ TVD_SPACE_RATIO_MINFP

The message has a structure with an unusual space ratio.

Example: Excessive spacing used for layout.

How to fix:

  • Simplify formatting
  • Use standard spacing
  • Avoid artificial adjustments