Dear Andrey
If in the DNS of requested domain there 2 TXT records
(for example, there is error in my DNS:
cherezov.koenig.su text =
"v=spf1 a:ac.eserv.ru a:rainbow.koenig.ru -all"
cherezov.koenig.su text =
"v=spf1 -all"
)
RMSPF returns "none" in case of sending IP math ac.eserv.ru.
Perl implementation (Mail::SPF::Query) in this case returns 'pass':
In section 2.1 of the SPF specifications it says:
A domain MUST NOT return multiple records that begin with the word
"v=spf1". If more than one "v=spf1" record is returned, this
constitutes a syntax error and the result is "unknown".
And in section 3.1 it says:
This specification describes version 1. If multiple "v=spf1" records
are returned, the SPF client MUST reject them all and act as if no
version 1 records were returned.
So it is not clear what should be returned, if there are multiple but valid
SPF records. But definitely it should never be 'pass'.
Currently in such a case my routine returns 'none' (according to 3.1). But I
think it's better to return 'unknown' (according to 2.1). I will change it.
Regards,
Roger