Discutii despre email

Marius '95

troubleShooter
Vreau sa trimit un email la un mailing list. Primesc urmatorul raspuns:
You are not allowed to post to this mailing list From: a domain which
publishes a DMARC policy of reject or quarantine, and your message has
been automatically rejected. If you think that your messages are
being rejected in error, contact the mailing list owner at
[email protected].
Ce motiv ar putea avea sa refuze mail-urile astea?
 
Ownerul domeniului de la care ai adresa de e-mail a publicat în DNS directive SPF și DMARC pe baza cărora alte servere de e-mail din lume pot să recunoască dacă mailurile trimise în numele domeniului respectiv sunt legitime sau nu, și nivelul de toleranță pentru posibile spoof-uri.

Ca exemplu, mailurile trimise de la domeniul @xf.ro trebuie neapărat să fie trimise prin unul din serverele SMTP definite în aceste directive pentru a fi considerate valide, fiindcă serverele astea sunt „cu autoritate” pentru domeniu și autentifică userul înainte de a accepta e-mail-uri. Dacă cineva încearcă să trimită mailuri provenind de la o adresă @xf.ro prin orice alt server SMTP din lume, majoritatea serverelor de mail verifică înregistrările SPF și DMARC și fie vor pune flag la mailurile alea ca fiind potențial spam, fie le vor respinge complet. Cu aceste 2 înregistrări în DNS am prevenit destul de eficient spamul trimis de spammeri în numele unor adrese reale sau fictive ale domeniului.

Probabil că ai primit mesajul respectiv fiindcă folosești o adresă de e-mail cu alt server SMTP decât cel desemnat de ownerul domeniului ca fiind permis pentru domeniul lui.
 
Eu sunt owner-ul domeniului si mail-urile sunt in regula. Am testat.
Mesajul nu spune ca DMARC nu-i valid; spune ca refuza serverele cu policy reject sau quarantine.

DMARC.png
 
Probabil le refuză pentru că s-au săturat de întrebări de tipul "n-am primit e-mail-ul, unde e?" sau rejectate în diferite forme (unde poți să ajungi la infinite loops, în funcție de cum e rejectat).
 
La SPF record ai o eroare de sintaxă: include=dynu.com ar trebui să fie include:dynu.com


Mi se pare puțin dubioasă definiția asta pentru dynu.com, fiindcă nu este un wildcard pentru întregul domeniu, ci trebuie să fie o listă explicită de hostname-uri și/sau adrese/subnet-uri IP. De regulă hostingul menține o listă proprie de servere de mail pe care să o incluzi în spf. De-aia la tine testerul următor nu detaliază nimic pentru additional lookups pentru dynu.com și deci e degeaba acolo, nu produce efectul pe care ți l-ai dorit, însă poate produce efecte negative dacă vreun parser dă de eroare. Dacă încerci pentru xf.ro o să vezi că include:_spf.google.com este apoi disecat într-un întreg arbore de subnet-uri IPv4 și IPv6.



DMARC record este și el invalid. Directiva p=quarantine trebuie să fie prima după identificatorul v=DMARC1. Fiindcă n-o găsește acolo, chiar dacă ai pus mai încolo p=quarantine, e ignorată.






Probabil din cauza asta, MX check dă eroare că DMARC policy is not enabled.


Un alt validator se plânge că n-ai și directivă rua pentru analiză.

În plus, dacă chiar vrei să stopezi spoofing și phishing, ar trebui să pui p=reject și sp=reject, una după alta la început. Vezi cum sunt înregistrările la xf, că aici funcționează foarte bine.

Atenție, mailurile pe care le bagi în DNS pentru analiză sunt publice și atrag masiv spam. Recomand să folosești un serviciu de analiză pentru DMARC; o vreme am avut asta la dmarcian.com, acum e la CloudFlare pe gratis.

Înregistrările astea sunt destul de sensibile la erori și durează un pic până reușești să le faci să meargă corect. Recent am aflat că de fapt good practice e la SPF să folosești softfail (~all) fiindcă -all are efecte nedorite. Well gee, thanks.

PS: nu folosi un singur validator, folosește mai multe fiindcă fiecare are propriile unghiuri moarte sau tolerează erori pe care alte validatoare le verifică strict - cum e de exemplu poziția directivelor p și sp în DMARC. La fel se poate întâmpla și în practică când dai de diverse servere de mail, unora li se fâlfâie dacă ordinea parametrilor e random, alții se uită fix pe poziția 1 după declarația DMARC1 și dau în cap dacă nu găsesc un p acolo.
 
Last edited:
Back
Top