Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
SURBL problems #108
I use hMailserver 5.6.3-B2249, and experienced some problems with antispam features.
1- I receive "SURBL: DNS query failed." for every domain, if I restart hMailserver the problem goes away but return after some time (dns settings are ok)
2- the urls submitted to URIBL servers are not correctly formatted, look at these log examples:
"DEBUG" 5888 "2015-06-21 10:10:01.894" "SURBL: Found URL: groupon.it?nlp=&cid=it_crm_1_0_0_172&a=242&utm_source=newsletter&utm_medium=email&sid=ff9a7e25-3cv1-4bbe-8762-51fdbf178f15&division=verona&uh=2f91dc31-940a-6da1-b472-3cc617b1eb54&date=20152106&sender=rm&s=footer&c=link&d=contact"
In the first case everything after "?" must be deleted to get correct domain name.
3- "multi.uribl.com", that usually stops thousands of spam emails every day (and I don't know a valid alternative), stopped working with hmailserver because does no more respond "NXDOMAIN" but 127.0.0.1 (blocked) or 127.0.0.2 (black) or 127.0.0.4 (grey) or 127.0.0.8 (red), and there is no way to configure this on hmailserver. hmailserver configured with multi.uribl.com now marks every email with a link inside as spam.
4- A "SURBL: DNS query failed." on a domain will abort all checks for that SURBL server.
In my opinion multi.surbl.org does not catch so many spam uri as multi.uribl.com. I use it too.
produce a "DNS query failed".
In some conditions hMailserver does not translate URI >>> DOMAIN NAME correctly. Every URI with a query string produce a "DNS query failed". In fact URI with query string is submitted to SURBL:
"DEBUG" 8944 "2015-07-29 10:17:01.606" "SURBL: Found URL: spartoo.it?track_id=news_a_36993_145970&utm_source=news_autre&utm_medium=newsletter&utm_campaign=news_a_36993_148970&email_crm=9c5c2cea19682823cf09b541abe9e033&link=6808777"
After that no score is assigned to message even if one of the multiple URI matched.
I'M not a C coder but in SURBL.cpp on line 147:
if (c == '<' || c == '/' || c == '' || c == '>' ||c == ' ' || c == '"' || c == ''')
if (c == '<' || c == '/' || c == '' || c == '>' ||c == ' ' || c == '"' || c == ''' | c=='?'| c=='&')
may solve the problem with query string.