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)); } }
private static string GetSpamResultBody(SpamResult spammer) { var body = string.Empty; if (spammer.MemberId != 0) { body = body + string.Format( "<a href=\"https://our.umbraco.com/umbraco/members/editMember.aspx?id={0}\">Edit Member</a><br /><br />", spammer.MemberId); body = body + string.Format("<a href=\"https://our.umbraco.com/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 />Company: {2}<br />Bio: {3}<br />Email: {4}<br />IP: {5}<br />" + "Score IP: {6}<br />Frequency IP: {7}<br />Score e-mail: {8}<br />Frequency e-mail: {9}<br />Total score: {10}<br />Member Id: {11}", spammer.Blocked, spammer.Name ?? string.Empty, spammer.Company ?? string.Empty, spammer.Bio == null ? string.Empty : spammer.Bio.Replace("\n", "<br />"), spammer.Email ?? string.Empty, spammer.Ip ?? string.Empty, spammer.ScoreIp ?? string.Empty, spammer.FrequencyIp ?? string.Empty, spammer.ScoreEmail ?? string.Empty, spammer.FrequencyEmail ?? string.Empty, spammer.TotalScore, spammer.MemberId); return(body); }
public static SpamResult CheckForSpam(string email, string name, bool sendMail) { 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(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 > SpamBlockThreshold; if (score > PotentialSpammerThreshold) { var spammer = new SpamResult { Name = name, Email = 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 }; if (sendMail) { SendPotentialSpamMemberMail(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(IMember 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.Name, Company = member.GetValue <string>("company"), Bio = member.GetValue <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 { LogHelper.Warn <Utils>(string.Format("Error checking stopforumspam.org {0}", spamCheckResult.Error)); } } catch (Exception ex) { LogHelper.Error <Utils>("Error checking stopforumspam.org", ex); } }
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 />Company: {2}<br />Bio: {3}<br />Email: {4}<br />IP: {5}<br />" + "Score IP: {6}<br />Frequency IP: {7}<br />Score e-mail: {8}<br />Frequency e-mail: {9}<br />Total score: {10}<br />Member Id: {11}", spammer.Blocked, spammer.Name ?? string.Empty, spammer.Company ?? string.Empty, spammer.Bio == null ? string.Empty : spammer.Bio.Replace("\n", "<br />"), spammer.Email ?? string.Empty, spammer.Ip ?? string.Empty, spammer.ScoreIp ?? string.Empty, spammer.FrequencyIp ?? string.Empty, spammer.ScoreEmail ?? string.Empty, spammer.FrequencyEmail ?? string.Empty, spammer.TotalScore, spammer.MemberId); 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); }
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 />Company: {2}<br />Bio: {3}<br />Email: {4}<br />IP: {5}<br />" + "Score IP: {6}<br />Frequency IP: {7}<br />Score e-mail: {8}<br />Frequency e-mail: {9}<br />Total score: {10}<br />Member Id: {11}", spammer.Blocked, spammer.Name ?? string.Empty, spammer.Company ?? string.Empty, spammer.Bio == null ? string.Empty : spammer.Bio.Replace("\n", "<br />"), spammer.Email ?? string.Empty, spammer.Ip ?? string.Empty, spammer.ScoreIp ?? string.Empty, spammer.FrequencyIp ?? string.Empty, spammer.ScoreEmail ?? string.Empty, spammer.FrequencyEmail ?? string.Empty, spammer.TotalScore, spammer.MemberId); 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, string.Format("Error sending potential spam member notification: {0} {1} {2}", ex.Message, ex.StackTrace, ex.InnerException)); } }
public static void SendMemberSignupMail(IMember 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.Name, Company = member.GetValue<string>("company"), Bio = member.GetValue<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 { LogHelper.Warn<Utils>(string.Format("Error checking stopforumspam.org {0}", spamCheckResult.Error)); } } catch (Exception ex) { LogHelper.Error<Utils>("Error checking stopforumspam.org", ex); } }
public static SpamResult CheckForSpam(string email, string name, bool sendMail) { 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(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 > SpamBlockThreshold; if (score > PotentialSpammerThreshold) { var spammer = new SpamResult { Name = name, Email = 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 }; if (sendMail) SendPotentialSpamMemberMail(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; }