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