我想知道 yahoomail 或 gmail 之类的网站如何将我们单击为垃圾邮件的邮件移动到垃圾邮件文件夹中。就我而言,贝叶斯分析算法检查消息,如果它是基于内容的垃圾邮件,或者其他概率。但是这些站点(yahoomail 或 gmail)使用什么算法将邮件从一个文件夹动态迁移到另一个文件夹?
3 回答
大多数邮件系统允许插入过滤程序,用于确定邮件是否为垃圾邮件等。Procmail 也许是其中最著名的。基本流程:
- 发送邮件到过滤程序。
- 过滤程序检查垃圾邮件,添加标题和/或主题信息。
- 排序程序(procmail 等)查找指示垃圾邮件级别的标题/主题信息。如果超过某个阈值,则发送到垃圾邮件文件夹。如果没有,请发送到收件箱。
请注意,procmail 和其他类似软件还允许更多功能用于自动交付和/或过滤任务 - 这是一个相当简单的示例。
检查 popfile http://getpopfile.org/ 软件允许您以与垃圾邮件分类相同的方式对电子邮件进行分类,但在多个文件夹中。您只需将电子邮件移动到正确的文件夹中,它就会开始学习。
一段时间后,它学会了如何对电子邮件进行分类。它使用贝叶斯论坛工作。
这是一个奇怪的问题,但字面上的答案是,像 Google、Yahoo 等提供的电子邮件服务会以不同的方式实现这一点,具体取决于它们在内部存储邮件消息和文件夹的方式。例如,如果电子邮件消息存储为单个文件,而文件夹表示为目录,则将电子邮件移动到垃圾邮件文件夹将作为文件重命名/移动来完成。另一方面,如果邮件存储在 SQL 数据库中,则将消息从一个文件夹移动到另一个文件夹将是对(例如)邮件描述符表中的一行的更新。
有许多可能的方式来表示电子邮件和文件夹,每个电子邮件服务提供商可能会以不同的方式进行操作,我们无法知道他们是如何做到的。
我会犹豫将此过程称为“算法”。当然,不会有单一的算法,因为表示方式各不相同,而且文件夹的模型也各不相同。
我看不出您的问题与“java”或“javamail”标签之间有任何联系。大型提供商可能不会在 Java 中实现他们的电子邮件服务。