private static string GetSpamResultBody(SpamResult spammer) { var body = string.Empty; if (spammer.MemberId != 0) { body = body + string.Format( "<a href=\"http://our.umbraco.org/umbraco/members/editMember.aspx?id={0}\">Edit Member</a><br /><br />", spammer.MemberId); body = body + string.Format("<a href=\"http://our.umbraco.org/member/{0}\">Go to member</a><br />", spammer.MemberId); } else if (spammer.Blocked) { body = body + string.Format("Member was never created.<br />"); } body = body + string.Format( "Blocked: {0}<br />Name: {1}<br />Email: {2}<br />IP: {3}<br />Score IP: {4}<br />Frequency IP: {5}<br />Score e-mail: {6}<br />Frequency e-mail: {7}", spammer.Blocked, spammer.Name, spammer.Email, spammer.Ip, spammer.ScoreIp, spammer.FrequencyIp, spammer.ScoreEmail, spammer.FrequencyEmail); var querystring = string.Format("api?ip={0}&email={1}&f=json", spammer.Ip, HttpUtility.UrlEncode(spammer.Email)); body = body + string.Format("<hr /><a href=\"http://api.stopforumspam.org/{0}\">Check full StopForumSpam response</a>", querystring); return body; }
public static void SendPotentialSpamMemberMail(SpamResult spammer) { try { var notify = ConfigurationManager.AppSettings["uForumSpamNotify"]; var body = GetSpamResultBody(spammer); var subject = string.Format("Umbraco community: member {0}", spammer.Blocked ? "blocked" : "flagged as potential spammer"); var mailMessage = new MailMessage { Subject = subject, Body = body, IsBodyHtml = true }; foreach (var email in notify.Split(',')) mailMessage.To.Add(email); mailMessage.From = new MailAddress("*****@*****.**"); var smtpClient = new SmtpClient(); smtpClient.Send(mailMessage); } catch (Exception ex) { Log.Add(LogTypes.Error, new User(0), -1, "Error sending potential spam member notification: " + ex.Message + " " + ex.StackTrace); } }
public static void SendNewMemberMail(SpamResult spamResult) { try { var notify = ConfigurationManager.AppSettings["uForumSpamNotify"]; var body = GetSpamResultBody(spamResult); var subject = string.Format("Umbraco community: new member signed up"); var mailMessage = new MailMessage { Subject = subject, Body = body, IsBodyHtml = true }; foreach (var email in notify.Split(',')) mailMessage.To.Add(email); mailMessage.From = new MailAddress("*****@*****.**"); var smtpClient = new SmtpClient(); smtpClient.Send(mailMessage); } catch (Exception ex) { Log.Add(LogTypes.Error, new User(0), -1, string.Format("Error sending new member notification: {0} {1} {2}", ex.Message, ex.StackTrace, ex.InnerException)); } }
public static SpamResult SendMemberSignupMail(Member member) { try { var ipAddress = GetIpAddress(); var client = new RestClient("http://api.stopforumspam.org"); var request = new RestRequest(string.Format("api?ip={0}&email={1}&f=json", ipAddress, HttpUtility.UrlEncode(member.Email)), Method.GET); var response = client.Execute(request); var jsonResult = new JsonDeserializer(); var spamCheckResult = jsonResult.Deserialize<SpamCheckResult>(response); if (spamCheckResult.Success == 1) { var score = spamCheckResult.Ip.Confidence + spamCheckResult.Email.Confidence; var blocked = score > BlockThreshold; if (score > PotentialSpammerThreshold) { var spammer = new SpamResult { Name = member.Text, Email = member.Email, Ip = ipAddress, ScoreEmail = spamCheckResult.Email.Confidence.ToString(CultureInfo.InvariantCulture), FrequencyEmail = spamCheckResult.Email.Frequency.ToString(CultureInfo.InvariantCulture), ScoreIp = spamCheckResult.Ip.Confidence.ToString(CultureInfo.InvariantCulture), FrequencyIp = spamCheckResult.Ip.Frequency.ToString(CultureInfo.InvariantCulture), Blocked = blocked, TotalScore = score }; SendNewMemberMail(spammer); return spammer; } } else { Log.Add(LogTypes.Error, -1, string.Format("Error checking stopforumspam.org {0}", spamCheckResult.Error)); } } catch (Exception ex) { Log.Add(LogTypes.Error, -1, string.Format("Error checking stopforumspam.org {0}", ex.Message + ex.StackTrace)); } return null; }
public static void SendMemberSignupMail(Member member) { try { var ipAddress = GetIpAddress(); var client = new RestClient("http://api.stopforumspam.org"); var request = new RestRequest(string.Format("api?ip={0}&email={1}&f=json", ipAddress, HttpUtility.UrlEncode(member.Email)), Method.GET); var response = client.Execute(request); var jsonResult = new JsonDeserializer(); var spamCheckResult = jsonResult.Deserialize<SpamCheckResult>(response); var spammer = new SpamResult { MemberId = member.Id, Name = member.Text, Company = member.GetProperty<string>("company"), Bio = member.GetProperty<string>("profileText"), Email = member.Email, Ip = ipAddress }; if (spamCheckResult.Success == 1) { var score = spamCheckResult.Ip.Confidence + spamCheckResult.Email.Confidence; var blocked = score > SpamBlockThreshold; spammer.ScoreEmail = spamCheckResult.Email.Confidence.ToString(CultureInfo.InvariantCulture); spammer.FrequencyEmail = spamCheckResult.Email.Frequency.ToString(CultureInfo.InvariantCulture); spammer.ScoreIp = spamCheckResult.Ip.Confidence.ToString(CultureInfo.InvariantCulture); spammer.FrequencyIp = spamCheckResult.Ip.Frequency.ToString(CultureInfo.InvariantCulture); spammer.Blocked = blocked; spammer.TotalScore = score; SendNewMemberMail(spammer); } else { Log.Add(LogTypes.Error, -1, string.Format("Error checking stopforumspam.org {0}", spamCheckResult.Error)); } } catch (Exception ex) { Log.Add(LogTypes.Error, -1, string.Format("Error checking stopforumspam.org {0}", ex.Message + ex.StackTrace)); } }