Mit der steigenen Populatität meines Weblogs war es nur eine Frage der Zeit, bis auch diverse zwielichtige Elemente begannen, häufig aufgerufene Artikel mit Spam-Kommentaren zu versehen. Bisher hatte ich diese immer händisch gelöscht, aber da waren die Kommentare schon an die Abonnenten versandt worden.
In den letzten Tage nahm dies überhand und so entschloss ich mich Akismet as Spam-Killer zu nutzen. Meine Blog-Engine legt nun jedes Kommentar diesem Webservice zur Beurteilung vor und Spams werden nicht mehr publiziert. Je mehr Informationen man Akismet über den Spam-Poster gibt, umso besser, ich schicke ihnen IP, User-Agent, Name, E-Mail oder URL und den Kommentartext.
Ich verwende die .NET Akismet API von Arne Brachold und die folgenden Zeilen Code sind alles, was nötig war. Einziges lästiges Detail war, dass ich ein WordPress Login anlegen mußte, damit ich den API Key zur Verwendung von Akismet bekomme.
Imports ArneBrachhold.Akismet Dim mngr As New AkismetManager("mein-api-key", "http://www.drobnik.com/oliver") Dim comment As New AkismetItem(Request.UserHostAddress, Request.UserAgent) comment.AuthorName = CommentItem.creator If CommentItem.relation.StartsWith("mailto:") Then comment.AuthorEmail = Request.Form("email") Else comment.AuthorUrl = Request.Form("email") End If comment.Content = CommentItem.description.Text comment.Referer = Request.UrlReferrer.PathAndQuery comment.Type = AkismetType.Comment Dim isSpam As Boolean = False If mngr.IsValidKey Then If mngr.IsSpam(comment) Then isSpam = True Else isSpam = False End If Else isSpam = True End If