- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
有没有办法在 ASP.Net 应用程序中检查分数? .Net 的类或类似的东西?那里的其他垃圾邮件过滤器怎么样。--编辑我正在寻找一种方法来检查 C# 中电子邮件的垃圾邮件分数。
最佳答案
这是我为 http://elasticemail.com 编写的用于从 C# 连接到正在运行的 Spam Assassin 电子邮件检查的 super 简化的“只需检查分数”代码.只需设置 SA 在服务器上运行并设置访问权限。
然后你就可以使用这段代码来调用它了:
public class SimpleSpamAssassin
{
public class RuleResult
{
public double Score = 0;
public string Rule = "";
public string Description = "";
public RuleResult() { }
public RuleResult(string line)
{
Score = double.Parse(line.Substring(0, line.IndexOf(" ")).Trim());
line = line.Substring(line.IndexOf(" ") + 1);
Rule = line.Substring(0, 23).Trim();
Description = line.Substring(23).Trim();
}
}
public static List<RuleResult> GetReport(string serverIP, string message)
{
string command = "REPORT";
StringBuilder sb = new StringBuilder();
sb.AppendFormat("{0} SPAMC/1.2\r\n", command);
sb.AppendFormat("Content-Length: {0}\r\n\r\n", message.Length);
sb.AppendFormat(message);
byte[] messageBuffer = Encoding.ASCII.GetBytes(sb.ToString());
using (Socket spamAssassinSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
{
spamAssassinSocket.Connect(serverIP, 783);
spamAssassinSocket.Send(messageBuffer);
spamAssassinSocket.Shutdown(SocketShutdown.Send);
int received;
string receivedMessage = string.Empty;
do
{
byte[] receiveBuffer = new byte[1024];
received = spamAssassinSocket.Receive(receiveBuffer);
receivedMessage += Encoding.ASCII.GetString(receiveBuffer, 0, received);
}
while (received > 0);
spamAssassinSocket.Shutdown(SocketShutdown.Both);
return ParseResponse(receivedMessage);
}
}
private static List<RuleResult> ParseResponse(string receivedMessage)
{
//merge line endings
receivedMessage = receivedMessage.Replace("\r\n", "\n");
receivedMessage = receivedMessage.Replace("\r", "\n");
string[] lines = receivedMessage.Split('\n');
List<RuleResult> results = new List<RuleResult>();
bool inReport = false;
foreach (string line in lines)
{
if (inReport)
{
try
{
results.Add(new RuleResult(line.Trim()));
}
catch
{
//past the end of the report
}
}
if (line.StartsWith("---"))
inReport = true;
}
return results;
}
}
使用非常简单:
List<RuleResult> spamCheckResult = SimpleSpamAssassin.GetReport(IP OF SA Server, FULL Email including headers);
它将返回您命中的垃圾邮件检查规则列表以及由此产生的分数影响。
关于c# - spamassassin 检查分数 C# 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5038574/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwa
我有一个配置了 spamassassin 的 ubuntu VPS,但是我仍然收到垃圾邮件作为附件,主题标签为“SPAM”。 我想要的是完全丢弃这些电子邮件,而不是将它们标记为垃圾邮件。 最佳答案 S
我似乎无法让 Spam Assassin 用 SPAM 重写主题行。这是在使用 Postfix、Dovecot、MySQL 和 spamass-milter 的 Debian 7 机器上以下是来自配置
我在 Ubuntu Intrepid 上,使用 Postfix 和 SpamAssassin。我见过使用 procmail 的方法(如 the one suggested @ Apache ),但我正
我一直在到处寻找解决方案,但没有找到。 我需要的是将一些收件人地址列入白名单,这样他们就不会进入 spamassassin 过滤。 在后缀的 master.cf 中我有这个: spamassassin
我使用了测试服务 (verifier.port25.com) 来检查从我的 PHP 脚本发送电子邮件时发生了什么。出于某种原因,它们最终进入了我的 GMail 垃圾邮件文件夹,即使启用了 SPF 和
我想知道我是否可以向 SpamAssassin 发送简单的文本。我想把评论放在一个文本文件中并调用'spamc < file.txt'(我不知道是否可以将文本直接发送到 spamc)。问题是如果我不指
实际上我正在尝试在 local.cf spamassassin 中编写一条规则。 我需要的是阻止所有伟哥电子邮件。 正如您所知,在这些电子邮件中,他们有时在主题字段中写“伟哥”、“伟哥”、“伟哥”(c
实际上我正在尝试在 local.cf spamassassin 中编写一条规则。 我需要的是阻止所有伟哥电子邮件。 正如您所知,在这些电子邮件中,他们有时在主题字段中写“伟哥”、“伟哥”、“伟哥”(c
我正在 CentOS 上改进我的 SpamAssassin 过滤器。在我退出 *.link 和 .eu 域后,我喜欢标记超过 100 个字符的非常长的域字符串。 条件是: 以 http 或 https
Spamassasin 在我的电子邮件中给出以下标记: * 0.8 RDNS_NONE Delivered to internal network by a host with no rDNS "Th
有没有办法在 ASP.Net 应用程序中检查分数? .Net 的类或类似的东西?那里的其他垃圾邮件过滤器怎么样。--编辑我正在寻找一种方法来检查 C# 中电子邮件的垃圾邮件分数。 最佳答案 这是我为
我已经安装、配置和训练了我的 spamassassin,一切似乎都运行良好。然后,当我尝试通过 spamc 部署它时,我得到了部分结果。 为什么会这样? 我喜欢 spamc,因为我可以让它只输出报告,
新手问第一个问题:) 我正在使用 SpamAssassin 运行邮件服务器(Ubuntu/Postfix/Dovecot)。大多数已知的垃圾邮件都被标记(RBL 和明显的 UCE),除了附加的 zip
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
SpamAssassin 将我的电子邮件标记为 BAYES_99 原因,这意味着该电子邮件是 99% ~ 100% 垃圾邮件。 SpamAssassin 检测此规则的机制是什么(通过关键字?),以及如
我们的服务器发送的一些电子邮件会成为某些收件人的垃圾邮件。例如,当发送到@outlook.com 电子邮件地址时。 我一直在使用 https://www.mail-tester.com 测试我们的电子
我已经阅读 SpamAssassin 一段时间并学到了很多东西,但我似乎无法找到一种方法来创建可以执行第 3 方脚本的自定义规则的规则。这必须是基于用户的东西,而不是全局性的。 我想对域和电子邮件地址
这是我在这里的第一篇文章,我有点小题大做。我希望通过 spamassains 从 MySQL 数据库传递文本 spamc客户。我可以通过写入文件然后将此文件传递给 spamc 来实现,如 spamc
我是一名优秀的程序员,十分优秀!