【问题标题】:How to mark an email as Junk\Spam in PHP?如何在 PHP 中将电子邮件标记为垃圾邮件?
【发布时间】:2019-07-29 22:47:16
【问题描述】:

我正在使用 PHP 开发电子邮件客户端。我在将电子邮件标记为垃圾邮件时遇到问题,因为当我将电子邮件标记为垃圾邮件时,php 库 imap 不支持标记为垃圾邮件。我唯一能看到它可以将电子邮件设置为标记,这不是一件好事。当我将垃圾邮件设置为标记后将垃圾邮件发送到我的服务器时,我的收件箱中仍然会收到垃圾邮件。

但是,我做了一个快速的研究,它说我需要使用 spamassassin 来设置规则。我的服务器上安装了 spamassassin,但我不知道如何使用它。

您知道如何使用 PHP API 将我的电子邮件标记为垃圾邮件以设置 spamassassin 的规则吗?

当我在 spamassassin 上设置了将我的邮件标记为垃圾邮件的规则后,我的邮件会在我下次发送邮件时直接进入垃圾邮件吗?

谢谢。

【问题讨论】:

  • (我不知道)。它有助于将项目移动到垃圾文件夹吗? (所以服务器知道这封邮件是垃圾邮件)
  • @paskl 好吧,不,它无助于将电子邮件移动到垃圾文件夹,因为当我将电子邮件设置为已标记并移至垃圾邮件时,它无助于服务器了解电子邮件是垃圾邮件文件夹。有什么想法吗?
  • 您的客户可以查看标题并采取相应措施。至少我认为这就是你要问的
  • @tim 你的意思是spamassassin可以查看标题并采取行动吗?
  • 没有你的客户。

标签: php email spamassassin


【解决方案1】:

您知道如何使用 PHP API 将我的电子邮件标记为垃圾邮件以设置 spamassassin 的规则吗?

垃圾邮件的自动学习是在 SA 中通过贝叶斯分类器完成的。训练工具是sa-learn,你可以pipe messages into it through STDIN

当我在 spamassassin 上设置了将我的邮件标记为垃圾邮件的规则后,我的邮件会在我下次发送邮件时直接进入垃圾邮件吗?

没有。

您需要将 MDA 配置为:

  • 通过 SpamAssassin 传递电子邮件,以便将垃圾邮件分类标头添加到现有电子邮件标头中
  • 阅读这些标题并将电子邮件发送到不是收件箱的地方

例如,我的 MDU 配置为通过 Procmail 运行传入邮件,而我的 ~/.procmailrc 包括:

:0
* ^X-Spam-Level: \*\*\*\*\*\*\*\*
/dev/null

:0:
* ^X-Spam-Level: \*\*\*
$HOME/Maildir/.Junk/

【讨论】:

  • 感谢您的帖子。我想我知道你来自哪里。所以如果我写这样的东西if $isSpam->isSpam($message) { ...move the email to spam folder }?它将与 spamassassin 一起检查,如果电子邮件是垃圾邮件,那么它会在我看到我的电子邮件列表之前移动到 junk\spam 文件夹?对吗?
  • 一般来说,您希望在您的 MDU 而不是您的电子邮件客户端中执行此操作。
  • 什么是MDU?如何使用 php api 将数据发送到 MDU,让他们知道我收到的电子邮件是垃圾邮件?
  • 邮件传递代理。您不会将数据发送到 MDU 以将其标记为垃圾邮件。如果您希望您的电子邮件客户端将某些内容标记为垃圾邮件(即当用户单击“这是垃圾邮件”时),那么您将其传递给 sa-learn 并将其移动到垃圾文件夹。 MDU 通过 SpamAssassin 传递传入的电子邮件,以根据您对其进行的培训自动将其标记为垃圾邮件。
  • 调用sa-learn 训练贝叶斯分类器。移动电子邮件是您必须做的另一件事。仅当您按照本答案后半部分所述配置 MDU 时(并且仅在贝叶斯分类器经过充分训练之后),才会自动移动到垃圾邮件。
猜你喜欢
  • 1970-01-01
  • 2011-02-08
  • 1970-01-01
  • 2010-11-19
  • 2012-09-13
  • 2015-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多