npm 包 haraka-plugin-dcc 使用教程

阅读时长 5 分钟读完

前言

在开发过程中,邮件协议是一个非常重要的环节。其中,DCC(Distributed Checksum Clearinghouses)是一种常用的反垃圾邮件措施之一。而 npm 上的 haraka-plugin-dcc 包,就是一个基于 Haraka 框架实现的 DCC 插件,可以帮助我们实现 DCC 的功能。本文将介绍如何使用该插件。

安装 haraka-plugin-dcc 包

在项目根目录下,通过 npm 安装 haraka-plugin-dcc 包。

然后,我们需要在 haraka 的配置文件中添加该插件。打开配置文件(默认为 config/smtp.ini),在 rcpt_to.in_host_list 配置项中添加 dcc,如下所示:

这样,haraka 就会加载该插件,实现 DCC 的功能了。

配置 haraka-plugin-dcc 包

接下来,我们需要对 haraka-plugin-dcc 进行一些配置。

在 haraka 的配置文件中,找到 plugins/dcc 配置项,添加以下内容:

其中,

  • report_timeout 表示等待 DCC 服务器响应的时间(单位为毫秒),默认为 2000 毫秒。
  • required_hits 表示需要满足多少个 DCC 服务器对该邮件进行检测后才会认为是垃圾邮件,这里设置为 1。

同时,还需要为 DCC 服务器指定 IP 和端口号:

示例代码

为了演示 haraka-plugin-dcc 的使用,我们来写个简单的例子:发送一封包含垃圾邮件文本的邮件,并检测该邮件是否被标记为垃圾邮件。

首先,在 haraka 的 plugins 目录下,创建一个名为 test-plugin 的文件夹,并在该文件夹下创建一个名为 index.js 的文件。

index.js 中,添加以下代码:

-- -------------------- ---- -------
----------------- - ------ ----------- -- -
  ----- - ----------- - - -----------
  ----- --------- - ------------------------------ -- ------------------------------

  -- ---------------------------------------- -
    ------ -------
  -

  ------------------------------------- ------- -- -
    --------------------------- -- -----------------
  ---

  ------------------------------------ -- -- -
    ----- - ---------- - - ------------------
    ----- ---------- - ----------------------
      ----------------------------
      ----------------------------------------------------------------
    --
    ------------------ - --------------------
    ----- ---- - ------------------------------

    -- ------------------------- -
      ------------------------------------ ----- ------ ----- ------- -------- ----- ----- ---
    -

    ------ -------
  ---
--
展开代码

该函数表示在发送数据之前,对邮件进行处理。

在处理过程中,首先获取邮件的所有收件人地址。然后,我们只对接收到 test@domain.com 地址的邮件进行检测。

接着,我们将邮件上的附件进行解析,获取到邮件文本,并进行检测。如果邮件中包含 'viagra' 字符串(垃圾邮件经常包含该字符串),则说明该邮件为垃圾邮件,并将结果标记为不合格。

最后,调用 next() 方法,表示接下来的处理将由其他插件进行。

运行示例代码

在 project 根路径下,运行如下命令,启动 haraka 服务:

然后,打开一个新的命令行窗口,运行以下命令,发送一封包含 'viagra' 的邮件。

然后,查看 haraka 的日志文件,确认邮件是否被标记为垃圾邮件。

结语

通过本文,我们了解了如何使用 npm 上的 haraka-plugin-dcc 包实现 DCC 功能,同时还讲解了如何进行配置和示例演示。希望本文可以帮助大家更好地理解和使用该插件。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005600e81e8991b448dde93

纠错
反馈

纠错反馈